mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-08 10:34:12 -05:00
19606 lines
317 KiB
ArmAsm
19606 lines
317 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "constants/species_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start npc_clear_ids_and_state
|
|
npc_clear_ids_and_state: @ 805AA50
|
|
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: @ 805AA70
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _0805AA94 @ =gMapObjects
|
|
_0805AA76:
|
|
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 _0805AA76
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AA94: .4byte gMapObjects
|
|
thumb_func_end npcs_clear_ids_and_state
|
|
|
|
thumb_func_start sub_805AA98
|
|
sub_805AA98: @ 805AA98
|
|
push {lr}
|
|
bl strange_npc_table_clear
|
|
bl npcs_clear_ids_and_state
|
|
bl ClearPlayerAvatarInfo
|
|
bl sub_805AAB0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805AA98
|
|
|
|
thumb_func_start sub_805AAB0
|
|
sub_805AAB0: @ 805AAB0
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
ldr r0, _0805AB4C @ =gFieldEffectObjectTemplatePointers
|
|
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, _0805AB50 @ =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
|
|
_0805AB4C: .4byte gFieldEffectObjectTemplatePointers
|
|
_0805AB50: .4byte gSprites
|
|
thumb_func_end sub_805AAB0
|
|
|
|
thumb_func_start sub_805AB54
|
|
sub_805AB54: @ 805AB54
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r2, _0805AB60 @ =gMapObjects
|
|
ldrb r0, [r2]
|
|
b _0805AB78
|
|
.align 2, 0
|
|
_0805AB60: .4byte gMapObjects
|
|
_0805AB64:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xF
|
|
bhi _0805AB7E
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
_0805AB78:
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805AB64
|
|
_0805AB7E:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AB54
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalIdAndMap
|
|
GetFieldObjectIdByLocalIdAndMap: @ 805AB84
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r0, 0xFE
|
|
bls _0805AB9C
|
|
bl GetFieldObjectIdByLocalId
|
|
b _0805ABA0
|
|
_0805AB9C:
|
|
bl GetFieldObjectIdByLocalIdAndMapInternal
|
|
_0805ABA0:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalIdAndMap
|
|
|
|
thumb_func_start TryGetFieldObjectIdByLocalIdAndMap
|
|
TryGetFieldObjectIdByLocalIdAndMap: @ 805ABA8
|
|
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 _0805ABCA
|
|
movs r0, 0
|
|
b _0805ABCC
|
|
_0805ABCA:
|
|
movs r0, 0x1
|
|
_0805ABCC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end TryGetFieldObjectIdByLocalIdAndMap
|
|
|
|
thumb_func_start GetFieldObjectIdByXY
|
|
GetFieldObjectIdByXY: @ 805ABD4
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r5, _0805AC14 @ =gMapObjects
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
_0805ABE2:
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805AC02
|
|
movs r6, 0x10
|
|
ldrsh r0, [r2, r6]
|
|
cmp r0, r4
|
|
bne _0805AC02
|
|
movs r6, 0x12
|
|
ldrsh r0, [r2, r6]
|
|
cmp r0, r1
|
|
beq _0805AC0C
|
|
_0805AC02:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805ABE2
|
|
_0805AC0C:
|
|
adds r0, r3, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AC14: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectIdByXY
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal
|
|
GetFieldObjectIdByLocalIdAndMapInternal: @ 805AC18
|
|
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, _0805AC50 @ =gMapObjects
|
|
_0805AC2A:
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r6
|
|
ldrb r0, [r3]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805AC54
|
|
ldrb r0, [r3, 0x8]
|
|
cmp r0, r5
|
|
bne _0805AC54
|
|
ldrb r0, [r3, 0x9]
|
|
cmp r0, r4
|
|
bne _0805AC54
|
|
ldrb r0, [r3, 0xA]
|
|
cmp r0, r2
|
|
bne _0805AC54
|
|
adds r0, r1, 0
|
|
b _0805AC60
|
|
.align 2, 0
|
|
_0805AC50: .4byte gMapObjects
|
|
_0805AC54:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xF
|
|
bls _0805AC2A
|
|
movs r0, 0x10
|
|
_0805AC60:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal
|
|
|
|
thumb_func_start GetFieldObjectIdByLocalId
|
|
GetFieldObjectIdByLocalId: @ 805AC68
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r2, 0
|
|
ldr r4, _0805AC8C @ =gMapObjects
|
|
_0805AC72:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805AC90
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, r3
|
|
bne _0805AC90
|
|
adds r0, r2, 0
|
|
b _0805AC9C
|
|
.align 2, 0
|
|
_0805AC8C: .4byte gMapObjects
|
|
_0805AC90:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bls _0805AC72
|
|
movs r0, 0x10
|
|
_0805AC9C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByLocalId
|
|
|
|
thumb_func_start InitFieldObjectStateFromTemplate
|
|
InitFieldObjectStateFromTemplate: @ 805ACA4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
ldrb r0, [r5]
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
mov r3, sp
|
|
bl GetAvailableFieldObjectSlot
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805ACCE
|
|
movs r0, 0x10
|
|
b _0805ADC2
|
|
_0805ACCE:
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805ADD0 @ =gMapObjects
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
bl npc_clear_ids_and_state
|
|
ldrh r3, [r5, 0x4]
|
|
adds r3, 0x7
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
ldrh r2, [r5, 0x6]
|
|
adds r2, 0x7
|
|
lsls r2, 16
|
|
lsrs r2, 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 r6, [r4, 0x9]
|
|
strb r7, [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 r7, 0xF
|
|
adds r1, r7, 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, r7
|
|
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, r7
|
|
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, _0805ADD4 @ =gUnknown_0836DC09
|
|
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, _0805ADD8 @ =gUnknown_0836DBBC
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805ADBE
|
|
ldrb r2, [r4, 0x19]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805ADA6
|
|
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]
|
|
_0805ADA6:
|
|
ldrb r2, [r4, 0x19]
|
|
movs r0, 0xF0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805ADBE
|
|
lsrs r1, r2, 4
|
|
adds r1, 0x1
|
|
lsls r1, 4
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x19]
|
|
_0805ADBE:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
_0805ADC2:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805ADD0: .4byte gMapObjects
|
|
_0805ADD4: .4byte gUnknown_0836DC09
|
|
_0805ADD8: .4byte gUnknown_0836DBBC
|
|
thumb_func_end InitFieldObjectStateFromTemplate
|
|
|
|
thumb_func_start sub_805ADDC
|
|
sub_805ADDC: @ 805ADDC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, _0805ADF4 @ =gMapHeader
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _0805AE10
|
|
b _0805AE3E
|
|
.align 2, 0
|
|
_0805ADF4: .4byte gMapHeader
|
|
_0805ADF8:
|
|
ldr r1, _0805AE0C @ =0xfffff3e0
|
|
adds r0, r7, r1
|
|
ldrb r1, [r0, 0x5]
|
|
ldrb r2, [r0, 0x4]
|
|
adds r0, r4, 0
|
|
bl InitFieldObjectStateFromTemplate
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805AE40
|
|
.align 2, 0
|
|
_0805AE0C: .4byte 0xfffff3e0
|
|
_0805AE10:
|
|
ldrb r6, [r0]
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bcs _0805AE3E
|
|
ldr r7, _0805AE4C @ =gSaveBlock1 + 0xC20
|
|
_0805AE1A:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r7
|
|
ldrb r0, [r4]
|
|
cmp r0, r8
|
|
bne _0805AE34
|
|
ldrh r0, [r4, 0x14]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805ADF8
|
|
_0805AE34:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r6
|
|
bcc _0805AE1A
|
|
_0805AE3E:
|
|
movs r0, 0x10
|
|
_0805AE40:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AE4C: .4byte gSaveBlock1 + 0xC20
|
|
thumb_func_end sub_805ADDC
|
|
|
|
thumb_func_start GetAvailableFieldObjectSlot
|
|
GetAvailableFieldObjectSlot: @ 805AE50
|
|
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, _0805AEAC @ =gMapObjects
|
|
ldrb r0, [r1]
|
|
lsls r0, 31
|
|
adds r7, r1, 0
|
|
cmp r0, 0
|
|
beq _0805AEA4
|
|
adds r3, r1, 0
|
|
_0805AE70:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, r0, r3
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, r6
|
|
bne _0805AE8A
|
|
ldrb r0, [r1, 0x9]
|
|
cmp r0, r5
|
|
bne _0805AE8A
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, r4
|
|
beq _0805AEA8
|
|
_0805AE8A:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bhi _0805AEA8
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _0805AE70
|
|
_0805AEA4:
|
|
cmp r2, 0xF
|
|
bls _0805AEB0
|
|
_0805AEA8:
|
|
movs r0, 0x1
|
|
b _0805AEE4
|
|
.align 2, 0
|
|
_0805AEAC: .4byte gMapObjects
|
|
_0805AEB0:
|
|
mov r0, r12
|
|
strb r2, [r0]
|
|
ldr r1, _0805AEEC @ =gMapObjects
|
|
_0805AEB6:
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805AED8
|
|
ldrb r0, [r3, 0x8]
|
|
cmp r0, r6
|
|
bne _0805AED8
|
|
ldrb r0, [r3, 0x9]
|
|
cmp r0, r5
|
|
bne _0805AED8
|
|
ldrb r0, [r3, 0xA]
|
|
cmp r0, r4
|
|
beq _0805AEA8
|
|
_0805AED8:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bls _0805AEB6
|
|
movs r0, 0
|
|
_0805AEE4:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AEEC: .4byte gMapObjects
|
|
thumb_func_end GetAvailableFieldObjectSlot
|
|
|
|
thumb_func_start RemoveFieldObject
|
|
RemoveFieldObject: @ 805AEF0
|
|
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: @ 805AF04
|
|
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 _0805AF42
|
|
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, _0805AF48 @ =gMapObjects
|
|
adds r0, r1
|
|
bl RemoveFieldObject
|
|
_0805AF42:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AF48: .4byte gMapObjects
|
|
thumb_func_end RemoveFieldObjectByLocalIdAndMap
|
|
|
|
thumb_func_start RemoveFieldObjectInternal
|
|
RemoveFieldObjectInternal: @ 805AF4C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x5]
|
|
bl GetFieldObjectGraphicsInfo
|
|
ldrh r2, [r0, 0x6]
|
|
ldr r1, _0805AF90 @ =0xffff0000
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x4]
|
|
ldr r2, _0805AF94 @ =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
|
|
_0805AF90: .4byte 0xffff0000
|
|
_0805AF94: .4byte gSprites
|
|
thumb_func_end RemoveFieldObjectInternal
|
|
|
|
thumb_func_start npc_hide_all_but_player
|
|
npc_hide_all_but_player: @ 805AF98
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0805AF9C:
|
|
ldr r0, _0805AFC4 @ =gPlayerAvatar
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r4, r0
|
|
beq _0805AFB2
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _0805AFC8 @ =gMapObjects
|
|
adds r0, r1
|
|
bl RemoveFieldObject
|
|
_0805AFB2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _0805AF9C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805AFC4: .4byte gPlayerAvatar
|
|
_0805AFC8: .4byte gMapObjects
|
|
thumb_func_end npc_hide_all_but_player
|
|
|
|
thumb_func_start sub_805AFCC
|
|
sub_805AFCC: @ 805AFCC
|
|
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 InitFieldObjectStateFromTemplate
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x10
|
|
bne _0805B006
|
|
movs r0, 0x10
|
|
b _0805B154
|
|
_0805B006:
|
|
mov r0, r8
|
|
lsls r4, r0, 3
|
|
adds r0, r4, r0
|
|
lsls r0, 2
|
|
ldr r1, _0805B030 @ =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 _0805B034
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__no_record
|
|
b _0805B042
|
|
.align 2, 0
|
|
_0805B030: .4byte gMapObjects
|
|
_0805B034:
|
|
cmp r0, 0xA
|
|
bne _0805B042
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805B042:
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0x4C
|
|
bne _0805B050
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_0805B050:
|
|
ldr r1, _0805B084 @ =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 _0805B08C
|
|
ldr r0, _0805B088 @ =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 _0805B154
|
|
.align 2, 0
|
|
_0805B084: .4byte 0x0000ffff
|
|
_0805B088: .4byte gMapObjects
|
|
_0805B08C:
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, _0805B164 @ =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_8060388
|
|
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 _0805B13E
|
|
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
|
|
_0805B13E:
|
|
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_80634D0
|
|
mov r0, r8
|
|
_0805B154:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B164: .4byte gSprites
|
|
thumb_func_end sub_805AFCC
|
|
|
|
thumb_func_start SpawnFieldObject
|
|
SpawnFieldObject: @ 805B168
|
|
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, _0805B1E0 @ =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_805AFCC
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r5, r2, 0
|
|
cmp r2, 0x10
|
|
bne _0805B1E4
|
|
movs r0, 0x10
|
|
b _0805B21A
|
|
.align 2, 0
|
|
_0805B1E0: .4byte 0xffff0000
|
|
_0805B1E4:
|
|
ldr r4, _0805B228 @ =gSprites
|
|
ldr r1, _0805B22C @ =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 _0805B218
|
|
ldrb r1, [r3, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r1, r2, 0
|
|
bl SetSubspriteTables
|
|
_0805B218:
|
|
adds r0, r5, 0
|
|
_0805B21A:
|
|
add sp, 0x2C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B228: .4byte gSprites
|
|
_0805B22C: .4byte gMapObjects
|
|
thumb_func_end SpawnFieldObject
|
|
|
|
thumb_func_start SpawnSpecialFieldObject
|
|
SpawnSpecialFieldObject: @ 805B230
|
|
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, _0805B268 @ =gSaveBlock1
|
|
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
|
|
_0805B268: .4byte gSaveBlock1
|
|
thumb_func_end SpawnSpecialFieldObject
|
|
|
|
thumb_func_start SpawnSpecialFieldObjectParametrized
|
|
SpawnSpecialFieldObjectParametrized: @ 805B26C
|
|
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, _0805B2D0 @ =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
|
|
_0805B2D0: .4byte 0xfff90000
|
|
thumb_func_end SpawnSpecialFieldObjectParametrized
|
|
|
|
thumb_func_start show_sprite
|
|
show_sprite: @ 805B2D4
|
|
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 _0805B31A
|
|
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 _0805B31C
|
|
_0805B31A:
|
|
movs r0, 0x10
|
|
_0805B31C:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end show_sprite
|
|
|
|
thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo
|
|
MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 805B324
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetFieldObjectGraphicsInfo
|
|
ldrh r1, [r0]
|
|
strh r1, [r4]
|
|
ldrh r1, [r0, 0x2]
|
|
strh r1, [r4, 0x2]
|
|
ldr r1, [r0, 0x10]
|
|
str r1, [r4, 0x4]
|
|
ldr r1, [r0, 0x18]
|
|
str r1, [r4, 0x8]
|
|
ldr r1, [r0, 0x1C]
|
|
str r1, [r4, 0xC]
|
|
ldr r1, [r0, 0x20]
|
|
str r1, [r4, 0x10]
|
|
str r5, [r4, 0x14]
|
|
ldr r0, [r0, 0x14]
|
|
str r0, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo
|
|
|
|
thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 805B358
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
ldr r4, _0805B374 @ =gUnknown_0836DA88
|
|
lsrs r1, 14
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
bl MakeObjectTemplateFromFieldObjectGraphicsInfo
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B374: .4byte gUnknown_0836DA88
|
|
thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
|
|
|
|
thumb_func_start MakeObjectTemplateFromFieldObjectTemplate
|
|
MakeObjectTemplateFromFieldObjectTemplate: @ 805B378
|
|
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 AddPseudoFieldObject
|
|
AddPseudoFieldObject: @ 805B390
|
|
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 MakeObjectTemplateFromFieldObjectGraphicsInfo
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _0805B408 @ =0x0000ffff
|
|
cmp r1, r0
|
|
beq _0805B3C0
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_805BDF8
|
|
_0805B3C0:
|
|
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 _0805B3FC
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
beq _0805B3FC
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _0805B40C @ =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]
|
|
_0805B3FC:
|
|
adds r0, r5, 0
|
|
add sp, 0x1C
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B408: .4byte 0x0000ffff
|
|
_0805B40C: .4byte gSprites
|
|
thumb_func_end AddPseudoFieldObject
|
|
|
|
thumb_func_start sub_805B410
|
|
sub_805B410: @ 805B410
|
|
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, _0805B550 @ =sub_8064970
|
|
add r3, sp, 0x1C
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
bl MakeObjectTemplateFromFieldObjectGraphicsInfo
|
|
mov r1, sp
|
|
ldr r2, _0805B554 @ =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_8060470
|
|
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 _0805B53C
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, _0805B558 @ =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 _0805B4FC
|
|
ldrh r0, [r4, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805B4FC:
|
|
ldr r1, [sp, 0x1C]
|
|
cmp r1, 0
|
|
beq _0805B518
|
|
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]
|
|
_0805B518:
|
|
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
|
|
_0805B53C:
|
|
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
|
|
_0805B550: .4byte sub_8064970
|
|
_0805B554: .4byte 0x0000ffff
|
|
_0805B558: .4byte gSprites
|
|
thumb_func_end sub_805B410
|
|
|
|
thumb_func_start sub_805B55C
|
|
sub_805B55C: @ 805B55C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x4]
|
|
ldr r0, _0805B628 @ =gMapHeader
|
|
ldr r5, [r0, 0x4]
|
|
cmp r5, 0
|
|
beq _0805B618
|
|
ldr r4, _0805B62C @ =gSaveBlock1
|
|
ldrh r0, [r4]
|
|
subs r1, r0, 0x2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, 0x11
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
ldrh r2, [r4, 0x2]
|
|
adds r0, r2, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
ldrb r6, [r5]
|
|
movs r5, 0
|
|
cmp r5, r6
|
|
bcs _0805B618
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
mov r10, r0
|
|
adds r7, r4, 0
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
lsls r3, 16
|
|
mov r8, r3
|
|
_0805B5B2:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _0805B630 @ =gSaveBlock1 + 0xC20
|
|
adds r4, r0, r1
|
|
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 r10, r1
|
|
bgt _0805B60E
|
|
ldr r3, [sp, 0xC]
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
blt _0805B60E
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
cmp r9, r1
|
|
bgt _0805B60E
|
|
ldr r2, [sp, 0x8]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
blt _0805B60E
|
|
ldrh r0, [r4, 0x14]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805B60E
|
|
ldrb r1, [r7, 0x5]
|
|
ldrb r2, [r7, 0x4]
|
|
ldr r3, [sp, 0x4]
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
mov r4, r8
|
|
asrs r3, r4, 16
|
|
bl SpawnFieldObject
|
|
_0805B60E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r6
|
|
bcc _0805B5B2
|
|
_0805B618:
|
|
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
|
|
_0805B628: .4byte gMapHeader
|
|
_0805B62C: .4byte gSaveBlock1
|
|
_0805B630: .4byte gSaveBlock1 + 0xC20
|
|
thumb_func_end sub_805B55C
|
|
|
|
thumb_func_start RemoveFieldObjectsOutsideView
|
|
RemoveFieldObjectsOutsideView: @ 805B634
|
|
push {r4-r6,lr}
|
|
movs r3, 0
|
|
ldr r6, _0805B688 @ =gLinkPlayerMapObjects
|
|
_0805B63A:
|
|
movs r2, 0
|
|
movs r4, 0
|
|
adds r5, r3, 0x1
|
|
_0805B640:
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r6
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0805B652
|
|
ldrb r1, [r1, 0x2]
|
|
cmp r3, r1
|
|
bne _0805B652
|
|
movs r4, 0x1
|
|
_0805B652:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0805B640
|
|
cmp r4, 0
|
|
bne _0805B67A
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r1, _0805B68C @ =gMapObjects
|
|
adds r2, r0, r1
|
|
ldr r0, [r2]
|
|
ldr r1, _0805B690 @ =0x00010001
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0805B67A
|
|
adds r0, r2, 0
|
|
bl RemoveFieldObjectIfOutsideView
|
|
_0805B67A:
|
|
lsls r0, r5, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805B63A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B688: .4byte gLinkPlayerMapObjects
|
|
_0805B68C: .4byte gMapObjects
|
|
_0805B690: .4byte 0x00010001
|
|
thumb_func_end RemoveFieldObjectsOutsideView
|
|
|
|
thumb_func_start RemoveFieldObjectIfOutsideView
|
|
RemoveFieldObjectIfOutsideView: @ 805B694
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
ldr r2, _0805B70C @ =gSaveBlock1
|
|
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 _0805B6D8
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
cmp r2, r0
|
|
bgt _0805B6D8
|
|
movs r0, 0x12
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805B6D8
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
ble _0805B706
|
|
_0805B6D8:
|
|
movs r0, 0xC
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805B700
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _0805B700
|
|
movs r0, 0xE
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _0805B700
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
ble _0805B706
|
|
_0805B700:
|
|
adds r0, r3, 0
|
|
bl RemoveFieldObject
|
|
_0805B706:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B70C: .4byte gSaveBlock1
|
|
thumb_func_end RemoveFieldObjectIfOutsideView
|
|
|
|
thumb_func_start sub_805B710
|
|
sub_805B710: @ 805B710
|
|
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, _0805B758 @ =gMapObjects
|
|
lsls r4, 16
|
|
lsls r5, 16
|
|
_0805B72A:
|
|
lsls r0, r6, 3
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805B744
|
|
adds r0, r6, 0
|
|
asrs r1, r4, 16
|
|
asrs r2, r5, 16
|
|
bl sub_805B75C
|
|
_0805B744:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xF
|
|
bls _0805B72A
|
|
bl sub_805AAB0
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B758: .4byte gMapObjects
|
|
thumb_func_end sub_805B710
|
|
|
|
thumb_func_start sub_805B75C
|
|
sub_805B75C: @ 805B75C
|
|
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, _0805B900 @ =gLinkPlayerMapObjects
|
|
_0805B77E:
|
|
lsls r0, r7, 2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0805B790
|
|
ldrb r1, [r1, 0x2]
|
|
cmp r8, r1
|
|
bne _0805B790
|
|
b _0805B8EE
|
|
_0805B790:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3
|
|
bls _0805B77E
|
|
mov r1, r8
|
|
lsls r0, r1, 3
|
|
add r0, r8
|
|
lsls r0, 2
|
|
ldr r1, _0805B904 @ =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, _0805B908 @ =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, _0805B90C @ =0x0000ffff
|
|
adds r4, r2, 0
|
|
strh r4, [r0, 0x2]
|
|
ldrb r1, [r5, 0xC]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805B7EA
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__no_record
|
|
_0805B7EA:
|
|
ldrb r0, [r5, 0xC]
|
|
lsls r1, r0, 28
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x9
|
|
bls _0805B7FC
|
|
ldrh r0, [r5, 0x2]
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805B7FC:
|
|
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 _0805B8EE
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, _0805B910 @ =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_8060388
|
|
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 _0805B88A
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl SetPlayerAvatarFieldObjectIdAndObjectId
|
|
bl sub_8126B54
|
|
strb r0, [r6, 0x1B]
|
|
_0805B88A:
|
|
ldr r1, [sp, 0x20]
|
|
cmp r1, 0
|
|
beq _0805B896
|
|
adds r0, r4, 0
|
|
bl SetSubspriteTables
|
|
_0805B896:
|
|
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 _0805B8DC
|
|
ldrb r0, [r6, 0x6]
|
|
cmp r0, 0xB
|
|
beq _0805B8DC
|
|
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
|
|
_0805B8DC:
|
|
adds r0, r6, 0
|
|
bl sub_805B914
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
_0805B8EE:
|
|
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
|
|
_0805B900: .4byte gLinkPlayerMapObjects
|
|
_0805B904: .4byte gMapObjects
|
|
_0805B908: .4byte 0xffff0000
|
|
_0805B90C: .4byte 0x0000ffff
|
|
_0805B910: .4byte gSprites
|
|
thumb_func_end sub_805B75C
|
|
|
|
thumb_func_start sub_805B914
|
|
sub_805B914: @ 805B914
|
|
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_805B914
|
|
|
|
thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId
|
|
SetPlayerAvatarFieldObjectIdAndObjectId: @ 805B94C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _0805B978 @ =gPlayerAvatar
|
|
strb r0, [r5, 0x5]
|
|
strb r1, [r5, 0x4]
|
|
ldr r1, _0805B97C @ =gMapObjects
|
|
lsls r4, r0, 3
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r4, r1
|
|
ldrb r0, [r4, 0x5]
|
|
bl GetPlayerAvatarGenderByGraphicsId
|
|
strb r0, [r5, 0x7]
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0x20
|
|
bl SetPlayerAvatarExtraStateTransition
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805B978: .4byte gPlayerAvatar
|
|
_0805B97C: .4byte gMapObjects
|
|
thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
|
|
|
|
thumb_func_start sub_805B980
|
|
sub_805B980: @ 805B980
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
mov r0, r8
|
|
bl GetFieldObjectGraphicsInfo
|
|
adds r5, r0, 0
|
|
ldrb r1, [r6, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805BA7C @ =gSprites
|
|
adds r4, r0, r1
|
|
ldrb r1, [r5, 0xC]
|
|
movs r7, 0xF
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805B9B8
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl pal_patch_for_npc
|
|
_0805B9B8:
|
|
ldrb r1, [r5, 0xC]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0xA
|
|
bne _0805B9CC
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
bl npc_load_two_palettes__and_record
|
|
_0805B9CC:
|
|
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 r0, [r5, 0x1C]
|
|
str r0, [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]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
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 r0, r8
|
|
strb r0, [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_80603CC
|
|
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 _0805BA72
|
|
bl CameraObjectReset1
|
|
_0805BA72:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BA7C: .4byte gSprites
|
|
thumb_func_end sub_805B980
|
|
|
|
thumb_func_start unref_sub_805BA80
|
|
unref_sub_805BA80: @ 805BA80
|
|
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 _0805BAB4
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805BABC @ =gMapObjects
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl sub_805B980
|
|
_0805BAB4:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BABC: .4byte gMapObjects
|
|
thumb_func_end unref_sub_805BA80
|
|
|
|
thumb_func_start FieldObjectTurn
|
|
FieldObjectTurn: @ 805BAC0
|
|
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 _0805BB06
|
|
ldrb r0, [r6, 0x4]
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r5, _0805BB0C @ =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
|
|
_0805BB06:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BB0C: .4byte gSprites
|
|
thumb_func_end FieldObjectTurn
|
|
|
|
thumb_func_start FieldObjectTurnByLocalIdAndMap
|
|
FieldObjectTurnByLocalIdAndMap: @ 805BB10
|
|
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 _0805BB44
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805BB4C @ =gMapObjects
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
bl FieldObjectTurn
|
|
_0805BB44:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BB4C: .4byte gMapObjects
|
|
thumb_func_end FieldObjectTurnByLocalIdAndMap
|
|
|
|
thumb_func_start unref_sub_805BB50
|
|
unref_sub_805BB50: @ 805BB50
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0x5]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r2, _0805BB6C @ =gMapObjects
|
|
adds r0, r2
|
|
bl FieldObjectTurn
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BB6C: .4byte gMapObjects
|
|
thumb_func_end unref_sub_805BB50
|
|
|
|
thumb_func_start get_berry_tree_graphics
|
|
get_berry_tree_graphics: @ 805BB70
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
adds r4, r7, 0
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r5, 0x1D]
|
|
bl GetStageByBerryTreeId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _0805BBFC
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r5, 0x1]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r5, 0x1D]
|
|
bl GetBerryTypeByBerryTreeId
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
subs r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r4, 0x2B
|
|
bls _0805BBC4
|
|
movs r4, 0
|
|
_0805BBC4:
|
|
ldr r0, _0805BC04 @ =gBerryTreeGraphicsIdTablePointers
|
|
lsls r4, 2
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_805B980
|
|
ldr r0, _0805BC08 @ =gBerryTreePicTablePointers
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
str r0, [r7, 0xC]
|
|
ldr r0, _0805BC0C @ =gBerryTreePaletteSlotTablePointers
|
|
adds r4, r0
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
ldrb r2, [r7, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r7, 0x5]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl StartSpriteAnim
|
|
_0805BBFC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BC04: .4byte gBerryTreeGraphicsIdTablePointers
|
|
_0805BC08: .4byte gBerryTreePicTablePointers
|
|
_0805BC0C: .4byte gBerryTreePaletteSlotTablePointers
|
|
thumb_func_end get_berry_tree_graphics
|
|
|
|
thumb_func_start GetFieldObjectGraphicsInfo
|
|
GetFieldObjectGraphicsInfo: @ 805BC10
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0xEF
|
|
bls _0805BC28
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl VarGetFieldObjectGraphicsId
|
|
adds r1, r0, 0
|
|
_0805BC28:
|
|
cmp r1, 0xD9
|
|
bls _0805BC2E
|
|
movs r1, 0x5
|
|
_0805BC2E:
|
|
ldr r0, _0805BC3C @ =gMapObjectGraphicsInfoPointers
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BC3C: .4byte gMapObjectGraphicsInfoPointers
|
|
thumb_func_end GetFieldObjectGraphicsInfo
|
|
|
|
thumb_func_start FieldObjectHandleDynamicGraphicsId
|
|
FieldObjectHandleDynamicGraphicsId: @ 805BC40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, 0xEF
|
|
bls _0805BC56
|
|
adds r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl VarGetFieldObjectGraphicsId
|
|
strb r0, [r4, 0x5]
|
|
_0805BC56:
|
|
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: @ 805BC5C
|
|
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 _0805BC9E
|
|
ldr r2, _0805BCA8 @ =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]
|
|
_0805BC9E:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BCA8: .4byte gMapObjects
|
|
thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20
|
|
|
|
thumb_func_start FieldObjectGetLocalIdAndMap
|
|
FieldObjectGetLocalIdAndMap: @ 805BCAC
|
|
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_805BCC0
|
|
sub_805BCC0: @ 805BCC0
|
|
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 _0805BCE8
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805BCEC @ =gMapObjects
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0805BCE8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BCEC: .4byte gMapObjects
|
|
thumb_func_end sub_805BCC0
|
|
|
|
thumb_func_start sub_805BCF0
|
|
sub_805BCF0: @ 805BCF0
|
|
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 _0805BD36
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 3
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _0805BD40 @ =gMapObjects
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805BD44 @ =gSprites
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x3]
|
|
movs r3, 0x4
|
|
orrs r1, r3
|
|
strb r1, [r2, 0x3]
|
|
adds r0, 0x43
|
|
strb r4, [r0]
|
|
_0805BD36:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BD40: .4byte gMapObjects
|
|
_0805BD44: .4byte gSprites
|
|
thumb_func_end sub_805BCF0
|
|
|
|
thumb_func_start sub_805BD48
|
|
sub_805BD48: @ 805BD48
|
|
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 _0805BD84
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0805BD8C @ =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]
|
|
_0805BD84:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BD8C: .4byte gMapObjects
|
|
thumb_func_end sub_805BD48
|
|
|
|
thumb_func_start sub_805BD90
|
|
sub_805BD90: @ 805BD90
|
|
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 _0805BDD4
|
|
ldr r2, _0805BDDC @ =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, _0805BDE0 @ =gSprites
|
|
adds r0, r1
|
|
strh r5, [r0, 0x24]
|
|
strh r4, [r0, 0x26]
|
|
_0805BDD4:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BDDC: .4byte gMapObjects
|
|
_0805BDE0: .4byte gSprites
|
|
thumb_func_end sub_805BD90
|
|
|
|
thumb_func_start gpu_pal_allocator_reset__manage_upper_four
|
|
gpu_pal_allocator_reset__manage_upper_four: @ 805BDE4
|
|
push {lr}
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _0805BDF4 @ =gReservedSpritePaletteCount
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BDF4: .4byte gReservedSpritePaletteCount
|
|
thumb_func_end gpu_pal_allocator_reset__manage_upper_four
|
|
|
|
thumb_func_start sub_805BDF8
|
|
sub_805BDF8: @ 805BDF8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl FindFieldObjectPaletteIndexByTag
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, _0805BE1C @ =0x000011ff
|
|
cmp r1, r0
|
|
beq _0805BE16
|
|
lsls r0, r1, 3
|
|
ldr r1, _0805BE20 @ =gUnknown_0837377C
|
|
adds r0, r1
|
|
bl sub_805BE58
|
|
_0805BE16:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BE1C: .4byte 0x000011ff
|
|
_0805BE20: .4byte gUnknown_0837377C
|
|
thumb_func_end sub_805BDF8
|
|
|
|
thumb_func_start unref_sub_805BE24
|
|
unref_sub_805BE24: @ 805BE24
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
ldrh r0, [r5]
|
|
ldr r1, _0805BE54 @ =0x000011ff
|
|
cmp r0, r1
|
|
beq _0805BE4E
|
|
adds r6, r1, 0
|
|
_0805BE34:
|
|
lsls r0, r4, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
bl sub_805BDF8
|
|
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 _0805BE34
|
|
_0805BE4E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BE54: .4byte 0x000011ff
|
|
thumb_func_end unref_sub_805BE24
|
|
|
|
thumb_func_start sub_805BE58
|
|
sub_805BE58: @ 805BE58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x4]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _0805BE76
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805BE78
|
|
_0805BE76:
|
|
movs r0, 0xFF
|
|
_0805BE78:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BE58
|
|
|
|
thumb_func_start pal_patch_for_npc
|
|
pal_patch_for_npc: @ 805BE80
|
|
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, _0805BEB4 @ =gUnknown_0837377C
|
|
lsrs r0, 21
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r4, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r4, r1
|
|
lsrs r4, 16
|
|
adds r1, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805BEB4: .4byte gUnknown_0837377C
|
|
thumb_func_end pal_patch_for_npc
|
|
|
|
thumb_func_start pal_patch_for_npc_range
|
|
pal_patch_for_npc_range: @ 805BEB8
|
|
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 _0805BEDC
|
|
_0805BEC8:
|
|
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 _0805BEC8
|
|
_0805BEDC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end pal_patch_for_npc_range
|
|
|
|
thumb_func_start FindFieldObjectPaletteIndexByTag
|
|
FindFieldObjectPaletteIndexByTag: @ 805BEE4
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r2, 0
|
|
ldr r0, _0805BF0C @ =gUnknown_0837377C
|
|
ldrh r1, [r0, 0x4]
|
|
ldr r3, _0805BF10 @ =0x000011ff
|
|
adds r4, r0, 0
|
|
cmp r1, r3
|
|
beq _0805BF24
|
|
adds r6, r4, 0
|
|
adds r1, r3, 0
|
|
_0805BEFC:
|
|
lsls r0, r2, 3
|
|
adds r0, r6
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r5
|
|
bne _0805BF14
|
|
adds r0, r2, 0
|
|
b _0805BF26
|
|
.align 2, 0
|
|
_0805BF0C: .4byte gUnknown_0837377C
|
|
_0805BF10: .4byte 0x000011ff
|
|
_0805BF14:
|
|
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 _0805BEFC
|
|
_0805BF24:
|
|
movs r0, 0xFF
|
|
_0805BF26:
|
|
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: @ 805BF2C
|
|
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, _0805BF74 @ =gUnknown_08373874
|
|
ldrh r0, [r1]
|
|
ldr r2, _0805BF78 @ =0x000011ff
|
|
cmp r0, r2
|
|
beq _0805BF94
|
|
ldr r0, _0805BF7C @ =gUnknown_0830FD14
|
|
adds r5, r0
|
|
adds r6, r2, 0
|
|
_0805BF50:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805BF84
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805BF80 @ =gUnknown_030005A4
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r5]
|
|
bl pal_patch_for_npc
|
|
b _0805BF94
|
|
.align 2, 0
|
|
_0805BF74: .4byte gUnknown_08373874
|
|
_0805BF78: .4byte 0x000011ff
|
|
_0805BF7C: .4byte gUnknown_0830FD14
|
|
_0805BF80: .4byte gUnknown_030005A4
|
|
_0805BF84:
|
|
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 _0805BF50
|
|
_0805BF94:
|
|
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: @ 805BF9C
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _0805BFE8 @ =gUnknown_030005A6
|
|
strh r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl pal_patch_for_npc
|
|
movs r3, 0
|
|
ldr r1, _0805BFEC @ =gUnknown_083738E4
|
|
ldrh r0, [r1]
|
|
ldr r2, _0805BFF0 @ =0x000011ff
|
|
cmp r0, r2
|
|
beq _0805C00C
|
|
ldr r0, _0805BFF4 @ =gUnknown_0830FD14
|
|
adds r5, r0
|
|
adds r6, r2, 0
|
|
_0805BFC4:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _0805BFFC
|
|
adds r1, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805BFF8 @ =gUnknown_030005A4
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrb r1, [r5]
|
|
bl pal_patch_for_npc
|
|
b _0805C00C
|
|
.align 2, 0
|
|
_0805BFE8: .4byte gUnknown_030005A6
|
|
_0805BFEC: .4byte gUnknown_083738E4
|
|
_0805BFF0: .4byte 0x000011ff
|
|
_0805BFF4: .4byte gUnknown_0830FD14
|
|
_0805BFF8: .4byte gUnknown_030005A4
|
|
_0805BFFC:
|
|
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 _0805BFC4
|
|
_0805C00C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_load_two_palettes__and_record
|
|
|
|
thumb_func_start unref_sub_805C014
|
|
unref_sub_805C014: @ 805C014
|
|
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_805C014
|
|
|
|
thumb_func_start npc_coords_shift
|
|
npc_coords_shift: @ 805C034
|
|
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: @ 805C044
|
|
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_805C058
|
|
sub_805C058: @ 805C058
|
|
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, _0805C0F4 @ =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_80603CC
|
|
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_805B914
|
|
ldrb r0, [r6, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0805C0EA
|
|
bl CameraObjectReset1
|
|
_0805C0EA:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C0F4: .4byte gSprites
|
|
thumb_func_end sub_805C058
|
|
|
|
thumb_func_start sub_805C0F8
|
|
sub_805C0F8: @ 805C0F8
|
|
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 _0805C140
|
|
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, _0805C148 @ =gMapObjects
|
|
adds r0, r3
|
|
movs r3, 0xE0
|
|
lsls r3, 11
|
|
adds r1, r3
|
|
asrs r1, 16
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
bl sub_805C058
|
|
_0805C140:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C148: .4byte gMapObjects
|
|
thumb_func_end sub_805C0F8
|
|
|
|
thumb_func_start npc_coords_shift_still
|
|
npc_coords_shift_still: @ 805C14C
|
|
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: @ 805C160
|
|
push {r4,r5,lr}
|
|
ldr r2, _0805C1C0 @ =gUnknown_0202E844
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805C1B8
|
|
movs r3, 0
|
|
ldr r5, _0805C1C4 @ =gMapObjects
|
|
movs r0, 0x4
|
|
ldrsh r4, [r2, r0]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r2, r0]
|
|
_0805C17A:
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0, r5
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _0805C1AE
|
|
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]
|
|
_0805C1AE:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xF
|
|
bls _0805C17A
|
|
_0805C1B8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C1C0: .4byte gUnknown_0202E844
|
|
_0805C1C4: .4byte gMapObjects
|
|
thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
|
|
|
|
thumb_func_start GetFieldObjectIdByXYZ
|
|
GetFieldObjectIdByXYZ: @ 805C1C8
|
|
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, _0805C214 @ =gMapObjects
|
|
mov r8, r0
|
|
_0805C1E0:
|
|
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 _0805C218
|
|
movs r2, 0x10
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r7
|
|
bne _0805C218
|
|
movs r2, 0x12
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r6
|
|
bne _0805C218
|
|
adds r0, r1, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectDoesZCoordMatch
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805C218
|
|
adds r0, r4, 0
|
|
b _0805C224
|
|
.align 2, 0
|
|
_0805C214: .4byte gMapObjects
|
|
_0805C218:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _0805C1E0
|
|
movs r0, 0x10
|
|
_0805C224:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectIdByXYZ
|
|
|
|
thumb_func_start FieldObjectDoesZCoordMatch
|
|
FieldObjectDoesZCoordMatch: @ 805C230
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0xB]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0805C250
|
|
cmp r1, 0
|
|
beq _0805C250
|
|
lsls r0, r2, 28
|
|
lsrs r0, 28
|
|
cmp r0, r1
|
|
beq _0805C250
|
|
movs r0, 0
|
|
b _0805C252
|
|
_0805C250:
|
|
movs r0, 0x1
|
|
_0805C252:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectDoesZCoordMatch
|
|
|
|
thumb_func_start UpdateFieldObjectsForCameraUpdate
|
|
UpdateFieldObjectsForCameraUpdate: @ 805C258
|
|
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_805B55C
|
|
bl RemoveFieldObjectsOutsideView
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end UpdateFieldObjectsForCameraUpdate
|
|
|
|
thumb_func_start AddCameraObject
|
|
AddCameraObject: @ 805C284
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _0805C2C0 @ =gSpriteTemplate_830FD24
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805C2C4 @ =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
|
|
_0805C2C0: .4byte gSpriteTemplate_830FD24
|
|
_0805C2C4: .4byte gSprites
|
|
thumb_func_end AddCameraObject
|
|
|
|
thumb_func_start ObjectCB_CameraObject
|
|
ObjectCB_CameraObject: @ 805C2C8
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
mov r2, sp
|
|
ldr r1, _0805C2EC @ =gUnknown_0830FD3C
|
|
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
|
|
_0805C2EC: .4byte gUnknown_0830FD3C
|
|
thumb_func_end ObjectCB_CameraObject
|
|
|
|
thumb_func_start CameraObject_0
|
|
CameraObject_0: @ 805C2F0
|
|
push {lr}
|
|
ldr r3, _0805C328 @ =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
|
|
_0805C328: .4byte gSprites
|
|
thumb_func_end CameraObject_0
|
|
|
|
thumb_func_start CameraObject_1
|
|
CameraObject_1: @ 805C32C
|
|
push {r4,r5,lr}
|
|
ldr r3, _0805C360 @ =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
|
|
_0805C360: .4byte gSprites
|
|
thumb_func_end CameraObject_1
|
|
|
|
thumb_func_start CameraObject_2
|
|
CameraObject_2: @ 805C364
|
|
push {r4,lr}
|
|
ldr r4, _0805C390 @ =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
|
|
_0805C390: .4byte gSprites
|
|
thumb_func_end CameraObject_2
|
|
|
|
thumb_func_start FindCameraObject
|
|
FindCameraObject: @ 805C394
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r4, _0805C3C0 @ =gSprites
|
|
adds r5, r4, 0
|
|
adds r5, 0x1C
|
|
_0805C39E:
|
|
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 _0805C3C8
|
|
adds r0, r1, r5
|
|
ldr r1, [r0]
|
|
ldr r0, _0805C3C4 @ =ObjectCB_CameraObject
|
|
cmp r1, r0
|
|
bne _0805C3C8
|
|
adds r0, r2, 0
|
|
b _0805C3D4
|
|
.align 2, 0
|
|
_0805C3C0: .4byte gSprites
|
|
_0805C3C4: .4byte ObjectCB_CameraObject
|
|
_0805C3C8:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3F
|
|
bls _0805C39E
|
|
movs r0, 0
|
|
_0805C3D4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FindCameraObject
|
|
|
|
thumb_func_start CameraObjectReset1
|
|
CameraObjectReset1: @ 805C3DC
|
|
push {lr}
|
|
bl FindCameraObject
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _0805C3F4
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
ldr r1, [r2, 0x1C]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
_0805C3F4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectReset1
|
|
|
|
thumb_func_start CameraObjectSetFollowedObjectId
|
|
CameraObjectSetFollowedObjectId: @ 805C3F8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl FindCameraObject
|
|
cmp r0, 0
|
|
beq _0805C40C
|
|
strh r4, [r0, 0x2E]
|
|
bl CameraObjectReset1
|
|
_0805C40C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectSetFollowedObjectId
|
|
|
|
thumb_func_start CameraObjectGetFollowedObjectId
|
|
CameraObjectGetFollowedObjectId: @ 805C414
|
|
push {lr}
|
|
bl FindCameraObject
|
|
cmp r0, 0
|
|
beq _0805C426
|
|
ldrh r0, [r0, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0805C428
|
|
_0805C426:
|
|
movs r0, 0x40
|
|
_0805C428:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CameraObjectGetFollowedObjectId
|
|
|
|
thumb_func_start CameraObjectReset2
|
|
CameraObjectReset2: @ 805C42C
|
|
push {lr}
|
|
bl FindCameraObject
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x30]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CameraObjectReset2
|
|
|
|
thumb_func_start unref_sub_805C43C
|
|
unref_sub_805C43C: @ 805C43C
|
|
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, _0805C484 @ =gSprites
|
|
_0805C456:
|
|
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 _0805C488
|
|
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 _0805C492
|
|
.align 2, 0
|
|
_0805C484: .4byte gSprites
|
|
_0805C488:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x3F
|
|
bls _0805C456
|
|
_0805C492:
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end unref_sub_805C43C
|
|
|
|
thumb_func_start obj_unfreeze
|
|
obj_unfreeze: @ 805C4A0
|
|
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, _0805C4F4 @ =gSprites
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
_0805C4BE:
|
|
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 _0805C4F8
|
|
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 _0805C506
|
|
.align 2, 0
|
|
_0805C4F4: .4byte gSprites
|
|
_0805C4F8:
|
|
subs r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, r2
|
|
bgt _0805C4BE
|
|
movs r0, 0x40
|
|
_0805C506:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end obj_unfreeze
|
|
|
|
thumb_func_start FieldObjectSetDirection
|
|
FieldObjectSetDirection: @ 805C510
|
|
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 _0805C540
|
|
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]
|
|
_0805C540:
|
|
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: @ 805C554
|
|
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: @ 805C56C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805C58C @ =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
|
|
_0805C58C: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectScriptPointerByFieldObjectId
|
|
|
|
thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap
|
|
GetFieldObjectFlagIdByLocalIdAndMap: @ 805C590
|
|
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: @ 805C5A8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805C5CC @ =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
|
|
_0805C5CC: .4byte gMapObjects
|
|
thumb_func_end GetFieldObjectFlagIdByFieldObjectId
|
|
|
|
thumb_func_start unref_sub_805C5D0
|
|
unref_sub_805C5D0: @ 805C5D0
|
|
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 _0805C604
|
|
ldr r2, _0805C600 @ =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 _0805C606
|
|
.align 2, 0
|
|
_0805C600: .4byte gMapObjects
|
|
_0805C604:
|
|
movs r0, 0xFF
|
|
_0805C606:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end unref_sub_805C5D0
|
|
|
|
thumb_func_start unref_sub_805C60C
|
|
unref_sub_805C60C: @ 805C60C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805C620 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x7]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805C620: .4byte gMapObjects
|
|
thumb_func_end unref_sub_805C60C
|
|
|
|
thumb_func_start unref_sub_805C624
|
|
unref_sub_805C624: @ 805C624
|
|
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 _0805C658
|
|
ldr r2, _0805C654 @ =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 _0805C65A
|
|
.align 2, 0
|
|
_0805C654: .4byte gMapObjects
|
|
_0805C658:
|
|
movs r0, 0xFF
|
|
_0805C65A:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end unref_sub_805C624
|
|
|
|
thumb_func_start FieldObjectGetBerryTreeId
|
|
FieldObjectGetBerryTreeId: @ 805C660
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0805C674 @ =gMapObjects
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x1D]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805C674: .4byte gMapObjects
|
|
thumb_func_end FieldObjectGetBerryTreeId
|
|
|
|
thumb_func_start GetFieldObjectTemplateByLocalIdAndMap
|
|
GetFieldObjectTemplateByLocalIdAndMap: @ 805C678
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, _0805C6A4 @ =gSaveBlock1
|
|
movs r0, 0x5
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r3
|
|
bne _0805C6AC
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, r2
|
|
bne _0805C6AC
|
|
movs r0, 0xC2
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r0, _0805C6A8 @ =gMapHeader
|
|
ldr r0, [r0, 0x4]
|
|
b _0805C6B8
|
|
.align 2, 0
|
|
_0805C6A4: .4byte gSaveBlock1
|
|
_0805C6A8: .4byte gMapHeader
|
|
_0805C6AC:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl get_mapheader_by_bank_and_number
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r0, 0x4]
|
|
_0805C6B8:
|
|
ldrb r2, [r0]
|
|
adds r0, r4, 0
|
|
bl FindFieldObjectTemplateInArrayByLocalId
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFieldObjectTemplateByLocalIdAndMap
|
|
|
|
thumb_func_start FindFieldObjectTemplateInArrayByLocalId
|
|
FindFieldObjectTemplateInArrayByLocalId: @ 805C6C8
|
|
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 _0805C6F6
|
|
_0805C6DA:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r3, r0, r5
|
|
ldrb r0, [r3]
|
|
cmp r0, r4
|
|
bne _0805C6EC
|
|
adds r0, r3, 0
|
|
b _0805C6F8
|
|
_0805C6EC:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r2
|
|
bcc _0805C6DA
|
|
_0805C6F6:
|
|
movs r0, 0
|
|
_0805C6F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FindFieldObjectTemplateInArrayByLocalId
|
|
|
|
thumb_func_start sub_805C700
|
|
sub_805C700: @ 805C700
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
ldrb r1, [r2, 0x9]
|
|
ldr r4, _0805C720 @ =gSaveBlock1
|
|
movs r0, 0x5
|
|
ldrsb r0, [r4, r0]
|
|
adds r5, r4, 0
|
|
cmp r1, r0
|
|
bne _0805C74A
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r5, r0]
|
|
cmp r1, r0
|
|
beq _0805C72E
|
|
b _0805C74A
|
|
.align 2, 0
|
|
_0805C720: .4byte gSaveBlock1
|
|
_0805C724:
|
|
movs r1, 0xC2
|
|
lsls r1, 4
|
|
adds r0, r5, r1
|
|
adds r0, r2, r0
|
|
b _0805C74C
|
|
_0805C72E:
|
|
movs r3, 0
|
|
ldrb r0, [r2, 0x8]
|
|
movs r2, 0xC2
|
|
lsls r2, 4
|
|
adds r1, r4, r2
|
|
movs r2, 0
|
|
_0805C73A:
|
|
ldrb r4, [r1]
|
|
cmp r0, r4
|
|
beq _0805C724
|
|
adds r1, 0x18
|
|
adds r2, 0x18
|
|
adds r3, 0x1
|
|
cmp r3, 0x3F
|
|
ble _0805C73A
|
|
_0805C74A:
|
|
movs r0, 0
|
|
_0805C74C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C700
|
|
|
|
thumb_func_start sub_805C754
|
|
sub_805C754: @ 805C754
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_805C700
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _0805C76E
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x7
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r4, 0x12]
|
|
subs r0, 0x7
|
|
strh r0, [r1, 0x6]
|
|
_0805C76E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C754
|
|
|
|
thumb_func_start sub_805C774
|
|
sub_805C774: @ 805C774
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
bl sub_805C700
|
|
cmp r0, 0
|
|
beq _0805C784
|
|
strb r4, [r0, 0x9]
|
|
_0805C784:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805C774
|
|
|
|
thumb_func_start sub_805C78C
|
|
sub_805C78C: @ 805C78C
|
|
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 _0805C7BA
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805C7C0 @ =gMapObjects
|
|
adds r0, r1
|
|
bl sub_805C754
|
|
_0805C7BA:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C7C0: .4byte gMapObjects
|
|
thumb_func_end sub_805C78C
|
|
|
|
thumb_func_start sub_805C7C4
|
|
sub_805C7C4: @ 805C7C4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl gpu_pal_allocator_reset__manage_upper_four
|
|
ldr r1, _0805C7F4 @ =gUnknown_030005A6
|
|
ldr r2, _0805C7F8 @ =0x000011ff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0805C7FC @ =gUnknown_030005A4
|
|
strb r4, [r0]
|
|
ldr r1, _0805C800 @ =gUnknown_0837399C
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
bl pal_patch_for_npc_range
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C7F4: .4byte gUnknown_030005A6
|
|
_0805C7F8: .4byte 0x000011ff
|
|
_0805C7FC: .4byte gUnknown_030005A4
|
|
_0805C800: .4byte gUnknown_0837399C
|
|
thumb_func_end sub_805C7C4
|
|
|
|
thumb_func_start npc_paltag_by_palslot
|
|
npc_paltag_by_palslot: @ 805C804
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x9
|
|
bhi _0805C840
|
|
ldr r1, _0805C820 @ =gUnknown_0837399C
|
|
ldr r0, _0805C824 @ =gUnknown_030005A4
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 1
|
|
b _0805C834
|
|
.align 2, 0
|
|
_0805C820: .4byte gUnknown_0837399C
|
|
_0805C824: .4byte gUnknown_030005A4
|
|
_0805C828:
|
|
adds r1, r4, 0x4
|
|
adds r1, r2, r1
|
|
ldr r0, _0805C83C @ =gUnknown_030005A4
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
_0805C834:
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
b _0805C872
|
|
.align 2, 0
|
|
_0805C83C: .4byte gUnknown_030005A4
|
|
_0805C840:
|
|
movs r3, 0
|
|
ldr r0, _0805C878 @ =gUnknown_083738E4
|
|
ldrh r1, [r0]
|
|
ldr r2, _0805C87C @ =0x000011ff
|
|
adds r4, r0, 0
|
|
cmp r1, r2
|
|
beq _0805C870
|
|
adds r6, r4, 0
|
|
ldr r0, _0805C880 @ =gUnknown_030005A6
|
|
ldrh r1, [r0]
|
|
adds r5, r2, 0
|
|
_0805C856:
|
|
lsls r2, r3, 3
|
|
adds r0, r2, r6
|
|
ldrh r0, [r0]
|
|
cmp r0, r1
|
|
beq _0805C828
|
|
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 _0805C856
|
|
_0805C870:
|
|
ldr r0, _0805C87C @ =0x000011ff
|
|
_0805C872:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C878: .4byte gUnknown_083738E4
|
|
_0805C87C: .4byte 0x000011ff
|
|
_0805C880: .4byte gUnknown_030005A6
|
|
thumb_func_end npc_paltag_by_palslot
|
|
|
|
thumb_func_start sub_805C884
|
|
sub_805C884: @ 805C884
|
|
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, _0805C8A0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805C8A4 @ =sub_805C8A8
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C8A0: .4byte gMapObjects
|
|
_0805C8A4: .4byte sub_805C8A8
|
|
thumb_func_end sub_805C884
|
|
|
|
thumb_func_start sub_805C8A8
|
|
sub_805C8A8: @ 805C8A8
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805C8A8
|
|
|
|
thumb_func_start sub_805C8AC
|
|
sub_805C8AC: @ 805C8AC
|
|
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, _0805C8C8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805C8CC @ =sub_805C8D0
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805C8C8: .4byte gMapObjects
|
|
_0805C8CC: .4byte sub_805C8D0
|
|
thumb_func_end sub_805C8AC
|
|
|
|
thumb_func_start sub_805C8D0
|
|
sub_805C8D0: @ 805C8D0
|
|
push {r4,lr}
|
|
ldr r3, _0805C8EC @ =gUnknown_08375224
|
|
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
|
|
_0805C8EC: .4byte gUnknown_08375224
|
|
thumb_func_end sub_805C8D0
|
|
|
|
thumb_func_start sub_805C8F0
|
|
sub_805C8F0: @ 805C8F0
|
|
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_805C8F0
|
|
|
|
thumb_func_start sub_805C904
|
|
sub_805C904: @ 805C904
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C904
|
|
|
|
thumb_func_start sub_805C930
|
|
sub_805C930: @ 805C930
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805C964
|
|
ldr r5, _0805C960 @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _0805C966
|
|
.align 2, 0
|
|
_0805C960: .4byte gUnknown_0837520C
|
|
_0805C964:
|
|
movs r0, 0
|
|
_0805C966:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C930
|
|
|
|
thumb_func_start sub_805C96C
|
|
sub_805C96C: @ 805C96C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C980
|
|
movs r0, 0
|
|
b _0805C986
|
|
_0805C980:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805C986:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C96C
|
|
|
|
thumb_func_start sub_805C98C
|
|
sub_805C98C: @ 805C98C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _0805C9D4 @ =gUnknown_08375240
|
|
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 sub_805FF20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805C9CA
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x30]
|
|
_0805C9CA:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C9D4: .4byte gUnknown_08375240
|
|
thumb_func_end sub_805C98C
|
|
|
|
thumb_func_start sub_805C9D8
|
|
sub_805C9D8: @ 805C9D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetGoSpeed0AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805C9D8
|
|
|
|
thumb_func_start sub_805CA08
|
|
sub_805CA08: @ 805CA08
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CA26
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805CA26:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CA08
|
|
|
|
thumb_func_start FieldObjectIsTrainerAndCloseToPlayer
|
|
FieldObjectIsTrainerAndCloseToPlayer: @ 805CA30
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r0, 0x80
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CA9C
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0x1
|
|
beq _0805CA4C
|
|
cmp r0, 0x3
|
|
bne _0805CA9C
|
|
_0805CA4C:
|
|
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 _0805CA9C
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r4
|
|
blt _0805CA9C
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
movs r2, 0
|
|
ldrsh r1, [r7, r2]
|
|
cmp r0, r1
|
|
bgt _0805CA9C
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
bge _0805CAA0
|
|
_0805CA9C:
|
|
movs r0, 0
|
|
b _0805CAA2
|
|
_0805CAA0:
|
|
movs r0, 0x1
|
|
_0805CAA2:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsTrainerAndCloseToPlayer
|
|
|
|
thumb_func_start sub_805CAAC
|
|
sub_805CAAC: @ 805CAAC
|
|
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 _0805CACA
|
|
movs r2, 0x4
|
|
lsls r0, r4, 16
|
|
cmp r0, 0
|
|
bge _0805CAD4
|
|
movs r2, 0x3
|
|
b _0805CAD4
|
|
_0805CACA:
|
|
movs r2, 0x1
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0805CAD4
|
|
movs r2, 0x2
|
|
_0805CAD4:
|
|
adds r0, r2, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CAAC
|
|
|
|
thumb_func_start sub_805CADC
|
|
sub_805CADC: @ 805CADC
|
|
push {lr}
|
|
movs r0, 0x1
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bge _0805CAE8
|
|
movs r0, 0x2
|
|
_0805CAE8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CADC
|
|
|
|
thumb_func_start sub_805CAEC
|
|
sub_805CAEC: @ 805CAEC
|
|
push {lr}
|
|
movs r1, 0x4
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0805CAF8
|
|
movs r1, 0x3
|
|
_0805CAF8:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CAEC
|
|
|
|
thumb_func_start sub_805CB00
|
|
sub_805CB00: @ 805CB00
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805CB3C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0805CB56
|
|
b _0805CB54
|
|
_0805CB3C:
|
|
cmp r0, 0x4
|
|
bne _0805CB56
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805CB56
|
|
_0805CB54:
|
|
movs r0, 0x2
|
|
_0805CB56:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CB00
|
|
|
|
thumb_func_start sub_805CB5C
|
|
sub_805CB5C: @ 805CB5C
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805CB98
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0805CBB2
|
|
b _0805CBB0
|
|
_0805CB98:
|
|
cmp r0, 0x3
|
|
bne _0805CBB2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805CBB2
|
|
_0805CBB0:
|
|
movs r0, 0x2
|
|
_0805CBB2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CB5C
|
|
|
|
thumb_func_start sub_805CBB8
|
|
sub_805CBB8: @ 805CBB8
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805CBF4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0805CC0E
|
|
b _0805CC0C
|
|
_0805CBF4:
|
|
cmp r0, 0x4
|
|
bne _0805CC0E
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805CC0E
|
|
_0805CC0C:
|
|
movs r0, 0x1
|
|
_0805CC0E:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CBB8
|
|
|
|
thumb_func_start sub_805CC14
|
|
sub_805CC14: @ 805CC14
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805CC50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0805CC6A
|
|
b _0805CC68
|
|
_0805CC50:
|
|
cmp r0, 0x3
|
|
bne _0805CC6A
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805CC6A
|
|
_0805CC68:
|
|
movs r0, 0x1
|
|
_0805CC6A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CC14
|
|
|
|
thumb_func_start sub_805CC70
|
|
sub_805CC70: @ 805CC70
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0805CCA6
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805CCA6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CC70
|
|
|
|
thumb_func_start sub_805CCAC
|
|
sub_805CCAC: @ 805CCAC
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0805CCE2
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_805CADC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805CCE2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CCAC
|
|
|
|
thumb_func_start sub_805CCE8
|
|
sub_805CCE8: @ 805CCE8
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805CD1E
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805CD1E:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CCE8
|
|
|
|
thumb_func_start sub_805CD24
|
|
sub_805CD24: @ 805CD24
|
|
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 sub_805CAAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _0805CD5A
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_805CAEC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805CD5A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CD24
|
|
|
|
thumb_func_start sub_805CD60
|
|
sub_805CD60: @ 805CD60
|
|
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 _0805CD78
|
|
movs r0, 0
|
|
b _0805CDDC
|
|
_0805CD78:
|
|
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 _0805CDAC
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
_0805CDAC:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0805CDBA
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
_0805CDBA:
|
|
ldr r0, _0805CDE4 @ =gUnknown_08375244
|
|
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
|
|
_0805CDDC:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805CDE4: .4byte gUnknown_08375244
|
|
thumb_func_end sub_805CD60
|
|
|
|
thumb_func_start sub_805CDE8
|
|
sub_805CDE8: @ 805CDE8
|
|
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, _0805CE04 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805CE08 @ =sub_805CE0C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CE04: .4byte gMapObjects
|
|
_0805CE08: .4byte sub_805CE0C
|
|
thumb_func_end sub_805CDE8
|
|
|
|
thumb_func_start sub_805CE0C
|
|
sub_805CE0C: @ 805CE0C
|
|
push {r4,lr}
|
|
ldr r3, _0805CE28 @ =gUnknown_08375270
|
|
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
|
|
_0805CE28: .4byte gUnknown_08375270
|
|
thumb_func_end sub_805CE0C
|
|
|
|
thumb_func_start sub_805CE2C
|
|
sub_805CE2C: @ 805CE2C
|
|
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_805CE2C
|
|
|
|
thumb_func_start sub_805CE40
|
|
sub_805CE40: @ 805CE40
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CE40
|
|
|
|
thumb_func_start sub_805CE6C
|
|
sub_805CE6C: @ 805CE6C
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CEA2
|
|
ldr r4, _0805CEAC @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805CEA2:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805CEAC: .4byte gUnknown_0837520C
|
|
thumb_func_end sub_805CE6C
|
|
|
|
thumb_func_start sub_805CEB0
|
|
sub_805CEB0: @ 805CEB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CECE
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CED6
|
|
_0805CECE:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805CED8
|
|
_0805CED6:
|
|
movs r0, 0
|
|
_0805CED8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CEB0
|
|
|
|
thumb_func_start sub_805CEE0
|
|
sub_805CEE0: @ 805CEE0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805CF24 @ =gUnknown_08375240
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805CF10
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805CF10:
|
|
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
|
|
_0805CF24: .4byte gUnknown_08375240
|
|
thumb_func_end sub_805CEE0
|
|
|
|
thumb_func_start sub_805CF28
|
|
sub_805CF28: @ 805CF28
|
|
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, _0805CF44 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805CF48 @ =sub_805CF4C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805CF44: .4byte gMapObjects
|
|
_0805CF48: .4byte sub_805CF4C
|
|
thumb_func_end sub_805CF28
|
|
|
|
thumb_func_start sub_805CF4C
|
|
sub_805CF4C: @ 805CF4C
|
|
push {r4,lr}
|
|
ldr r3, _0805CF68 @ =gUnknown_08375284
|
|
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
|
|
_0805CF68: .4byte gUnknown_08375284
|
|
thumb_func_end sub_805CF4C
|
|
|
|
thumb_func_start sub_805CF6C
|
|
sub_805CF6C: @ 805CF6C
|
|
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_805CF6C
|
|
|
|
thumb_func_start sub_805CF80
|
|
sub_805CF80: @ 805CF80
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CF80
|
|
|
|
thumb_func_start sub_805CFAC
|
|
sub_805CFAC: @ 805CFAC
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805CFE0
|
|
ldr r5, _0805CFDC @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _0805CFE2
|
|
.align 2, 0
|
|
_0805CFDC: .4byte gUnknown_0837520C
|
|
_0805CFE0:
|
|
movs r0, 0
|
|
_0805CFE2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CFAC
|
|
|
|
thumb_func_start sub_805CFE8
|
|
sub_805CFE8: @ 805CFE8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805CFFC
|
|
movs r0, 0
|
|
b _0805D002
|
|
_0805CFFC:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805D002:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805CFE8
|
|
|
|
thumb_func_start sub_805D008
|
|
sub_805D008: @ 805D008
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _0805D050 @ =gUnknown_083752A0
|
|
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 sub_805FF20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D046
|
|
strh r7, [r6, 0x30]
|
|
_0805D046:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D050: .4byte gUnknown_083752A0
|
|
thumb_func_end sub_805D008
|
|
|
|
thumb_func_start sub_805D054
|
|
sub_805D054: @ 805D054
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetGoSpeed0AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805D054
|
|
|
|
thumb_func_start sub_805D084
|
|
sub_805D084: @ 805D084
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D0A2
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805D0A2:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D084
|
|
|
|
thumb_func_start sub_805D0AC
|
|
sub_805D0AC: @ 805D0AC
|
|
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, _0805D0C8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D0CC @ =sub_805D0D0
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D0C8: .4byte gMapObjects
|
|
_0805D0CC: .4byte sub_805D0D0
|
|
thumb_func_end sub_805D0AC
|
|
|
|
thumb_func_start sub_805D0D0
|
|
sub_805D0D0: @ 805D0D0
|
|
push {r4,lr}
|
|
ldr r3, _0805D0EC @ =gUnknown_083752A4
|
|
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
|
|
_0805D0EC: .4byte gUnknown_083752A4
|
|
thumb_func_end sub_805D0D0
|
|
|
|
thumb_func_start sub_805D0F0
|
|
sub_805D0F0: @ 805D0F0
|
|
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_805D0F0
|
|
|
|
thumb_func_start sub_805D104
|
|
sub_805D104: @ 805D104
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D104
|
|
|
|
thumb_func_start sub_805D130
|
|
sub_805D130: @ 805D130
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D164
|
|
ldr r5, _0805D160 @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
strh r4, [r6, 0x30]
|
|
movs r0, 0x1
|
|
b _0805D166
|
|
.align 2, 0
|
|
_0805D160: .4byte gUnknown_0837520C
|
|
_0805D164:
|
|
movs r0, 0
|
|
_0805D166:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D130
|
|
|
|
thumb_func_start sub_805D16C
|
|
sub_805D16C: @ 805D16C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D180
|
|
movs r0, 0
|
|
b _0805D186
|
|
_0805D180:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805D186:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D16C
|
|
|
|
thumb_func_start sub_805D18C
|
|
sub_805D18C: @ 805D18C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r1, _0805D1D4 @ =gUnknown_083752C0
|
|
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 sub_805FF20
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D1CA
|
|
strh r7, [r6, 0x30]
|
|
_0805D1CA:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D1D4: .4byte gUnknown_083752C0
|
|
thumb_func_end sub_805D18C
|
|
|
|
thumb_func_start sub_805D1D8
|
|
sub_805D1D8: @ 805D1D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetGoSpeed0AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805D1D8
|
|
|
|
thumb_func_start sub_805D208
|
|
sub_805D208: @ 805D208
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D226
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805D226:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D208
|
|
|
|
thumb_func_start sub_805D230
|
|
sub_805D230: @ 805D230
|
|
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, _0805D24C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D250 @ =sub_805D254
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D24C: .4byte gMapObjects
|
|
_0805D250: .4byte sub_805D254
|
|
thumb_func_end sub_805D230
|
|
|
|
thumb_func_start sub_805D254
|
|
sub_805D254: @ 805D254
|
|
push {r4,lr}
|
|
ldr r3, _0805D270 @ =gUnknown_083752C4
|
|
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
|
|
_0805D270: .4byte gUnknown_083752C4
|
|
thumb_func_end sub_805D254
|
|
|
|
thumb_func_start sub_805D274
|
|
sub_805D274: @ 805D274
|
|
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 GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D274
|
|
|
|
thumb_func_start sub_805D2A0
|
|
sub_805D2A0: @ 805D2A0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D2B2
|
|
movs r0, 0
|
|
b _0805D2B8
|
|
_0805D2B2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805D2B8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D2A0
|
|
|
|
thumb_func_start sub_805D2C0
|
|
sub_805D2C0: @ 805D2C0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805D2C0
|
|
|
|
thumb_func_start FieldObjectCB_BerryTree
|
|
FieldObjectCB_BerryTree: @ 805D2D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805D30C @ =gMapObjects
|
|
adds r5, r0, r1
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D2FC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl get_berry_tree_graphics
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_0805D2FC:
|
|
ldr r2, _0805D310 @ =sub_805D314
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl meta_step
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D30C: .4byte gMapObjects
|
|
_0805D310: .4byte sub_805D314
|
|
thumb_func_end FieldObjectCB_BerryTree
|
|
|
|
thumb_func_start sub_805D314
|
|
sub_805D314: @ 805D314
|
|
push {r4,lr}
|
|
ldr r3, _0805D330 @ =gUnknown_083752D0
|
|
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
|
|
_0805D330: .4byte gUnknown_083752D0
|
|
thumb_func_end sub_805D314
|
|
|
|
thumb_func_start do_berry_tree_growth_sparkle_1
|
|
do_berry_tree_growth_sparkle_1: @ 805D334
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl npc_reset
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r6, r5, 0
|
|
adds r6, 0x3E
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
ldrb r0, [r4, 0x1D]
|
|
bl GetStageByBerryTreeId
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0
|
|
bne _0805D3A4
|
|
ldrh r1, [r5, 0x3C]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805D39A
|
|
subs r6, 0x14
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x4
|
|
bne _0805D39A
|
|
ldr r1, _0805D3A0 @ =gUnknown_0202FF84
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
str r0, [r1]
|
|
movs r2, 0x12
|
|
ldrsh r0, [r4, r2]
|
|
str r0, [r1, 0x4]
|
|
adds r0, r5, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
str r0, [r1, 0x8]
|
|
ldrb r0, [r5, 0x5]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
str r0, [r1, 0xC]
|
|
movs r0, 0x17
|
|
bl FieldEffectStart
|
|
strb r7, [r6]
|
|
_0805D39A:
|
|
movs r0, 0
|
|
b _0805D3E6
|
|
.align 2, 0
|
|
_0805D3A0: .4byte gUnknown_0202FF84
|
|
_0805D3A4:
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r1, [r6]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
subs r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r5, 0
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
cmp r0, r7
|
|
bne _0805D3E0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl get_berry_tree_graphics
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x39
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
b _0805D3E6
|
|
_0805D3E0:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
_0805D3E6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_berry_tree_growth_sparkle_1
|
|
|
|
thumb_func_start sub_805D3EC
|
|
sub_805D3EC: @ 805D3EC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D3FE
|
|
movs r0, 0
|
|
b _0805D404
|
|
_0805D3FE:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805D404:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D3EC
|
|
|
|
thumb_func_start do_berry_tree_growth_sparkle_2
|
|
do_berry_tree_growth_sparkle_2: @ 805D40C
|
|
push {r4,lr}
|
|
ldrb r2, [r0]
|
|
movs r3, 0x2
|
|
orrs r2, r3
|
|
strb r2, [r0]
|
|
movs r3, 0
|
|
movs r2, 0x3
|
|
strh r2, [r1, 0x30]
|
|
strh r3, [r1, 0x32]
|
|
ldrh r3, [r1, 0x3C]
|
|
movs r2, 0x2
|
|
orrs r2, r3
|
|
strh r2, [r1, 0x3C]
|
|
ldr r3, _0805D454 @ =gUnknown_0202FF84
|
|
movs r4, 0x10
|
|
ldrsh r2, [r0, r4]
|
|
str r2, [r3]
|
|
movs r2, 0x12
|
|
ldrsh r0, [r0, r2]
|
|
str r0, [r3, 0x4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
ldrb r0, [r1, 0x5]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
str r0, [r3, 0xC]
|
|
movs r0, 0x17
|
|
bl FieldEffectStart
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D454: .4byte gUnknown_0202FF84
|
|
thumb_func_end do_berry_tree_growth_sparkle_2
|
|
|
|
thumb_func_start sub_805D458
|
|
sub_805D458: @ 805D458
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldrh r1, [r4, 0x32]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x32]
|
|
movs r0, 0x2
|
|
ands r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 17
|
|
lsls r1, 5
|
|
ldrb r2, [r3, 0x1]
|
|
subs r0, 0x23
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x1]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x40
|
|
bgt _0805D490
|
|
movs r0, 0
|
|
b _0805D4A2
|
|
_0805D490:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl get_berry_tree_graphics
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0805D4A2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D458
|
|
|
|
thumb_func_start sub_805D4A8
|
|
sub_805D4A8: @ 805D4A8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldrh r2, [r4, 0x32]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0x32]
|
|
movs r1, 0x2
|
|
ands r2, r1
|
|
lsls r2, 16
|
|
lsrs r2, 17
|
|
lsls r2, 5
|
|
ldrb r3, [r0, 0x1]
|
|
subs r1, 0x23
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x40
|
|
bgt _0805D4DE
|
|
movs r0, 0
|
|
b _0805D4EC
|
|
_0805D4DE:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x3C]
|
|
subs r0, 0x3
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r0, 0x1
|
|
_0805D4EC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D4A8
|
|
|
|
thumb_func_start sub_805D4F4
|
|
sub_805D4F4: @ 805D4F4
|
|
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, _0805D510 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D514 @ =sub_805D518
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D510: .4byte gMapObjects
|
|
_0805D514: .4byte sub_805D518
|
|
thumb_func_end sub_805D4F4
|
|
|
|
thumb_func_start sub_805D518
|
|
sub_805D518: @ 805D518
|
|
push {r4,lr}
|
|
ldr r3, _0805D534 @ =gUnknown_083752E4
|
|
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
|
|
_0805D534: .4byte gUnknown_083752E4
|
|
thumb_func_end sub_805D518
|
|
|
|
thumb_func_start sub_805D538
|
|
sub_805D538: @ 805D538
|
|
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_805D538
|
|
|
|
thumb_func_start sub_805D54C
|
|
sub_805D54C: @ 805D54C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D54C
|
|
|
|
thumb_func_start sub_805D578
|
|
sub_805D578: @ 805D578
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D5AE
|
|
ldr r4, _0805D5B8 @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805D5AE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D5B8: .4byte gUnknown_0837520C
|
|
thumb_func_end sub_805D578
|
|
|
|
thumb_func_start sub_805D5BC
|
|
sub_805D5BC: @ 805D5BC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D5DA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D5E2
|
|
_0805D5DA:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805D5E4
|
|
_0805D5E2:
|
|
movs r0, 0
|
|
_0805D5E4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D5BC
|
|
|
|
thumb_func_start sub_805D5EC
|
|
sub_805D5EC: @ 805D5EC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805D630 @ =gUnknown_083752A0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805D61C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805D61C:
|
|
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
|
|
_0805D630: .4byte gUnknown_083752A0
|
|
thumb_func_end sub_805D5EC
|
|
|
|
thumb_func_start sub_805D634
|
|
sub_805D634: @ 805D634
|
|
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, _0805D650 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D654 @ =sub_805D658
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D650: .4byte gMapObjects
|
|
_0805D654: .4byte sub_805D658
|
|
thumb_func_end sub_805D634
|
|
|
|
thumb_func_start sub_805D658
|
|
sub_805D658: @ 805D658
|
|
push {r4,lr}
|
|
ldr r3, _0805D674 @ =gUnknown_083752F8
|
|
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
|
|
_0805D674: .4byte gUnknown_083752F8
|
|
thumb_func_end sub_805D658
|
|
|
|
thumb_func_start sub_805D678
|
|
sub_805D678: @ 805D678
|
|
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_805D678
|
|
|
|
thumb_func_start sub_805D68C
|
|
sub_805D68C: @ 805D68C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D68C
|
|
|
|
thumb_func_start sub_805D6B8
|
|
sub_805D6B8: @ 805D6B8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D6EE
|
|
ldr r4, _0805D6F8 @ =gUnknown_0837520C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805D6EE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D6F8: .4byte gUnknown_0837520C
|
|
thumb_func_end sub_805D6B8
|
|
|
|
thumb_func_start sub_805D6FC
|
|
sub_805D6FC: @ 805D6FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D71A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D722
|
|
_0805D71A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805D724
|
|
_0805D722:
|
|
movs r0, 0
|
|
_0805D724:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D6FC
|
|
|
|
thumb_func_start sub_805D72C
|
|
sub_805D72C: @ 805D72C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805D770 @ =gUnknown_083752C0
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805D75C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805D75C:
|
|
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
|
|
_0805D770: .4byte gUnknown_083752C0
|
|
thumb_func_end sub_805D72C
|
|
|
|
thumb_func_start sub_805D774
|
|
sub_805D774: @ 805D774
|
|
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, _0805D790 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D794 @ =sub_805D798
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D790: .4byte gMapObjects
|
|
_0805D794: .4byte sub_805D798
|
|
thumb_func_end sub_805D774
|
|
|
|
thumb_func_start sub_805D798
|
|
sub_805D798: @ 805D798
|
|
push {r4,lr}
|
|
ldr r3, _0805D7B4 @ =gUnknown_0837530C
|
|
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
|
|
_0805D7B4: .4byte gUnknown_0837530C
|
|
thumb_func_end sub_805D798
|
|
|
|
thumb_func_start sub_805D7B8
|
|
sub_805D7B8: @ 805D7B8
|
|
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_805D7B8
|
|
|
|
thumb_func_start sub_805D7CC
|
|
sub_805D7CC: @ 805D7CC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D7CC
|
|
|
|
thumb_func_start sub_805D7F8
|
|
sub_805D7F8: @ 805D7F8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D82E
|
|
ldr r4, _0805D838 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805D82E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D838: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805D7F8
|
|
|
|
thumb_func_start sub_805D83C
|
|
sub_805D83C: @ 805D83C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D85A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D862
|
|
_0805D85A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805D864
|
|
_0805D862:
|
|
movs r0, 0
|
|
_0805D864:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D83C
|
|
|
|
thumb_func_start sub_805D86C
|
|
sub_805D86C: @ 805D86C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805D8B0 @ =gUnknown_08375320
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805D89C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805D89C:
|
|
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
|
|
_0805D8B0: .4byte gUnknown_08375320
|
|
thumb_func_end sub_805D86C
|
|
|
|
thumb_func_start sub_805D8B4
|
|
sub_805D8B4: @ 805D8B4
|
|
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, _0805D8D0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805D8D4 @ =sub_805D8D8
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805D8D0: .4byte gMapObjects
|
|
_0805D8D4: .4byte sub_805D8D8
|
|
thumb_func_end sub_805D8B4
|
|
|
|
thumb_func_start sub_805D8D8
|
|
sub_805D8D8: @ 805D8D8
|
|
push {r4,lr}
|
|
ldr r3, _0805D8F4 @ =gUnknown_08375324
|
|
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
|
|
_0805D8F4: .4byte gUnknown_08375324
|
|
thumb_func_end sub_805D8D8
|
|
|
|
thumb_func_start sub_805D8F8
|
|
sub_805D8F8: @ 805D8F8
|
|
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_805D8F8
|
|
|
|
thumb_func_start sub_805D90C
|
|
sub_805D90C: @ 805D90C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D90C
|
|
|
|
thumb_func_start sub_805D938
|
|
sub_805D938: @ 805D938
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D96E
|
|
ldr r4, _0805D978 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805D96E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805D978: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805D938
|
|
|
|
thumb_func_start sub_805D97C
|
|
sub_805D97C: @ 805D97C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805D99A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805D9A2
|
|
_0805D99A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805D9A4
|
|
_0805D9A2:
|
|
movs r0, 0
|
|
_0805D9A4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805D97C
|
|
|
|
thumb_func_start sub_805D9AC
|
|
sub_805D9AC: @ 805D9AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805D9F0 @ =gUnknown_08375338
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805D9DC
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805D9DC:
|
|
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
|
|
_0805D9F0: .4byte gUnknown_08375338
|
|
thumb_func_end sub_805D9AC
|
|
|
|
thumb_func_start sub_805D9F4
|
|
sub_805D9F4: @ 805D9F4
|
|
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, _0805DA10 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805DA14 @ =sub_805DA18
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DA10: .4byte gMapObjects
|
|
_0805DA14: .4byte sub_805DA18
|
|
thumb_func_end sub_805D9F4
|
|
|
|
thumb_func_start sub_805DA18
|
|
sub_805DA18: @ 805DA18
|
|
push {r4,lr}
|
|
ldr r3, _0805DA34 @ =gUnknown_0837533C
|
|
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
|
|
_0805DA34: .4byte gUnknown_0837533C
|
|
thumb_func_end sub_805DA18
|
|
|
|
thumb_func_start sub_805DA38
|
|
sub_805DA38: @ 805DA38
|
|
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_805DA38
|
|
|
|
thumb_func_start sub_805DA4C
|
|
sub_805DA4C: @ 805DA4C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DA4C
|
|
|
|
thumb_func_start sub_805DA78
|
|
sub_805DA78: @ 805DA78
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DAAE
|
|
ldr r4, _0805DAB8 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805DAAE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DAB8: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805DA78
|
|
|
|
thumb_func_start sub_805DABC
|
|
sub_805DABC: @ 805DABC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805DADA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DAE2
|
|
_0805DADA:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805DAE4
|
|
_0805DAE2:
|
|
movs r0, 0
|
|
_0805DAE4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DABC
|
|
|
|
thumb_func_start sub_805DAEC
|
|
sub_805DAEC: @ 805DAEC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805DB30 @ =gUnknown_08375350
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805DB1C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805DB1C:
|
|
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
|
|
_0805DB30: .4byte gUnknown_08375350
|
|
thumb_func_end sub_805DAEC
|
|
|
|
thumb_func_start sub_805DB34
|
|
sub_805DB34: @ 805DB34
|
|
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, _0805DB50 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805DB54 @ =sub_805DB58
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DB50: .4byte gMapObjects
|
|
_0805DB54: .4byte sub_805DB58
|
|
thumb_func_end sub_805DB34
|
|
|
|
thumb_func_start sub_805DB58
|
|
sub_805DB58: @ 805DB58
|
|
push {r4,lr}
|
|
ldr r3, _0805DB74 @ =gUnknown_08375354
|
|
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
|
|
_0805DB74: .4byte gUnknown_08375354
|
|
thumb_func_end sub_805DB58
|
|
|
|
thumb_func_start sub_805DB78
|
|
sub_805DB78: @ 805DB78
|
|
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_805DB78
|
|
|
|
thumb_func_start sub_805DB8C
|
|
sub_805DB8C: @ 805DB8C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DB8C
|
|
|
|
thumb_func_start sub_805DBB8
|
|
sub_805DBB8: @ 805DBB8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DBEE
|
|
ldr r4, _0805DBF8 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805DBEE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DBF8: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805DBB8
|
|
|
|
thumb_func_start sub_805DBFC
|
|
sub_805DBFC: @ 805DBFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805DC1A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DC22
|
|
_0805DC1A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805DC24
|
|
_0805DC22:
|
|
movs r0, 0
|
|
_0805DC24:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DBFC
|
|
|
|
thumb_func_start sub_805DC2C
|
|
sub_805DC2C: @ 805DC2C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805DC70 @ =gUnknown_08375368
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805DC5C
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805DC5C:
|
|
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
|
|
_0805DC70: .4byte gUnknown_08375368
|
|
thumb_func_end sub_805DC2C
|
|
|
|
thumb_func_start sub_805DC74
|
|
sub_805DC74: @ 805DC74
|
|
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, _0805DC90 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805DC94 @ =sub_805DC98
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DC90: .4byte gMapObjects
|
|
_0805DC94: .4byte sub_805DC98
|
|
thumb_func_end sub_805DC74
|
|
|
|
thumb_func_start sub_805DC98
|
|
sub_805DC98: @ 805DC98
|
|
push {r4,lr}
|
|
ldr r3, _0805DCB4 @ =gUnknown_0837536C
|
|
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
|
|
_0805DCB4: .4byte gUnknown_0837536C
|
|
thumb_func_end sub_805DC98
|
|
|
|
thumb_func_start sub_805DCB8
|
|
sub_805DCB8: @ 805DCB8
|
|
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_805DCB8
|
|
|
|
thumb_func_start sub_805DCCC
|
|
sub_805DCCC: @ 805DCCC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DCCC
|
|
|
|
thumb_func_start sub_805DCF8
|
|
sub_805DCF8: @ 805DCF8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DD2E
|
|
ldr r4, _0805DD38 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805DD2E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DD38: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805DCF8
|
|
|
|
thumb_func_start sub_805DD3C
|
|
sub_805DD3C: @ 805DD3C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805DD5A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DD62
|
|
_0805DD5A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805DD64
|
|
_0805DD62:
|
|
movs r0, 0
|
|
_0805DD64:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DD3C
|
|
|
|
thumb_func_start sub_805DD6C
|
|
sub_805DD6C: @ 805DD6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805DDB0 @ =gUnknown_08375380
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805DD9C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805DD9C:
|
|
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
|
|
_0805DDB0: .4byte gUnknown_08375380
|
|
thumb_func_end sub_805DD6C
|
|
|
|
thumb_func_start sub_805DDB4
|
|
sub_805DDB4: @ 805DDB4
|
|
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, _0805DDD0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805DDD4 @ =sub_805DDD8
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DDD0: .4byte gMapObjects
|
|
_0805DDD4: .4byte sub_805DDD8
|
|
thumb_func_end sub_805DDB4
|
|
|
|
thumb_func_start sub_805DDD8
|
|
sub_805DDD8: @ 805DDD8
|
|
push {r4,lr}
|
|
ldr r3, _0805DDF4 @ =gUnknown_08375384
|
|
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
|
|
_0805DDF4: .4byte gUnknown_08375384
|
|
thumb_func_end sub_805DDD8
|
|
|
|
thumb_func_start sub_805DDF8
|
|
sub_805DDF8: @ 805DDF8
|
|
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_805DDF8
|
|
|
|
thumb_func_start sub_805DE0C
|
|
sub_805DE0C: @ 805DE0C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DE0C
|
|
|
|
thumb_func_start sub_805DE38
|
|
sub_805DE38: @ 805DE38
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DE6E
|
|
ldr r4, _0805DE78 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805DE6E:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DE78: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805DE38
|
|
|
|
thumb_func_start sub_805DE7C
|
|
sub_805DE7C: @ 805DE7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805DE9A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DEA2
|
|
_0805DE9A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805DEA4
|
|
_0805DEA2:
|
|
movs r0, 0
|
|
_0805DEA4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DE7C
|
|
|
|
thumb_func_start sub_805DEAC
|
|
sub_805DEAC: @ 805DEAC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805DEF0 @ =gUnknown_08375398
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805DEDC
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805DEDC:
|
|
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
|
|
_0805DEF0: .4byte gUnknown_08375398
|
|
thumb_func_end sub_805DEAC
|
|
|
|
thumb_func_start sub_805DEF4
|
|
sub_805DEF4: @ 805DEF4
|
|
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, _0805DF10 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805DF14 @ =sub_805DF18
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805DF10: .4byte gMapObjects
|
|
_0805DF14: .4byte sub_805DF18
|
|
thumb_func_end sub_805DEF4
|
|
|
|
thumb_func_start sub_805DF18
|
|
sub_805DF18: @ 805DF18
|
|
push {r4,lr}
|
|
ldr r3, _0805DF34 @ =gUnknown_0837539C
|
|
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
|
|
_0805DF34: .4byte gUnknown_0837539C
|
|
thumb_func_end sub_805DF18
|
|
|
|
thumb_func_start sub_805DF38
|
|
sub_805DF38: @ 805DF38
|
|
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_805DF38
|
|
|
|
thumb_func_start sub_805DF4C
|
|
sub_805DF4C: @ 805DF4C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DF4C
|
|
|
|
thumb_func_start sub_805DF78
|
|
sub_805DF78: @ 805DF78
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DFAE
|
|
ldr r4, _0805DFB8 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805DFAE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805DFB8: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805DF78
|
|
|
|
thumb_func_start sub_805DFBC
|
|
sub_805DFBC: @ 805DFBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805DFDA
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805DFE2
|
|
_0805DFDA:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805DFE4
|
|
_0805DFE2:
|
|
movs r0, 0
|
|
_0805DFE4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805DFBC
|
|
|
|
thumb_func_start sub_805DFEC
|
|
sub_805DFEC: @ 805DFEC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E030 @ =gUnknown_083753B0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0x9
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805E01C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805E01C:
|
|
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
|
|
_0805E030: .4byte gUnknown_083753B0
|
|
thumb_func_end sub_805DFEC
|
|
|
|
thumb_func_start sub_805E034
|
|
sub_805E034: @ 805E034
|
|
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, _0805E050 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E054 @ =sub_805E058
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E050: .4byte gMapObjects
|
|
_0805E054: .4byte sub_805E058
|
|
thumb_func_end sub_805E034
|
|
|
|
thumb_func_start sub_805E058
|
|
sub_805E058: @ 805E058
|
|
push {r4,lr}
|
|
ldr r3, _0805E074 @ =gUnknown_083753B4
|
|
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
|
|
_0805E074: .4byte gUnknown_083753B4
|
|
thumb_func_end sub_805E058
|
|
|
|
thumb_func_start sub_805E078
|
|
sub_805E078: @ 805E078
|
|
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_805E078
|
|
|
|
thumb_func_start sub_805E08C
|
|
sub_805E08C: @ 805E08C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E08C
|
|
|
|
thumb_func_start sub_805E0B8
|
|
sub_805E0B8: @ 805E0B8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E0EE
|
|
ldr r4, _0805E0F8 @ =gUnknown_0837521C
|
|
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 sub_8064820
|
|
ldrb r1, [r6]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r6]
|
|
strh r5, [r7, 0x30]
|
|
_0805E0EE:
|
|
movs r0, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805E0F8: .4byte gUnknown_0837521C
|
|
thumb_func_end sub_805E0B8
|
|
|
|
thumb_func_start sub_805E0FC
|
|
sub_805E0FC: @ 805E0FC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E11A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E122
|
|
_0805E11A:
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
b _0805E124
|
|
_0805E122:
|
|
movs r0, 0
|
|
_0805E124:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E0FC
|
|
|
|
thumb_func_start sub_805E12C
|
|
sub_805E12C: @ 805E12C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E170 @ =gUnknown_083753C8
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805E15C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
_0805E15C:
|
|
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
|
|
_0805E170: .4byte gUnknown_083753C8
|
|
thumb_func_end sub_805E12C
|
|
|
|
thumb_func_start sub_805E174
|
|
sub_805E174: @ 805E174
|
|
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, _0805E190 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E194 @ =sub_805E198
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E190: .4byte gMapObjects
|
|
_0805E194: .4byte sub_805E198
|
|
thumb_func_end sub_805E174
|
|
|
|
thumb_func_start sub_805E198
|
|
sub_805E198: @ 805E198
|
|
push {r4,lr}
|
|
ldr r3, _0805E1B4 @ =gUnknown_083753CC
|
|
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
|
|
_0805E1B4: .4byte gUnknown_083753CC
|
|
thumb_func_end sub_805E198
|
|
|
|
thumb_func_start sub_805E1B8
|
|
sub_805E1B8: @ 805E1B8
|
|
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 GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E1B8
|
|
|
|
thumb_func_start sub_805E1E4
|
|
sub_805E1E4: @ 805E1E4
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E1FE
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
bl sub_8064820
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_0805E1FE:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E1E4
|
|
|
|
thumb_func_start sub_805E208
|
|
sub_805E208: @ 805E208
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E226
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E22A
|
|
_0805E226:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x30]
|
|
_0805E22A:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E208
|
|
|
|
thumb_func_start sub_805E234
|
|
sub_805E234: @ 805E234
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E274 @ =gUnknown_083753DC
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805E260
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
_0805E260:
|
|
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
|
|
_0805E274: .4byte gUnknown_083753DC
|
|
thumb_func_end sub_805E234
|
|
|
|
thumb_func_start sub_805E278
|
|
sub_805E278: @ 805E278
|
|
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, _0805E294 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E298 @ =sub_805E29C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E294: .4byte gMapObjects
|
|
_0805E298: .4byte sub_805E29C
|
|
thumb_func_end sub_805E278
|
|
|
|
thumb_func_start sub_805E29C
|
|
sub_805E29C: @ 805E29C
|
|
push {r4,lr}
|
|
ldr r3, _0805E2B8 @ =gUnknown_083753E4
|
|
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
|
|
_0805E2B8: .4byte gUnknown_083753E4
|
|
thumb_func_end sub_805E29C
|
|
|
|
thumb_func_start sub_805E2BC
|
|
sub_805E2BC: @ 805E2BC
|
|
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 GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E2BC
|
|
|
|
thumb_func_start sub_805E2E8
|
|
sub_805E2E8: @ 805E2E8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E302
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
bl sub_8064820
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_0805E302:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E2E8
|
|
|
|
thumb_func_start sub_805E30C
|
|
sub_805E30C: @ 805E30C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805E32A
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsTrainerAndCloseToPlayer
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E32E
|
|
_0805E32A:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x30]
|
|
_0805E32E:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E30C
|
|
|
|
thumb_func_start sub_805E338
|
|
sub_805E338: @ 805E338
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E378 @ =gUnknown_083753F4
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_805CD60
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805E364
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
_0805E364:
|
|
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
|
|
_0805E378: .4byte gUnknown_083753F4
|
|
thumb_func_end sub_805E338
|
|
|
|
thumb_func_start sub_805E37C
|
|
sub_805E37C: @ 805E37C
|
|
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, _0805E398 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E39C @ =sub_805E3A0
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E398: .4byte gMapObjects
|
|
_0805E39C: .4byte sub_805E3A0
|
|
thumb_func_end sub_805E37C
|
|
|
|
thumb_func_start sub_805E3A0
|
|
sub_805E3A0: @ 805E3A0
|
|
push {r4,lr}
|
|
ldr r3, _0805E3BC @ =gUnknown_083753FC
|
|
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
|
|
_0805E3BC: .4byte gUnknown_083753FC
|
|
thumb_func_end sub_805E3A0
|
|
|
|
thumb_func_start sub_805E3C0
|
|
sub_805E3C0: @ 805E3C0
|
|
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_805E3C0
|
|
|
|
thumb_func_start sub_805E3D4
|
|
sub_805E3D4: @ 805E3D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _0805E408 @ =gUnknown_0836DC09
|
|
ldrb r1, [r4, 0x6]
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r4, 0
|
|
adds r0, 0x21
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805E3F6
|
|
adds r0, r1, 0
|
|
bl GetOppositeDirection
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_0805E3F6:
|
|
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
|
|
_0805E408: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805E3D4
|
|
|
|
thumb_func_start sub_805E40C
|
|
sub_805E40C: @ 805E40C
|
|
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 _0805E43C
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bne _0805E43C
|
|
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
|
|
_0805E43C:
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl sub_805FF20
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r4, 0x18]
|
|
lsrs r0, 4
|
|
bl GetGoSpeed0AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r5, 0x1
|
|
bne _0805E492
|
|
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 GetGoSpeed0AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl sub_805FF20
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0805E492:
|
|
cmp r5, 0
|
|
beq _0805E4A4
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay16AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0805E4A4:
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805E40C
|
|
|
|
thumb_func_start sub_805E4C4
|
|
sub_805E4C4: @ 805E4C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E4E2
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805E4E2:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E4C4
|
|
|
|
thumb_func_start sub_805E4EC
|
|
sub_805E4EC: @ 805E4EC
|
|
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_805E4EC
|
|
|
|
thumb_func_start MoveFieldObjectInNextDirectionInSequence
|
|
MoveFieldObjectInNextDirectionInSequence: @ 805E500
|
|
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 _0805E522
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bne _0805E522
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
_0805E522:
|
|
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 GetGoSpeed0AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl sub_805FF20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0805E57C
|
|
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 GetGoSpeed0AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r1, [r4, 0x18]
|
|
lsrs r1, 4
|
|
adds r0, r4, 0
|
|
bl sub_805FF20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805E57C:
|
|
cmp r0, 0
|
|
beq _0805E58E
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl GetStepInPlaceDelay16AnimId
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0805E58E:
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805E5B4
|
|
sub_805E5B4: @ 805E5B4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805E5D2
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805E5D2:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805E5B4
|
|
|
|
thumb_func_start sub_805E5DC
|
|
sub_805E5DC: @ 805E5DC
|
|
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, _0805E5F8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E5FC @ =sub_805E600
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E5F8: .4byte gMapObjects
|
|
_0805E5FC: .4byte sub_805E600
|
|
thumb_func_end sub_805E5DC
|
|
|
|
thumb_func_start sub_805E600
|
|
sub_805E600: @ 805E600
|
|
push {r4,lr}
|
|
ldr r3, _0805E61C @ =gUnknown_0837540C
|
|
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
|
|
_0805E61C: .4byte gUnknown_0837540C
|
|
thumb_func_end sub_805E600
|
|
|
|
thumb_func_start sub_805E620
|
|
sub_805E620: @ 805E620
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E664 @ =gUnknown_08375418
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805E64C
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E64C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805E64C:
|
|
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
|
|
_0805E664: .4byte gUnknown_08375418
|
|
thumb_func_end sub_805E620
|
|
|
|
thumb_func_start sub_805E668
|
|
sub_805E668: @ 805E668
|
|
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, _0805E684 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E688 @ =sub_805E68C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E684: .4byte gMapObjects
|
|
_0805E688: .4byte sub_805E68C
|
|
thumb_func_end sub_805E668
|
|
|
|
thumb_func_start sub_805E68C
|
|
sub_805E68C: @ 805E68C
|
|
push {r4,lr}
|
|
ldr r3, _0805E6A8 @ =gUnknown_0837541C
|
|
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
|
|
_0805E6A8: .4byte gUnknown_0837541C
|
|
thumb_func_end sub_805E68C
|
|
|
|
thumb_func_start sub_805E6AC
|
|
sub_805E6AC: @ 805E6AC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E6F0 @ =gUnknown_08375428
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805E6D8
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E6D8
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805E6D8:
|
|
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
|
|
_0805E6F0: .4byte gUnknown_08375428
|
|
thumb_func_end sub_805E6AC
|
|
|
|
thumb_func_start sub_805E6F4
|
|
sub_805E6F4: @ 805E6F4
|
|
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, _0805E710 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E714 @ =sub_805E718
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E710: .4byte gMapObjects
|
|
_0805E714: .4byte sub_805E718
|
|
thumb_func_end sub_805E6F4
|
|
|
|
thumb_func_start sub_805E718
|
|
sub_805E718: @ 805E718
|
|
push {r4,lr}
|
|
ldr r3, _0805E734 @ =gUnknown_0837542C
|
|
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
|
|
_0805E734: .4byte gUnknown_0837542C
|
|
thumb_func_end sub_805E718
|
|
|
|
thumb_func_start sub_805E738
|
|
sub_805E738: @ 805E738
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E77C @ =gUnknown_08375438
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805E764
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E764
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805E764:
|
|
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
|
|
_0805E77C: .4byte gUnknown_08375438
|
|
thumb_func_end sub_805E738
|
|
|
|
thumb_func_start sub_805E780
|
|
sub_805E780: @ 805E780
|
|
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, _0805E79C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E7A0 @ =sub_805E7A4
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E79C: .4byte gMapObjects
|
|
_0805E7A0: .4byte sub_805E7A4
|
|
thumb_func_end sub_805E780
|
|
|
|
thumb_func_start sub_805E7A4
|
|
sub_805E7A4: @ 805E7A4
|
|
push {r4,lr}
|
|
ldr r3, _0805E7C0 @ =gUnknown_0837543C
|
|
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
|
|
_0805E7C0: .4byte gUnknown_0837543C
|
|
thumb_func_end sub_805E7A4
|
|
|
|
thumb_func_start sub_805E7C4
|
|
sub_805E7C4: @ 805E7C4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E808 @ =gUnknown_08375448
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805E7F0
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E7F0
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805E7F0:
|
|
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
|
|
_0805E808: .4byte gUnknown_08375448
|
|
thumb_func_end sub_805E7C4
|
|
|
|
thumb_func_start sub_805E80C
|
|
sub_805E80C: @ 805E80C
|
|
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, _0805E828 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E82C @ =sub_805E830
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E828: .4byte gMapObjects
|
|
_0805E82C: .4byte sub_805E830
|
|
thumb_func_end sub_805E80C
|
|
|
|
thumb_func_start sub_805E830
|
|
sub_805E830: @ 805E830
|
|
push {r4,lr}
|
|
ldr r3, _0805E84C @ =gUnknown_0837544C
|
|
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
|
|
_0805E84C: .4byte gUnknown_0837544C
|
|
thumb_func_end sub_805E830
|
|
|
|
thumb_func_start sub_805E850
|
|
sub_805E850: @ 805E850
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E894 @ =gUnknown_08375458
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805E87C
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E87C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805E87C:
|
|
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
|
|
_0805E894: .4byte gUnknown_08375458
|
|
thumb_func_end sub_805E850
|
|
|
|
thumb_func_start sub_805E898
|
|
sub_805E898: @ 805E898
|
|
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, _0805E8B4 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E8B8 @ =sub_805E8BC
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E8B4: .4byte gMapObjects
|
|
_0805E8B8: .4byte sub_805E8BC
|
|
thumb_func_end sub_805E898
|
|
|
|
thumb_func_start sub_805E8BC
|
|
sub_805E8BC: @ 805E8BC
|
|
push {r4,lr}
|
|
ldr r3, _0805E8D8 @ =gUnknown_0837545C
|
|
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
|
|
_0805E8D8: .4byte gUnknown_0837545C
|
|
thumb_func_end sub_805E8BC
|
|
|
|
thumb_func_start sub_805E8DC
|
|
sub_805E8DC: @ 805E8DC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E920 @ =gUnknown_08375468
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805E908
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E908
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805E908:
|
|
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
|
|
_0805E920: .4byte gUnknown_08375468
|
|
thumb_func_end sub_805E8DC
|
|
|
|
thumb_func_start sub_805E924
|
|
sub_805E924: @ 805E924
|
|
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, _0805E940 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E944 @ =sub_805E948
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E940: .4byte gMapObjects
|
|
_0805E944: .4byte sub_805E948
|
|
thumb_func_end sub_805E924
|
|
|
|
thumb_func_start sub_805E948
|
|
sub_805E948: @ 805E948
|
|
push {r4,lr}
|
|
ldr r3, _0805E964 @ =gUnknown_0837546C
|
|
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
|
|
_0805E964: .4byte gUnknown_0837546C
|
|
thumb_func_end sub_805E948
|
|
|
|
thumb_func_start sub_805E968
|
|
sub_805E968: @ 805E968
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805E9AC @ =gUnknown_08375240
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805E994
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805E994
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805E994:
|
|
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
|
|
_0805E9AC: .4byte gUnknown_08375240
|
|
thumb_func_end sub_805E968
|
|
|
|
thumb_func_start sub_805E9B0
|
|
sub_805E9B0: @ 805E9B0
|
|
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, _0805E9CC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805E9D0 @ =sub_805E9D4
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805E9CC: .4byte gMapObjects
|
|
_0805E9D0: .4byte sub_805E9D4
|
|
thumb_func_end sub_805E9B0
|
|
|
|
thumb_func_start sub_805E9D4
|
|
sub_805E9D4: @ 805E9D4
|
|
push {r4,lr}
|
|
ldr r3, _0805E9F0 @ =gUnknown_08375478
|
|
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
|
|
_0805E9F0: .4byte gUnknown_08375478
|
|
thumb_func_end sub_805E9D4
|
|
|
|
thumb_func_start sub_805E9F4
|
|
sub_805E9F4: @ 805E9F4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EA38 @ =gUnknown_08375484
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EA20
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EA20
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EA20:
|
|
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
|
|
_0805EA38: .4byte gUnknown_08375484
|
|
thumb_func_end sub_805E9F4
|
|
|
|
thumb_func_start sub_805EA3C
|
|
sub_805EA3C: @ 805EA3C
|
|
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, _0805EA58 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EA5C @ =sub_805EA60
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EA58: .4byte gMapObjects
|
|
_0805EA5C: .4byte sub_805EA60
|
|
thumb_func_end sub_805EA3C
|
|
|
|
thumb_func_start sub_805EA60
|
|
sub_805EA60: @ 805EA60
|
|
push {r4,lr}
|
|
ldr r3, _0805EA7C @ =gUnknown_08375488
|
|
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
|
|
_0805EA7C: .4byte gUnknown_08375488
|
|
thumb_func_end sub_805EA60
|
|
|
|
thumb_func_start sub_805EA80
|
|
sub_805EA80: @ 805EA80
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EAC4 @ =gUnknown_08375494
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EAAC
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EAAC
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EAAC:
|
|
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
|
|
_0805EAC4: .4byte gUnknown_08375494
|
|
thumb_func_end sub_805EA80
|
|
|
|
thumb_func_start sub_805EAC8
|
|
sub_805EAC8: @ 805EAC8
|
|
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, _0805EAE4 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EAE8 @ =sub_805EAEC
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EAE4: .4byte gMapObjects
|
|
_0805EAE8: .4byte sub_805EAEC
|
|
thumb_func_end sub_805EAC8
|
|
|
|
thumb_func_start sub_805EAEC
|
|
sub_805EAEC: @ 805EAEC
|
|
push {r4,lr}
|
|
ldr r3, _0805EB08 @ =gUnknown_08375498
|
|
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
|
|
_0805EB08: .4byte gUnknown_08375498
|
|
thumb_func_end sub_805EAEC
|
|
|
|
thumb_func_start sub_805EB0C
|
|
sub_805EB0C: @ 805EB0C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EB50 @ =gUnknown_083754A4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805EB38
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EB38
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805EB38:
|
|
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
|
|
_0805EB50: .4byte gUnknown_083754A4
|
|
thumb_func_end sub_805EB0C
|
|
|
|
thumb_func_start sub_805EB54
|
|
sub_805EB54: @ 805EB54
|
|
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, _0805EB70 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EB74 @ =sub_805EB78
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EB70: .4byte gMapObjects
|
|
_0805EB74: .4byte sub_805EB78
|
|
thumb_func_end sub_805EB54
|
|
|
|
thumb_func_start sub_805EB78
|
|
sub_805EB78: @ 805EB78
|
|
push {r4,lr}
|
|
ldr r3, _0805EB94 @ =gUnknown_083754A8
|
|
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
|
|
_0805EB94: .4byte gUnknown_083754A8
|
|
thumb_func_end sub_805EB78
|
|
|
|
thumb_func_start sub_805EB98
|
|
sub_805EB98: @ 805EB98
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EBDC @ =gUnknown_083754B4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805EBC4
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EBC4
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805EBC4:
|
|
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
|
|
_0805EBDC: .4byte gUnknown_083754B4
|
|
thumb_func_end sub_805EB98
|
|
|
|
thumb_func_start sub_805EBE0
|
|
sub_805EBE0: @ 805EBE0
|
|
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, _0805EBFC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EC00 @ =sub_805EC04
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EBFC: .4byte gMapObjects
|
|
_0805EC00: .4byte sub_805EC04
|
|
thumb_func_end sub_805EBE0
|
|
|
|
thumb_func_start sub_805EC04
|
|
sub_805EC04: @ 805EC04
|
|
push {r4,lr}
|
|
ldr r3, _0805EC20 @ =gUnknown_083754B8
|
|
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
|
|
_0805EC20: .4byte gUnknown_083754B8
|
|
thumb_func_end sub_805EC04
|
|
|
|
thumb_func_start sub_805EC24
|
|
sub_805EC24: @ 805EC24
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EC68 @ =gUnknown_083754C4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EC50
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EC50
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EC50:
|
|
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
|
|
_0805EC68: .4byte gUnknown_083754C4
|
|
thumb_func_end sub_805EC24
|
|
|
|
thumb_func_start sub_805EC6C
|
|
sub_805EC6C: @ 805EC6C
|
|
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, _0805EC88 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EC8C @ =sub_805EC90
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EC88: .4byte gMapObjects
|
|
_0805EC8C: .4byte sub_805EC90
|
|
thumb_func_end sub_805EC6C
|
|
|
|
thumb_func_start sub_805EC90
|
|
sub_805EC90: @ 805EC90
|
|
push {r4,lr}
|
|
ldr r3, _0805ECAC @ =gUnknown_083754C8
|
|
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
|
|
_0805ECAC: .4byte gUnknown_083754C8
|
|
thumb_func_end sub_805EC90
|
|
|
|
thumb_func_start sub_805ECB0
|
|
sub_805ECB0: @ 805ECB0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805ECF4 @ =gUnknown_083754D4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805ECDC
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805ECDC
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805ECDC:
|
|
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
|
|
_0805ECF4: .4byte gUnknown_083754D4
|
|
thumb_func_end sub_805ECB0
|
|
|
|
thumb_func_start sub_805ECF8
|
|
sub_805ECF8: @ 805ECF8
|
|
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, _0805ED14 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805ED18 @ =sub_805ED1C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805ED14: .4byte gMapObjects
|
|
_0805ED18: .4byte sub_805ED1C
|
|
thumb_func_end sub_805ECF8
|
|
|
|
thumb_func_start sub_805ED1C
|
|
sub_805ED1C: @ 805ED1C
|
|
push {r4,lr}
|
|
ldr r3, _0805ED38 @ =gUnknown_083754D8
|
|
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
|
|
_0805ED38: .4byte gUnknown_083754D8
|
|
thumb_func_end sub_805ED1C
|
|
|
|
thumb_func_start sub_805ED3C
|
|
sub_805ED3C: @ 805ED3C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805ED80 @ =gUnknown_083754E4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805ED68
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805ED68
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805ED68:
|
|
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
|
|
_0805ED80: .4byte gUnknown_083754E4
|
|
thumb_func_end sub_805ED3C
|
|
|
|
thumb_func_start sub_805ED84
|
|
sub_805ED84: @ 805ED84
|
|
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, _0805EDA0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EDA4 @ =sub_805EDA8
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EDA0: .4byte gMapObjects
|
|
_0805EDA4: .4byte sub_805EDA8
|
|
thumb_func_end sub_805ED84
|
|
|
|
thumb_func_start sub_805EDA8
|
|
sub_805EDA8: @ 805EDA8
|
|
push {r4,lr}
|
|
ldr r3, _0805EDC4 @ =gUnknown_083754E8
|
|
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
|
|
_0805EDC4: .4byte gUnknown_083754E8
|
|
thumb_func_end sub_805EDA8
|
|
|
|
thumb_func_start sub_805EDC8
|
|
sub_805EDC8: @ 805EDC8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EE0C @ =gUnknown_083754F4
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _0805EDF4
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EDF4
|
|
movs r0, 0x2
|
|
strb r0, [r2]
|
|
_0805EDF4:
|
|
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
|
|
_0805EE0C: .4byte gUnknown_083754F4
|
|
thumb_func_end sub_805EDC8
|
|
|
|
thumb_func_start sub_805EE10
|
|
sub_805EE10: @ 805EE10
|
|
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, _0805EE2C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EE30 @ =sub_805EE34
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EE2C: .4byte gMapObjects
|
|
_0805EE30: .4byte sub_805EE34
|
|
thumb_func_end sub_805EE10
|
|
|
|
thumb_func_start sub_805EE34
|
|
sub_805EE34: @ 805EE34
|
|
push {r4,lr}
|
|
ldr r3, _0805EE50 @ =gUnknown_083754F8
|
|
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
|
|
_0805EE50: .4byte gUnknown_083754F8
|
|
thumb_func_end sub_805EE34
|
|
|
|
thumb_func_start sub_805EE54
|
|
sub_805EE54: @ 805EE54
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EE98 @ =gUnknown_08375504
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EE80
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EE80
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EE80:
|
|
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
|
|
_0805EE98: .4byte gUnknown_08375504
|
|
thumb_func_end sub_805EE54
|
|
|
|
thumb_func_start sub_805EE9C
|
|
sub_805EE9C: @ 805EE9C
|
|
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, _0805EEB8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EEBC @ =sub_805EEC0
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EEB8: .4byte gMapObjects
|
|
_0805EEBC: .4byte sub_805EEC0
|
|
thumb_func_end sub_805EE9C
|
|
|
|
thumb_func_start sub_805EEC0
|
|
sub_805EEC0: @ 805EEC0
|
|
push {r4,lr}
|
|
ldr r3, _0805EEDC @ =gUnknown_08375508
|
|
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
|
|
_0805EEDC: .4byte gUnknown_08375508
|
|
thumb_func_end sub_805EEC0
|
|
|
|
thumb_func_start sub_805EEE0
|
|
sub_805EEE0: @ 805EEE0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EF24 @ =gUnknown_08375514
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EF0C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EF0C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EF0C:
|
|
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
|
|
_0805EF24: .4byte gUnknown_08375514
|
|
thumb_func_end sub_805EEE0
|
|
|
|
thumb_func_start sub_805EF28
|
|
sub_805EF28: @ 805EF28
|
|
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, _0805EF44 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EF48 @ =sub_805EF4C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EF44: .4byte gMapObjects
|
|
_0805EF48: .4byte sub_805EF4C
|
|
thumb_func_end sub_805EF28
|
|
|
|
thumb_func_start sub_805EF4C
|
|
sub_805EF4C: @ 805EF4C
|
|
push {r4,lr}
|
|
ldr r3, _0805EF68 @ =gUnknown_08375518
|
|
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
|
|
_0805EF68: .4byte gUnknown_08375518
|
|
thumb_func_end sub_805EF4C
|
|
|
|
thumb_func_start sub_805EF6C
|
|
sub_805EF6C: @ 805EF6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805EFB0 @ =gUnknown_08375524
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805EF98
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805EF98
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805EF98:
|
|
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
|
|
_0805EFB0: .4byte gUnknown_08375524
|
|
thumb_func_end sub_805EF6C
|
|
|
|
thumb_func_start sub_805EFB4
|
|
sub_805EFB4: @ 805EFB4
|
|
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, _0805EFD0 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805EFD4 @ =sub_805EFD8
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805EFD0: .4byte gMapObjects
|
|
_0805EFD4: .4byte sub_805EFD8
|
|
thumb_func_end sub_805EFB4
|
|
|
|
thumb_func_start sub_805EFD8
|
|
sub_805EFD8: @ 805EFD8
|
|
push {r4,lr}
|
|
ldr r3, _0805EFF4 @ =gUnknown_08375528
|
|
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
|
|
_0805EFF4: .4byte gUnknown_08375528
|
|
thumb_func_end sub_805EFD8
|
|
|
|
thumb_func_start sub_805EFF8
|
|
sub_805EFF8: @ 805EFF8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F03C @ =gUnknown_08375534
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F024
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F024
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F024:
|
|
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
|
|
_0805F03C: .4byte gUnknown_08375534
|
|
thumb_func_end sub_805EFF8
|
|
|
|
thumb_func_start sub_805F040
|
|
sub_805F040: @ 805F040
|
|
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, _0805F05C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F060 @ =sub_805F064
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F05C: .4byte gMapObjects
|
|
_0805F060: .4byte sub_805F064
|
|
thumb_func_end sub_805F040
|
|
|
|
thumb_func_start sub_805F064
|
|
sub_805F064: @ 805F064
|
|
push {r4,lr}
|
|
ldr r3, _0805F080 @ =gUnknown_08375538
|
|
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
|
|
_0805F080: .4byte gUnknown_08375538
|
|
thumb_func_end sub_805F064
|
|
|
|
thumb_func_start sub_805F084
|
|
sub_805F084: @ 805F084
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F0C8 @ =gUnknown_08375544
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F0B0
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F0B0
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F0B0:
|
|
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
|
|
_0805F0C8: .4byte gUnknown_08375544
|
|
thumb_func_end sub_805F084
|
|
|
|
thumb_func_start sub_805F0CC
|
|
sub_805F0CC: @ 805F0CC
|
|
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, _0805F0E8 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F0EC @ =sub_805F0F0
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F0E8: .4byte gMapObjects
|
|
_0805F0EC: .4byte sub_805F0F0
|
|
thumb_func_end sub_805F0CC
|
|
|
|
thumb_func_start sub_805F0F0
|
|
sub_805F0F0: @ 805F0F0
|
|
push {r4,lr}
|
|
ldr r3, _0805F10C @ =gUnknown_08375548
|
|
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
|
|
_0805F10C: .4byte gUnknown_08375548
|
|
thumb_func_end sub_805F0F0
|
|
|
|
thumb_func_start sub_805F110
|
|
sub_805F110: @ 805F110
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F154 @ =gUnknown_08375554
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F13C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F13C
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F13C:
|
|
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
|
|
_0805F154: .4byte gUnknown_08375554
|
|
thumb_func_end sub_805F110
|
|
|
|
thumb_func_start sub_805F158
|
|
sub_805F158: @ 805F158
|
|
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, _0805F174 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F178 @ =sub_805F17C
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F174: .4byte gMapObjects
|
|
_0805F178: .4byte sub_805F17C
|
|
thumb_func_end sub_805F158
|
|
|
|
thumb_func_start sub_805F17C
|
|
sub_805F17C: @ 805F17C
|
|
push {r4,lr}
|
|
ldr r3, _0805F198 @ =gUnknown_08375558
|
|
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
|
|
_0805F198: .4byte gUnknown_08375558
|
|
thumb_func_end sub_805F17C
|
|
|
|
thumb_func_start sub_805F19C
|
|
sub_805F19C: @ 805F19C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F1E0 @ =gUnknown_08375564
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F1C8
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F1C8
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F1C8:
|
|
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
|
|
_0805F1E0: .4byte gUnknown_08375564
|
|
thumb_func_end sub_805F19C
|
|
|
|
thumb_func_start sub_805F1E4
|
|
sub_805F1E4: @ 805F1E4
|
|
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, _0805F200 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F204 @ =sub_805F208
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F200: .4byte gMapObjects
|
|
_0805F204: .4byte sub_805F208
|
|
thumb_func_end sub_805F1E4
|
|
|
|
thumb_func_start sub_805F208
|
|
sub_805F208: @ 805F208
|
|
push {r4,lr}
|
|
ldr r3, _0805F224 @ =gUnknown_08375568
|
|
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
|
|
_0805F224: .4byte gUnknown_08375568
|
|
thumb_func_end sub_805F208
|
|
|
|
thumb_func_start sub_805F228
|
|
sub_805F228: @ 805F228
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F26C @ =gUnknown_08375574
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F254
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F254
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F254:
|
|
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
|
|
_0805F26C: .4byte gUnknown_08375574
|
|
thumb_func_end sub_805F228
|
|
|
|
thumb_func_start sub_805F270
|
|
sub_805F270: @ 805F270
|
|
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, _0805F28C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F290 @ =sub_805F294
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F28C: .4byte gMapObjects
|
|
_0805F290: .4byte sub_805F294
|
|
thumb_func_end sub_805F270
|
|
|
|
thumb_func_start sub_805F294
|
|
sub_805F294: @ 805F294
|
|
push {r4,lr}
|
|
ldr r3, _0805F2B0 @ =gUnknown_08375578
|
|
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
|
|
_0805F2B0: .4byte gUnknown_08375578
|
|
thumb_func_end sub_805F294
|
|
|
|
thumb_func_start sub_805F2B4
|
|
sub_805F2B4: @ 805F2B4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0805F2F8 @ =gUnknown_08375584
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
adds r2, r4, 0
|
|
adds r2, 0x21
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _0805F2E0
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _0805F2E0
|
|
movs r0, 0x3
|
|
strb r0, [r2]
|
|
_0805F2E0:
|
|
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
|
|
_0805F2F8: .4byte gUnknown_08375584
|
|
thumb_func_end sub_805F2B4
|
|
|
|
thumb_func_start sub_805F2FC
|
|
sub_805F2FC: @ 805F2FC
|
|
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, _0805F318 @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F31C @ =sub_805F320
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F318: .4byte gMapObjects
|
|
_0805F31C: .4byte sub_805F320
|
|
thumb_func_end sub_805F2FC
|
|
|
|
thumb_func_start sub_805F320
|
|
sub_805F320: @ 805F320
|
|
push {r4,lr}
|
|
ldr r3, _0805F33C @ =gUnknown_08375588
|
|
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
|
|
_0805F33C: .4byte gUnknown_08375588
|
|
thumb_func_end sub_805F320
|
|
|
|
thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
|
|
mss_npc_reset_oampriv3_1_unk2_unk3: @ 805F340
|
|
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 _0805F358
|
|
bl player_get_direction_lower_nybble
|
|
strb r0, [r4]
|
|
_0805F358:
|
|
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_805F364
|
|
sub_805F364: @ 805F364
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r2, _0805F388 @ =gMapObjects
|
|
ldr r3, _0805F38C @ =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 _0805F384
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x2
|
|
bne _0805F390
|
|
_0805F384:
|
|
movs r0, 0
|
|
b _0805F3B8
|
|
.align 2, 0
|
|
_0805F388: .4byte gMapObjects
|
|
_0805F38C: .4byte gPlayerAvatar
|
|
_0805F390:
|
|
ldr r5, _0805F3C0 @ =gUnknown_08375594
|
|
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
|
|
_0805F3B8:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805F3C0: .4byte gUnknown_08375594
|
|
thumb_func_end sub_805F364
|
|
|
|
thumb_func_start sub_805F3C4
|
|
sub_805F3C4: @ 805F3C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805F3E2
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_0805F3E2:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805F3C4
|
|
|
|
thumb_func_start sub_805F3EC
|
|
sub_805F3EC: @ 805F3EC
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805F3EC
|
|
|
|
thumb_func_start sub_805F3F0
|
|
sub_805F3F0: @ 805F3F0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, _0805F434 @ =gUnknown_0836DC09
|
|
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 GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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
|
|
_0805F434: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F3F0
|
|
|
|
thumb_func_start sub_805F438
|
|
sub_805F438: @ 805F438
|
|
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, _0805F4EC @ =gUnknown_0836DC09
|
|
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 GetGoSpeed0AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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 _0805F4BE
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F4D2
|
|
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 _0805F4D2
|
|
_0805F4BE:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F4D2:
|
|
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
|
|
_0805F4EC: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F438
|
|
|
|
thumb_func_start sub_805F4F0
|
|
sub_805F4F0: @ 805F4F0
|
|
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, _0805F5A4 @ =gUnknown_0836DC09
|
|
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_8060744
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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 _0805F576
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F58A
|
|
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 _0805F58A
|
|
_0805F576:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F58A:
|
|
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
|
|
_0805F5A4: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F4F0
|
|
|
|
thumb_func_start sub_805F5A8
|
|
sub_805F5A8: @ 805F5A8
|
|
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, _0805F65C @ =gUnknown_0836DC09
|
|
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_806079C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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 _0805F62E
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F642
|
|
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 _0805F642
|
|
_0805F62E:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F642:
|
|
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
|
|
_0805F65C: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F5A8
|
|
|
|
thumb_func_start sub_805F660
|
|
sub_805F660: @ 805F660
|
|
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, _0805F714 @ =gUnknown_0836DC09
|
|
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_80607C8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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 _0805F6E6
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F6FA
|
|
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 _0805F6FA
|
|
_0805F6E6:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F6FA:
|
|
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
|
|
_0805F714: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F660
|
|
|
|
thumb_func_start cph_IM_DIFFERENT
|
|
cph_IM_DIFFERENT: @ 805F718
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r1, _0805F75C @ =gUnknown_0836DC09
|
|
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_806084C
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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
|
|
_0805F75C: .4byte gUnknown_0836DC09
|
|
thumb_func_end cph_IM_DIFFERENT
|
|
|
|
thumb_func_start sub_805F760
|
|
sub_805F760: @ 805F760
|
|
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, _0805F814 @ =gUnknown_0836DC09
|
|
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_80608A4
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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 _0805F7E6
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F7FA
|
|
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 _0805F7FA
|
|
_0805F7E6:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F7FA:
|
|
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
|
|
_0805F814: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_805F760
|
|
|
|
thumb_func_start oac_hopping
|
|
oac_hopping: @ 805F818
|
|
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, _0805F8DC @ =gUnknown_0836DC09
|
|
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_8060320
|
|
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 FieldObjectSetRegularAnim
|
|
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 _0805F8AC
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0805F8C0
|
|
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 _0805F8C0
|
|
_0805F8AC:
|
|
adds r0, r6, 0
|
|
bl GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl FieldObjectSetRegularAnim
|
|
_0805F8C0:
|
|
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
|
|
_0805F8DC: .4byte gUnknown_0836DC09
|
|
thumb_func_end oac_hopping
|
|
|
|
thumb_func_start sub_805F8E0
|
|
sub_805F8E0: @ 805F8E0
|
|
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, _0805F8FC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805F900 @ =sub_805F904
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F8FC: .4byte gMapObjects
|
|
_0805F900: .4byte sub_805F904
|
|
thumb_func_end sub_805F8E0
|
|
|
|
thumb_func_start sub_805F904
|
|
sub_805F904: @ 805F904
|
|
push {r4,lr}
|
|
ldr r3, _0805F920 @ =gUnknown_083755C0
|
|
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
|
|
_0805F920: .4byte gUnknown_083755C0
|
|
thumb_func_end sub_805F904
|
|
|
|
thumb_func_start mss_08062EA4
|
|
mss_08062EA4: @ 805F924
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r2, _0805F948 @ =gMapObjects
|
|
ldr r3, _0805F94C @ =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 _0805F944
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x2
|
|
bne _0805F950
|
|
_0805F944:
|
|
movs r0, 0
|
|
b _0805F978
|
|
.align 2, 0
|
|
_0805F948: .4byte gMapObjects
|
|
_0805F94C: .4byte gPlayerAvatar
|
|
_0805F950:
|
|
ldr r5, _0805F980 @ =gUnknown_08375594
|
|
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, _0805F984 @ =sub_8056E14
|
|
ldr r4, [r4]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805F978:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805F980: .4byte gUnknown_08375594
|
|
_0805F984: .4byte sub_8056E14
|
|
thumb_func_end mss_08062EA4
|
|
|
|
thumb_func_start FieldObjectCB_TreeDisguise
|
|
FieldObjectCB_TreeDisguise: @ 805F988
|
|
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, _0805F9EC @ =gMapObjects
|
|
adds r4, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x21
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805F9B0
|
|
cmp r0, 0x1
|
|
bne _0805F9D0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _0805F9D0
|
|
_0805F9B0:
|
|
ldr r1, _0805F9F0 @ =gUnknown_0202FF84
|
|
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]
|
|
_0805F9D0:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805F9EC @ =gMapObjects
|
|
adds r0, r1
|
|
ldr r2, _0805F9F4 @ =sub_805F9F8
|
|
adds r1, r5, 0
|
|
bl meta_step
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805F9EC: .4byte gMapObjects
|
|
_0805F9F0: .4byte gUnknown_0202FF84
|
|
_0805F9F4: .4byte sub_805F9F8
|
|
thumb_func_end FieldObjectCB_TreeDisguise
|
|
|
|
thumb_func_start sub_805F9F8
|
|
sub_805F9F8: @ 805F9F8
|
|
push {lr}
|
|
bl npc_reset
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805F9F8
|
|
|
|
thumb_func_start FieldObjectCB_MountainDisguise
|
|
FieldObjectCB_MountainDisguise: @ 805FA04
|
|
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, _0805FA68 @ =gMapObjects
|
|
adds r4, r1, r0
|
|
adds r6, r4, 0
|
|
adds r6, 0x21
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _0805FA2C
|
|
cmp r0, 0x1
|
|
bne _0805FA4C
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _0805FA4C
|
|
_0805FA2C:
|
|
ldr r1, _0805FA6C @ =gUnknown_0202FF84
|
|
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]
|
|
_0805FA4C:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805FA68 @ =gMapObjects
|
|
adds r0, r1
|
|
ldr r2, _0805FA70 @ =sub_805F9F8
|
|
adds r1, r5, 0
|
|
bl meta_step
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FA68: .4byte gMapObjects
|
|
_0805FA6C: .4byte gUnknown_0202FF84
|
|
_0805FA70: .4byte sub_805F9F8
|
|
thumb_func_end FieldObjectCB_MountainDisguise
|
|
|
|
thumb_func_start FieldObjectCB_Hidden1
|
|
FieldObjectCB_Hidden1: @ 805FA74
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r3, r1]
|
|
ldr r4, _0805FAD0 @ =gMapObjects
|
|
cmp r0, 0
|
|
bne _0805FAB4
|
|
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]
|
|
_0805FAB4:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r2, _0805FAD4 @ =sub_805FAD8
|
|
adds r1, r3, 0
|
|
bl meta_step
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FAD0: .4byte gMapObjects
|
|
_0805FAD4: .4byte sub_805FAD8
|
|
thumb_func_end FieldObjectCB_Hidden1
|
|
|
|
thumb_func_start sub_805FAD8
|
|
sub_805FAD8: @ 805FAD8
|
|
push {r4,lr}
|
|
ldr r3, _0805FAF4 @ =gUnknown_083755CC
|
|
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
|
|
_0805FAF4: .4byte gUnknown_083755CC
|
|
thumb_func_end sub_805FAD8
|
|
|
|
thumb_func_start sub_805FAF8
|
|
sub_805FAF8: @ 805FAF8
|
|
push {lr}
|
|
bl npc_reset
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FAF8
|
|
|
|
thumb_func_start sub_805FB04
|
|
sub_805FB04: @ 805FB04
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805FB16
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
_0805FB16:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FB04
|
|
|
|
thumb_func_start sub_805FB20
|
|
sub_805FB20: @ 805FB20
|
|
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, _0805FB3C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FB40 @ =sub_805FB44
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FB3C: .4byte gMapObjects
|
|
_0805FB40: .4byte sub_805FB44
|
|
thumb_func_end sub_805FB20
|
|
|
|
thumb_func_start sub_805FB44
|
|
sub_805FB44: @ 805FB44
|
|
push {r4,lr}
|
|
ldr r3, _0805FB60 @ =gUnknown_083755D0
|
|
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
|
|
_0805FB60: .4byte gUnknown_083755D0
|
|
thumb_func_end sub_805FB44
|
|
|
|
thumb_func_start sub_805FB64
|
|
sub_805FB64: @ 805FB64
|
|
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 FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FB64
|
|
|
|
thumb_func_start sub_805FB90
|
|
sub_805FB90: @ 805FB90
|
|
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, _0805FBAC @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FBB0 @ =sub_805FBB4
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FBAC: .4byte gMapObjects
|
|
_0805FBB0: .4byte sub_805FBB4
|
|
thumb_func_end sub_805FB90
|
|
|
|
thumb_func_start sub_805FBB4
|
|
sub_805FBB4: @ 805FBB4
|
|
push {r4,lr}
|
|
ldr r3, _0805FBD0 @ =gUnknown_083755D8
|
|
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
|
|
_0805FBD0: .4byte gUnknown_083755D8
|
|
thumb_func_end sub_805FBB4
|
|
|
|
thumb_func_start sub_805FBD4
|
|
sub_805FBD4: @ 805FBD4
|
|
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 GetStepInPlaceDelay8AnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FBD4
|
|
|
|
thumb_func_start sub_805FC00
|
|
sub_805FC00: @ 805FC00
|
|
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, _0805FC1C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FC20 @ =sub_805FC24
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FC1C: .4byte gMapObjects
|
|
_0805FC20: .4byte sub_805FC24
|
|
thumb_func_end sub_805FC00
|
|
|
|
thumb_func_start sub_805FC24
|
|
sub_805FC24: @ 805FC24
|
|
push {r4,lr}
|
|
ldr r3, _0805FC40 @ =gUnknown_083755E0
|
|
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
|
|
_0805FC40: .4byte gUnknown_083755E0
|
|
thumb_func_end sub_805FC24
|
|
|
|
thumb_func_start sub_805FC44
|
|
sub_805FC44: @ 805FC44
|
|
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 FieldObjectSetRegularAnim
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FC44
|
|
|
|
thumb_func_start sub_805FC70
|
|
sub_805FC70: @ 805FC70
|
|
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, _0805FC8C @ =gMapObjects
|
|
adds r0, r2
|
|
ldr r2, _0805FC90 @ =sub_805FC94
|
|
bl meta_step
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805FC8C: .4byte gMapObjects
|
|
_0805FC90: .4byte sub_805FC94
|
|
thumb_func_end sub_805FC70
|
|
|
|
thumb_func_start sub_805FC94
|
|
sub_805FC94: @ 805FC94
|
|
push {r4,lr}
|
|
ldr r3, _0805FCB0 @ =gUnknown_083755E8
|
|
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
|
|
_0805FCB0: .4byte gUnknown_083755E8
|
|
thumb_func_end sub_805FC94
|
|
|
|
thumb_func_start sub_805FCB4
|
|
sub_805FCB4: @ 805FCB4
|
|
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 GetFaceDirectionAnimId
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectSetRegularAnim
|
|
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_805FCB4
|
|
|
|
thumb_func_start sub_805FCE8
|
|
sub_805FCE8: @ 805FCE8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl FieldObjectExecRegularAnim
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FCFA
|
|
movs r0, 0
|
|
b _0805FD00
|
|
_0805FCFA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
_0805FD00:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FCE8
|
|
|
|
thumb_func_start sub_805FD08
|
|
sub_805FD08: @ 805FD08
|
|
ldrb r2, [r0]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_805FD08
|
|
|
|
thumb_func_start npc_reset
|
|
npc_reset: @ 805FD18
|
|
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: @ 805FD38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD44 @ =gUnknown_083755F4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD44: .4byte gUnknown_083755F4
|
|
thumb_func_end FieldObjectDirectionToImageAnimId
|
|
|
|
thumb_func_start get_go_image_anim_num
|
|
get_go_image_anim_num: @ 805FD48
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD54 @ =gUnknown_083755FD
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD54: .4byte gUnknown_083755FD
|
|
thumb_func_end get_go_image_anim_num
|
|
|
|
thumb_func_start get_go_fast_image_anim_num
|
|
get_go_fast_image_anim_num: @ 805FD58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD64 @ =gUnknown_08375606
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD64: .4byte gUnknown_08375606
|
|
thumb_func_end get_go_fast_image_anim_num
|
|
|
|
thumb_func_start get_go_faster_image_anim_num
|
|
get_go_faster_image_anim_num: @ 805FD68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD74 @ =gUnknown_0837560F
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD74: .4byte gUnknown_0837560F
|
|
thumb_func_end get_go_faster_image_anim_num
|
|
|
|
thumb_func_start sub_805FD78
|
|
sub_805FD78: @ 805FD78
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD84 @ =gUnknown_08375618
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD84: .4byte gUnknown_08375618
|
|
thumb_func_end sub_805FD78
|
|
|
|
thumb_func_start sub_805FD88
|
|
sub_805FD88: @ 805FD88
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FD94 @ =gUnknown_08375621
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FD94: .4byte gUnknown_08375621
|
|
thumb_func_end sub_805FD88
|
|
|
|
thumb_func_start sub_805FD98
|
|
sub_805FD98: @ 805FD98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDA4 @ =gUnknown_0837562A
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDA4: .4byte gUnknown_0837562A
|
|
thumb_func_end sub_805FD98
|
|
|
|
thumb_func_start unref_sub_805FDA8
|
|
unref_sub_805FDA8: @ 805FDA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDB4 @ =gUnknown_08375633
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDB4: .4byte gUnknown_08375633
|
|
thumb_func_end unref_sub_805FDA8
|
|
|
|
thumb_func_start sub_805FDB8
|
|
sub_805FDB8: @ 805FDB8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDC4 @ =gUnknown_0837563C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDC4: .4byte gUnknown_0837563C
|
|
thumb_func_end sub_805FDB8
|
|
|
|
thumb_func_start sub_805FDC8
|
|
sub_805FDC8: @ 805FDC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDD4 @ =gUnknown_08375645
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDD4: .4byte gUnknown_08375645
|
|
thumb_func_end sub_805FDC8
|
|
|
|
thumb_func_start sub_805FDD8
|
|
sub_805FDD8: @ 805FDD8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDE4 @ =gUnknown_0837564E
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDE4: .4byte gUnknown_0837564E
|
|
thumb_func_end sub_805FDD8
|
|
|
|
thumb_func_start sub_805FDE8
|
|
sub_805FDE8: @ 805FDE8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FDF4 @ =gUnknown_08375657
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FDF4: .4byte gUnknown_08375657
|
|
thumb_func_end sub_805FDE8
|
|
|
|
thumb_func_start sub_805FDF8
|
|
sub_805FDF8: @ 805FDF8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FE04 @ =gUnknown_08375660
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FE04: .4byte gUnknown_08375660
|
|
thumb_func_end sub_805FDF8
|
|
|
|
thumb_func_start sub_805FE08
|
|
sub_805FE08: @ 805FE08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FE14 @ =gUnknown_08375669
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FE14: .4byte gUnknown_08375669
|
|
thumb_func_end sub_805FE08
|
|
|
|
thumb_func_start get_run_image_anim_num
|
|
get_run_image_anim_num: @ 805FE18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FE24 @ =gUnknown_08375672
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FE24: .4byte gUnknown_08375672
|
|
thumb_func_end get_run_image_anim_num
|
|
|
|
thumb_func_start sub_805FE28
|
|
sub_805FE28: @ 805FE28
|
|
push {r4,lr}
|
|
adds r3, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
lsrs r4, r0, 31
|
|
cmp r4, 0
|
|
bne _0805FE5E
|
|
adds r0, r3, 0
|
|
adds r0, 0x2A
|
|
strb r2, [r0]
|
|
adds r0, 0x1
|
|
ldrb r2, [r0]
|
|
adds r1, r0, 0
|
|
cmp r2, 0x1
|
|
bne _0805FE50
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
b _0805FE56
|
|
_0805FE50:
|
|
cmp r2, 0x3
|
|
bne _0805FE56
|
|
strb r4, [r1]
|
|
_0805FE56:
|
|
ldrb r1, [r1]
|
|
adds r0, r3, 0
|
|
bl SeekSpriteAnim
|
|
_0805FE5E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805FE28
|
|
|
|
thumb_func_start sub_805FE64
|
|
sub_805FE64: @ 805FE64
|
|
push {lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0805FE8C
|
|
adds r0, r1, 0
|
|
adds r0, 0x2A
|
|
strb r2, [r0]
|
|
movs r2, 0x3
|
|
adds r0, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0805FE84
|
|
movs r2, 0x1
|
|
_0805FE84:
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
bl SeekSpriteAnim
|
|
_0805FE8C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_805FE64
|
|
|
|
thumb_func_start sub_805FE90
|
|
sub_805FE90: @ 805FE90
|
|
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 _0805FEAA
|
|
movs r0, 0x3
|
|
b _0805FEC0
|
|
_0805FEAA:
|
|
cmp r0, r2
|
|
bge _0805FEB2
|
|
movs r0, 0x4
|
|
b _0805FEC0
|
|
_0805FEB2:
|
|
lsls r1, 16
|
|
lsls r0, r3, 16
|
|
cmp r1, r0
|
|
bgt _0805FEBE
|
|
movs r0, 0x1
|
|
b _0805FEC0
|
|
_0805FEBE:
|
|
movs r0, 0x2
|
|
_0805FEC0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805FE90
|
|
|
|
thumb_func_start npc_set_running_behaviour_etc
|
|
npc_set_running_behaviour_etc: @ 805FEC4
|
|
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, _0805FF08 @ =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, _0805FF0C @ =gUnknown_0836DA88
|
|
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
|
|
_0805FF08: .4byte gSprites
|
|
_0805FF0C: .4byte gUnknown_0836DA88
|
|
thumb_func_end npc_set_running_behaviour_etc
|
|
|
|
thumb_func_start npc_running_behaviour_by_direction
|
|
npc_running_behaviour_by_direction: @ 805FF10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0805FF1C @ =gUnknown_0837567B
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805FF1C: .4byte gUnknown_0837567B
|
|
thumb_func_end npc_running_behaviour_by_direction
|
|
|
|
thumb_func_start sub_805FF20
|
|
sub_805FF20: @ 805FF20
|
|
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 sub_805FF20
|
|
|
|
thumb_func_start npc_block_way
|
|
npc_block_way: @ 805FF60
|
|
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 _0805FF96
|
|
movs r0, 0x1
|
|
b _08060016
|
|
_0805FF96:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805FFD8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapBorderIdAt
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _0805FFD8
|
|
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 _0805FFD8
|
|
ldrb r0, [r6, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _0805FFDC
|
|
mov r0, r8
|
|
bl CanCameraMoveInDirection
|
|
cmp r0, 0
|
|
bne _0805FFDC
|
|
_0805FFD8:
|
|
movs r0, 0x2
|
|
b _08060016
|
|
_0805FFDC:
|
|
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 _08060000
|
|
movs r0, 0x3
|
|
b _08060016
|
|
_08060000:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl CheckForCollisionBetweenFieldObjects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060014
|
|
movs r0, 0
|
|
b _08060016
|
|
_08060014:
|
|
movs r0, 0x4
|
|
_08060016:
|
|
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_8060024
|
|
sub_8060024: @ 8060024
|
|
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 _0806009C
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapBorderIdAt
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _0806009C
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
mov r3, r8
|
|
bl IsMetatileDirectionallyImpassable
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806009C
|
|
ldrb r0, [r7, 0x1]
|
|
lsrs r0, 7
|
|
cmp r0, 0
|
|
beq _080600A0
|
|
mov r0, r8
|
|
bl CanCameraMoveInDirection
|
|
cmp r0, 0
|
|
bne _080600A0
|
|
_0806009C:
|
|
movs r0, 0x2
|
|
orrs r4, r0
|
|
_080600A0:
|
|
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 _080600C8
|
|
movs r0, 0x4
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_080600C8:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl CheckForCollisionBetweenFieldObjects
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080600E0
|
|
movs r0, 0x8
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_080600E0:
|
|
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_8060024
|
|
|
|
thumb_func_start IsCoordOutsideFieldObjectMovementRect
|
|
IsCoordOutsideFieldObjectMovementRect: @ 80600F0
|
|
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 _08060128
|
|
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 _08060154
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
blt _08060154
|
|
_08060128:
|
|
ldrb r1, [r4, 0x19]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08060158
|
|
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 _08060154
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
bge _08060158
|
|
_08060154:
|
|
movs r0, 0x1
|
|
b _0806015A
|
|
_08060158:
|
|
movs r0, 0
|
|
_0806015A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsCoordOutsideFieldObjectMovementRect
|
|
|
|
thumb_func_start IsMetatileDirectionallyImpassable
|
|
IsMetatileDirectionallyImpassable: @ 8060160
|
|
push {r4-r7,lr}
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 16
|
|
lsrs r7, r2, 16
|
|
lsls r3, 24
|
|
ldr r1, _080601A8 @ =gUnknown_08375684
|
|
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 _080601A2
|
|
ldr r4, _080601AC @ =gUnknown_08375694
|
|
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 _080601B0
|
|
_080601A2:
|
|
movs r0, 0x1
|
|
b _080601B2
|
|
.align 2, 0
|
|
_080601A8: .4byte gUnknown_08375684
|
|
_080601AC: .4byte gUnknown_08375694
|
|
_080601B0:
|
|
movs r0, 0
|
|
_080601B2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsMetatileDirectionallyImpassable
|
|
|
|
thumb_func_start CheckForCollisionBetweenFieldObjects
|
|
CheckForCollisionBetweenFieldObjects: @ 80601B8
|
|
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
|
|
_080601C6:
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _0806021C @ =gMapObjects
|
|
adds r2, r0, r1
|
|
ldrb r0, [r2]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
beq _08060220
|
|
cmp r2, r6
|
|
beq _08060220
|
|
movs r0, 0x10
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r7, 16
|
|
asrs r3, r0, 16
|
|
cmp r1, r3
|
|
bne _080601F0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r5
|
|
beq _08060200
|
|
_080601F0:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r3
|
|
bne _08060220
|
|
movs r1, 0x16
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r5
|
|
bne _08060220
|
|
_08060200:
|
|
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 _08060220
|
|
movs r0, 0x1
|
|
b _0806022C
|
|
.align 2, 0
|
|
_0806021C: .4byte gMapObjects
|
|
_08060220:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _080601C6
|
|
movs r0, 0
|
|
_0806022C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CheckForCollisionBetweenFieldObjects
|
|
|
|
thumb_func_start sub_8060234
|
|
sub_8060234: @ 8060234
|
|
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 _08060280
|
|
ldr r3, _08060278 @ =gSprites
|
|
ldr r2, _0806027C @ =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 _08060280
|
|
movs r0, 0x1
|
|
b _08060282
|
|
.align 2, 0
|
|
_08060278: .4byte gSprites
|
|
_0806027C: .4byte gMapObjects
|
|
_08060280:
|
|
movs r0, 0
|
|
_08060282:
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060234
|
|
|
|
thumb_func_start sub_8060288
|
|
sub_8060288: @ 8060288
|
|
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 _080602C6
|
|
ldr r3, _080602CC @ =gSprites
|
|
ldr r2, _080602D0 @ =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]
|
|
_080602C6:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080602CC: .4byte gSprites
|
|
_080602D0: .4byte gMapObjects
|
|
thumb_func_end sub_8060288
|
|
|
|
thumb_func_start MoveCoords
|
|
MoveCoords: @ 80602D4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r3, _080602F4 @ =gDirectionToVector
|
|
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
|
|
_080602F4: .4byte gDirectionToVector
|
|
thumb_func_end MoveCoords
|
|
|
|
thumb_func_start unref_sub_80602F8
|
|
unref_sub_80602F8: @ 80602F8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r3, _0806031C @ =gDirectionToVector
|
|
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
|
|
_0806031C: .4byte gDirectionToVector
|
|
thumb_func_end unref_sub_80602F8
|
|
|
|
thumb_func_start sub_8060320
|
|
sub_8060320: @ 8060320
|
|
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, _08060384 @ =gDirectionToVector
|
|
lsrs r0, 22
|
|
adds r5, r0, r1
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0
|
|
ble _0806034C
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r4]
|
|
adds r0, r3
|
|
strh r0, [r4]
|
|
_0806034C:
|
|
cmp r1, 0
|
|
bge _0806035A
|
|
ldrh r1, [r4]
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
subs r1, r0
|
|
strh r1, [r4]
|
|
_0806035A:
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0
|
|
ble _0806036C
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r2]
|
|
adds r0, r3
|
|
strh r0, [r2]
|
|
_0806036C:
|
|
cmp r1, 0
|
|
bge _0806037C
|
|
ldrh r1, [r2]
|
|
mov r3, r12
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
subs r1, r0
|
|
strh r1, [r2]
|
|
_0806037C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060384: .4byte gDirectionToVector
|
|
thumb_func_end sub_8060320
|
|
|
|
thumb_func_start sub_8060388
|
|
sub_8060388: @ 8060388
|
|
push {r4,r5,lr}
|
|
ldr r5, _080603C0 @ =gSaveBlock1
|
|
ldrh r4, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
subs r0, r4
|
|
lsls r0, 4
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
strh r1, [r3]
|
|
ldr r1, _080603C4 @ =gUnknown_0300489C
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _080603C8 @ =gUnknown_03004898
|
|
ldrh r0, [r3]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080603C0: .4byte gSaveBlock1
|
|
_080603C4: .4byte gUnknown_0300489C
|
|
_080603C8: .4byte gUnknown_03004898
|
|
thumb_func_end sub_8060388
|
|
|
|
thumb_func_start sub_80603CC
|
|
sub_80603CC: @ 80603CC
|
|
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, _0806045C @ =gUnknown_0300489C
|
|
ldrh r0, [r0]
|
|
negs r0, r0
|
|
ldr r1, _08060460 @ =gUnknown_03004880
|
|
ldr r2, [r1, 0x10]
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _08060464 @ =gUnknown_03004898
|
|
ldrh r0, [r0]
|
|
negs r0, r0
|
|
ldr r1, [r1, 0x14]
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r2, 0
|
|
ble _08060406
|
|
lsls r0, r3, 16
|
|
movs r3, 0x80
|
|
lsls r3, 13
|
|
adds r0, r3
|
|
lsrs r3, r0, 16
|
|
_08060406:
|
|
cmp r2, 0
|
|
bge _08060412
|
|
lsls r0, r3, 16
|
|
ldr r2, _08060468 @ =0xfff00000
|
|
adds r0, r2
|
|
lsrs r3, r0, 16
|
|
_08060412:
|
|
cmp r1, 0
|
|
ble _08060420
|
|
lsls r0, r4, 16
|
|
movs r2, 0x80
|
|
lsls r2, 13
|
|
adds r0, r2
|
|
lsrs r4, r0, 16
|
|
_08060420:
|
|
cmp r1, 0
|
|
bge _0806042C
|
|
lsls r0, r4, 16
|
|
ldr r1, _08060468 @ =0xfff00000
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
_0806042C:
|
|
ldr r2, _0806046C @ =gSaveBlock1
|
|
ldrh r1, [r2]
|
|
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]
|
|
ldrh r1, [r2, 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
|
|
_0806045C: .4byte gUnknown_0300489C
|
|
_08060460: .4byte gUnknown_03004880
|
|
_08060464: .4byte gUnknown_03004898
|
|
_08060468: .4byte 0xfff00000
|
|
_0806046C: .4byte gSaveBlock1
|
|
thumb_func_end sub_80603CC
|
|
|
|
thumb_func_start sub_8060470
|
|
sub_8060470: @ 8060470
|
|
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_80603CC
|
|
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_8060470
|
|
|
|
thumb_func_start GetFieldObjectMovingCameraOffset
|
|
GetFieldObjectMovingCameraOffset: @ 80604BC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
strh r0, [r1]
|
|
ldr r3, _080604F8 @ =gUnknown_03004880
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, 0
|
|
ble _080604D2
|
|
movs r0, 0x1
|
|
strh r0, [r2]
|
|
_080604D2:
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, 0
|
|
bge _080604DE
|
|
ldrh r0, [r2]
|
|
subs r0, 0x1
|
|
strh r0, [r2]
|
|
_080604DE:
|
|
ldr r2, [r3, 0x14]
|
|
cmp r2, 0
|
|
ble _080604EA
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_080604EA:
|
|
cmp r2, 0
|
|
bge _080604F4
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
_080604F4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080604F8: .4byte gUnknown_03004880
|
|
thumb_func_end GetFieldObjectMovingCameraOffset
|
|
|
|
thumb_func_start FieldObjectMoveDestCoords
|
|
FieldObjectMoveDestCoords: @ 80604FC
|
|
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 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
|
|
FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 806051C
|
|
push {lr}
|
|
ldrb r1, [r0]
|
|
movs r0, 0x42
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0806052C
|
|
movs r0, 0
|
|
b _0806052E
|
|
_0806052C:
|
|
movs r0, 0x1
|
|
_0806052E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
|
|
|
|
thumb_func_start FieldObjectIsSpecialAnimActive
|
|
FieldObjectIsSpecialAnimActive: @ 8060534
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _0806054A
|
|
ldrb r0, [r1, 0x1C]
|
|
cmp r0, 0xFF
|
|
beq _0806054A
|
|
movs r0, 0x1
|
|
b _0806054C
|
|
_0806054A:
|
|
movs r0, 0
|
|
_0806054C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectIsSpecialAnimActive
|
|
|
|
thumb_func_start FieldObjectSetSpecialAnim
|
|
FieldObjectSetSpecialAnim: @ 8060550
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
bne _08060590
|
|
adds r0, r4, 0
|
|
bl npc_sync_anim_pause_bits
|
|
strb r5, [r4, 0x1C]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldr r2, _0806058C @ =gSprites
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r6, [r0, 0x32]
|
|
movs r0, 0
|
|
b _08060592
|
|
.align 2, 0
|
|
_0806058C: .4byte gSprites
|
|
_08060590:
|
|
movs r0, 0x1
|
|
_08060592:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectSetSpecialAnim
|
|
|
|
thumb_func_start FieldObjectForceSetSpecialAnim
|
|
FieldObjectForceSetSpecialAnim: @ 8060598
|
|
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 FieldObjectSetSpecialAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectForceSetSpecialAnim
|
|
|
|
thumb_func_start FieldObjectClearAnimIfSpecialAnimActive
|
|
FieldObjectClearAnimIfSpecialAnimActive: @ 80605B4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
bge _080605C6
|
|
adds r0, r1, 0
|
|
bl FieldObjectClearAnim
|
|
_080605C6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end FieldObjectClearAnimIfSpecialAnimActive
|
|
|
|
thumb_func_start FieldObjectClearAnim
|
|
FieldObjectClearAnim: @ 80605CC
|
|
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, _080605FC @ =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
|
|
_080605FC: .4byte gSprites
|
|
thumb_func_end FieldObjectClearAnim
|
|
|
|
thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
|
|
FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8060600
|
|
push {lr}
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 25
|
|
cmp r0, 0
|
|
blt _0806060E
|
|
movs r0, 0x10
|
|
b _08060610
|
|
_0806060E:
|
|
lsrs r0, r1, 7
|
|
_08060610:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
|
|
|
|
thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
|
|
FieldObjectClearAnimIfSpecialAnimFinished: @ 8060614
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0806062E
|
|
cmp r4, 0x10
|
|
beq _0806062E
|
|
adds r0, r5, 0
|
|
bl FieldObjectClearAnimIfSpecialAnimActive
|
|
_0806062E:
|
|
adds r0, r4, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
|
|
|
|
thumb_func_start FieldObjectGetSpecialAnim
|
|
FieldObjectGetSpecialAnim: @ 8060638
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
lsls r0, 25
|
|
cmp r0, 0
|
|
blt _08060648
|
|
movs r0, 0xFF
|
|
b _0806064A
|
|
_08060648:
|
|
ldrb r0, [r1, 0x1C]
|
|
_0806064A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectGetSpecialAnim
|
|
|
|
thumb_func_start meta_step
|
|
meta_step: @ 8060650
|
|
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_80634A0
|
|
adds r0, r4, 0
|
|
bl FieldObjectIsSpecialAnimActive
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806067A
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectExecSpecialAnim
|
|
b _08060690
|
|
_0806067A:
|
|
ldrb r0, [r4, 0x1]
|
|
lsls r0, 31
|
|
cmp r0, 0
|
|
bne _08060690
|
|
_08060682:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl _call_via_r6
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060682
|
|
_08060690:
|
|
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_80634D0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl FieldObjectUpdateSubpriority
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end meta_step
|
|
|
|
thumb_func_start GetFaceDirectionAnimId
|
|
GetFaceDirectionAnimId: @ 80606C0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080606E8 @ =gUnknown_083756C8
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080606D8
|
|
movs r4, 0
|
|
_080606D8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080606E8: .4byte gUnknown_083756C8
|
|
thumb_func_end GetFaceDirectionAnimId
|
|
|
|
thumb_func_start GetSimpleGoAnimId
|
|
GetSimpleGoAnimId: @ 80606EC
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060714 @ =gUnknown_083756CD
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060704
|
|
movs r4, 0
|
|
_08060704:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060714: .4byte gUnknown_083756CD
|
|
thumb_func_end GetSimpleGoAnimId
|
|
|
|
thumb_func_start GetGoSpeed0AnimId
|
|
GetGoSpeed0AnimId: @ 8060718
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060740 @ =gUnknown_083756D2
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060730
|
|
movs r4, 0
|
|
_08060730:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060740: .4byte gUnknown_083756D2
|
|
thumb_func_end GetGoSpeed0AnimId
|
|
|
|
thumb_func_start sub_8060744
|
|
sub_8060744: @ 8060744
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806076C @ =gUnknown_083756D7
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806075C
|
|
movs r4, 0
|
|
_0806075C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806076C: .4byte gUnknown_083756D7
|
|
thumb_func_end sub_8060744
|
|
|
|
thumb_func_start d2s_08064034
|
|
d2s_08064034: @ 8060770
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060798 @ =gUnknown_083756DC
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060788
|
|
movs r4, 0
|
|
_08060788:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060798: .4byte gUnknown_083756DC
|
|
thumb_func_end d2s_08064034
|
|
|
|
thumb_func_start sub_806079C
|
|
sub_806079C: @ 806079C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080607C4 @ =gUnknown_083756E1
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080607B4
|
|
movs r4, 0
|
|
_080607B4:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080607C4: .4byte gUnknown_083756E1
|
|
thumb_func_end sub_806079C
|
|
|
|
thumb_func_start sub_80607C8
|
|
sub_80607C8: @ 80607C8
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080607F0 @ =gUnknown_083756E6
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080607E0
|
|
movs r4, 0
|
|
_080607E0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080607F0: .4byte gUnknown_083756E6
|
|
thumb_func_end sub_80607C8
|
|
|
|
thumb_func_start sub_80607F4
|
|
sub_80607F4: @ 80607F4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806081C @ =gUnknown_083756EB
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806080C
|
|
movs r4, 0
|
|
_0806080C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806081C: .4byte gUnknown_083756EB
|
|
thumb_func_end sub_80607F4
|
|
|
|
thumb_func_start GetJumpLedgeAnimId
|
|
GetJumpLedgeAnimId: @ 8060820
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060848 @ =gUnknown_083756F0
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060838
|
|
movs r4, 0
|
|
_08060838:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060848: .4byte gUnknown_083756F0
|
|
thumb_func_end GetJumpLedgeAnimId
|
|
|
|
thumb_func_start sub_806084C
|
|
sub_806084C: @ 806084C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060874 @ =gUnknown_083756F5
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060864
|
|
movs r4, 0
|
|
_08060864:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060874: .4byte gUnknown_083756F5
|
|
thumb_func_end sub_806084C
|
|
|
|
thumb_func_start sub_8060878
|
|
sub_8060878: @ 8060878
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080608A0 @ =gUnknown_083756FA
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060890
|
|
movs r4, 0
|
|
_08060890:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080608A0: .4byte gUnknown_083756FA
|
|
thumb_func_end sub_8060878
|
|
|
|
thumb_func_start sub_80608A4
|
|
sub_80608A4: @ 80608A4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080608CC @ =gUnknown_083756FF
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080608BC
|
|
movs r4, 0
|
|
_080608BC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080608CC: .4byte gUnknown_083756FF
|
|
thumb_func_end sub_80608A4
|
|
|
|
thumb_func_start sub_80608D0
|
|
sub_80608D0: @ 80608D0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080608F8 @ =gUnknown_08375704
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080608E8
|
|
movs r4, 0
|
|
_080608E8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080608F8: .4byte gUnknown_08375704
|
|
thumb_func_end sub_80608D0
|
|
|
|
thumb_func_start GetStepInPlaceDelay32AnimId
|
|
GetStepInPlaceDelay32AnimId: @ 80608FC
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060924 @ =gUnknown_08375709
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060914
|
|
movs r4, 0
|
|
_08060914:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060924: .4byte gUnknown_08375709
|
|
thumb_func_end GetStepInPlaceDelay32AnimId
|
|
|
|
thumb_func_start GetStepInPlaceDelay16AnimId
|
|
GetStepInPlaceDelay16AnimId: @ 8060928
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060950 @ =gUnknown_0837570E
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060940
|
|
movs r4, 0
|
|
_08060940:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060950: .4byte gUnknown_0837570E
|
|
thumb_func_end GetStepInPlaceDelay16AnimId
|
|
|
|
thumb_func_start GetStepInPlaceDelay8AnimId
|
|
GetStepInPlaceDelay8AnimId: @ 8060954
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _0806097C @ =gUnknown_08375713
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _0806096C
|
|
movs r4, 0
|
|
_0806096C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806097C: .4byte gUnknown_08375713
|
|
thumb_func_end GetStepInPlaceDelay8AnimId
|
|
|
|
thumb_func_start GetStepInPlaceDelay4AnimId
|
|
GetStepInPlaceDelay4AnimId: @ 8060980
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080609A8 @ =gUnknown_08375718
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060998
|
|
movs r4, 0
|
|
_08060998:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080609A8: .4byte gUnknown_08375718
|
|
thumb_func_end GetStepInPlaceDelay4AnimId
|
|
|
|
thumb_func_start FieldObjectFaceOppositeDirection
|
|
FieldObjectFaceOppositeDirection: @ 80609AC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl GetOppositeDirection
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetFaceDirectionAnimId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl FieldObjectSetSpecialAnim
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectFaceOppositeDirection
|
|
|
|
thumb_func_start sub_80609D8
|
|
sub_80609D8: @ 80609D8
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060A00 @ =gUnknown_0837571D
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _080609F0
|
|
movs r4, 0
|
|
_080609F0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060A00: .4byte gUnknown_0837571D
|
|
thumb_func_end sub_80609D8
|
|
|
|
thumb_func_start sub_8060A04
|
|
sub_8060A04: @ 8060A04
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060A2C @ =gUnknown_08375722
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060A1C
|
|
movs r4, 0
|
|
_08060A1C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060A2C: .4byte gUnknown_08375722
|
|
thumb_func_end sub_8060A04
|
|
|
|
thumb_func_start sub_8060A30
|
|
sub_8060A30: @ 8060A30
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060A58 @ =gUnknown_08375727
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060A48
|
|
movs r4, 0
|
|
_08060A48:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060A58: .4byte gUnknown_08375727
|
|
thumb_func_end sub_8060A30
|
|
|
|
thumb_func_start sub_8060A5C
|
|
sub_8060A5C: @ 8060A5C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060A84 @ =gUnknown_0837572C
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060A74
|
|
movs r4, 0
|
|
_08060A74:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060A84: .4byte gUnknown_0837572C
|
|
thumb_func_end sub_8060A5C
|
|
|
|
thumb_func_start sub_8060A88
|
|
sub_8060A88: @ 8060A88
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060AB0 @ =gUnknown_08375731
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060AA0
|
|
movs r4, 0
|
|
_08060AA0:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060AB0: .4byte gUnknown_08375731
|
|
thumb_func_end sub_8060A88
|
|
|
|
thumb_func_start sub_8060AB4
|
|
sub_8060AB4: @ 8060AB4
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060ADC @ =gUnknown_08375736
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060ACC
|
|
movs r4, 0
|
|
_08060ACC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060ADC: .4byte gUnknown_08375736
|
|
thumb_func_end sub_8060AB4
|
|
|
|
thumb_func_start sub_8060AE0
|
|
sub_8060AE0: @ 8060AE0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060B08 @ =gUnknown_0837573B
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060AF8
|
|
movs r4, 0
|
|
_08060AF8:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060B08: .4byte gUnknown_0837573B
|
|
thumb_func_end sub_8060AE0
|
|
|
|
thumb_func_start sub_8060B0C
|
|
sub_8060B0C: @ 8060B0C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060B34 @ =gUnknown_08375740
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060B24
|
|
movs r4, 0
|
|
_08060B24:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060B34: .4byte gUnknown_08375740
|
|
thumb_func_end sub_8060B0C
|
|
|
|
thumb_func_start sub_8060B38
|
|
sub_8060B38: @ 8060B38
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060B60 @ =gUnknown_08375745
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060B50
|
|
movs r4, 0
|
|
_08060B50:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060B60: .4byte gUnknown_08375745
|
|
thumb_func_end sub_8060B38
|
|
|
|
thumb_func_start sub_8060B64
|
|
sub_8060B64: @ 8060B64
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060B8C @ =gUnknown_0837574A
|
|
mov r0, sp
|
|
movs r2, 0x5
|
|
bl memcpy
|
|
cmp r4, 0x4
|
|
bls _08060B7C
|
|
movs r4, 0
|
|
_08060B7C:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060B8C: .4byte gUnknown_0837574A
|
|
thumb_func_end sub_8060B64
|
|
|
|
thumb_func_start GetOppositeDirection
|
|
GetOppositeDirection: @ 8060B90
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08060BB4 @ =gUnknown_0837574F
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
subs r1, r4, 0x1
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x7
|
|
bhi _08060BB8
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
b _08060BBA
|
|
.align 2, 0
|
|
_08060BB4: .4byte gUnknown_0837574F
|
|
_08060BB8:
|
|
adds r0, r4, 0
|
|
_08060BBA:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetOppositeDirection
|
|
|
|
thumb_func_start zffu_offset_calc
|
|
zffu_offset_calc: @ 8060BC4
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08060BD8 @ =gUnknown_08375757
|
|
lsrs r0, 22
|
|
subs r0, 0x5
|
|
adds r1, r0
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08060BD8: .4byte gUnknown_08375757
|
|
thumb_func_end zffu_offset_calc
|
|
|
|
thumb_func_start state_to_direction
|
|
state_to_direction: @ 8060BDC
|
|
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 _08060BFC
|
|
cmp r2, 0
|
|
beq _08060BFC
|
|
cmp r1, 0x4
|
|
bhi _08060BFC
|
|
cmp r2, 0x4
|
|
bls _08060C00
|
|
_08060BFC:
|
|
movs r0, 0
|
|
b _08060C12
|
|
_08060C00:
|
|
adds r1, r2, 0
|
|
bl zffu_offset_calc
|
|
ldr r2, _08060C18 @ =gUnknown_08375767
|
|
lsls r1, r4, 2
|
|
subs r1, 0x5
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
_08060C12:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08060C18: .4byte gUnknown_08375767
|
|
thumb_func_end state_to_direction
|
|
|
|
thumb_func_start FieldObjectExecSpecialAnim
|
|
FieldObjectExecSpecialAnim: @ 8060C1C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, _08060C50 @ =gUnknown_08375778
|
|
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 _08060C48
|
|
ldrb r0, [r4]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
_08060C48:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060C50: .4byte gUnknown_08375778
|
|
thumb_func_end FieldObjectExecSpecialAnim
|
|
|
|
thumb_func_start FieldObjectExecRegularAnim
|
|
FieldObjectExecRegularAnim: @ 8060C54
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _08060C80 @ =gUnknown_08375778
|
|
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 _08060C84
|
|
movs r0, 0
|
|
b _08060C8E
|
|
.align 2, 0
|
|
_08060C80: .4byte gUnknown_08375778
|
|
_08060C84:
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_08060C8E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end FieldObjectExecRegularAnim
|
|
|
|
thumb_func_start FieldObjectSetRegularAnim
|
|
FieldObjectSetRegularAnim: @ 8060C94
|
|
movs r3, 0
|
|
strb r2, [r0, 0x1C]
|
|
strh r3, [r1, 0x32]
|
|
bx lr
|
|
thumb_func_end FieldObjectSetRegularAnim
|
|
|
|
thumb_func_start an_look_any
|
|
an_look_any: @ 8060C9C
|
|
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 sub_805FE64
|
|
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_8060CE0
|
|
sub_8060CE0: @ 8060CE0
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060CE0
|
|
|
|
thumb_func_start sub_8060CF0
|
|
sub_8060CF0: @ 8060CF0
|
|
push {lr}
|
|
movs r2, 0x2
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060CF0
|
|
|
|
thumb_func_start sub_8060D00
|
|
sub_8060D00: @ 8060D00
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060D00
|
|
|
|
thumb_func_start sub_8060D10
|
|
sub_8060D10: @ 8060D10
|
|
push {lr}
|
|
movs r2, 0x4
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060D10
|
|
|
|
thumb_func_start sub_8060D20
|
|
sub_8060D20: @ 8060D20
|
|
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_8060D20
|
|
|
|
thumb_func_start do_go_anim
|
|
do_go_anim: @ 8060DA4
|
|
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, _08060DFC @ =gUnknown_083759C0
|
|
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_8060D20
|
|
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 sub_805FE28
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08060DFC: .4byte gUnknown_083759C0
|
|
thumb_func_end do_go_anim
|
|
|
|
thumb_func_start do_run_anim
|
|
do_run_anim: @ 8060E00
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r3, 0x1
|
|
bl sub_8060D20
|
|
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 sub_805FE28
|
|
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: @ 8060E30
|
|
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 _08060E46
|
|
movs r0, 0
|
|
b _08060E62
|
|
_08060E46:
|
|
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
|
|
_08060E62:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_obj_ministep_stop_on_arrival
|
|
|
|
thumb_func_start sub_8060E68
|
|
sub_8060E68: @ 8060E68
|
|
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_806467C
|
|
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_8060E68
|
|
|
|
thumb_func_start sub_8060ED8
|
|
sub_8060ED8: @ 8060ED8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_8060E68
|
|
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 sub_805FE28
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8060ED8
|
|
|
|
thumb_func_start an_walk_any_2
|
|
an_walk_any_2: @ 8060F04
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl sub_806468C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060F1A
|
|
movs r0, 0
|
|
b _08060F36
|
|
_08060F1A:
|
|
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
|
|
_08060F36:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end an_walk_any_2
|
|
|
|
thumb_func_start sub_8060F3C
|
|
sub_8060F3C: @ 8060F3C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8060ED8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8060F5C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060F3C
|
|
|
|
thumb_func_start sub_8060F5C
|
|
sub_8060F5C: @ 8060F5C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060F6E
|
|
movs r0, 0
|
|
b _08060F74
|
|
_08060F6E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08060F74:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060F5C
|
|
|
|
thumb_func_start sub_8060F7C
|
|
sub_8060F7C: @ 8060F7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8060ED8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8060F9C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060F7C
|
|
|
|
thumb_func_start sub_8060F9C
|
|
sub_8060F9C: @ 8060F9C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060FAE
|
|
movs r0, 0
|
|
b _08060FB4
|
|
_08060FAE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08060FB4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060F9C
|
|
|
|
thumb_func_start sub_8060FBC
|
|
sub_8060FBC: @ 8060FBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8060ED8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8060FDC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060FBC
|
|
|
|
thumb_func_start sub_8060FDC
|
|
sub_8060FDC: @ 8060FDC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08060FEE
|
|
movs r0, 0
|
|
b _08060FF4
|
|
_08060FEE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08060FF4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060FDC
|
|
|
|
thumb_func_start sub_8060FFC
|
|
sub_8060FFC: @ 8060FFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8060ED8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806101C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8060FFC
|
|
|
|
thumb_func_start sub_806101C
|
|
sub_806101C: @ 806101C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806102E
|
|
movs r0, 0
|
|
b _08061034
|
|
_0806102E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061034:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806101C
|
|
|
|
thumb_func_start sub_806103C
|
|
sub_806103C: @ 806103C
|
|
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_806105C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806103C
|
|
|
|
thumb_func_start sub_806105C
|
|
sub_806105C: @ 806105C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806106E
|
|
movs r0, 0
|
|
b _08061074
|
|
_0806106E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061074:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806105C
|
|
|
|
thumb_func_start sub_806107C
|
|
sub_806107C: @ 806107C
|
|
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_806109C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806107C
|
|
|
|
thumb_func_start sub_806109C
|
|
sub_806109C: @ 806109C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080610AE
|
|
movs r0, 0
|
|
b _080610B4
|
|
_080610AE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080610B4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806109C
|
|
|
|
thumb_func_start sub_80610BC
|
|
sub_80610BC: @ 80610BC
|
|
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_80610DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80610BC
|
|
|
|
thumb_func_start sub_80610DC
|
|
sub_80610DC: @ 80610DC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080610EE
|
|
movs r0, 0
|
|
b _080610F4
|
|
_080610EE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080610F4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80610DC
|
|
|
|
thumb_func_start sub_80610FC
|
|
sub_80610FC: @ 80610FC
|
|
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_806111C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80610FC
|
|
|
|
thumb_func_start sub_806111C
|
|
sub_806111C: @ 806111C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806112E
|
|
movs r0, 0
|
|
b _08061134
|
|
_0806112E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061134:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806111C
|
|
|
|
thumb_func_start sub_806113C
|
|
sub_806113C: @ 806113C
|
|
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, _080611F4 @ =gUnknown_08375A34
|
|
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_8060320
|
|
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_80646E4
|
|
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
|
|
_080611F4: .4byte gUnknown_08375A34
|
|
thumb_func_end sub_806113C
|
|
|
|
thumb_func_start maybe_shadow_1
|
|
maybe_shadow_1: @ 80611F8
|
|
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_806113C
|
|
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 sub_805FE28
|
|
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_806123C
|
|
sub_806123C: @ 806123C
|
|
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, _080612C8 @ =gUnknown_08375A3A
|
|
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 _080612CC
|
|
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 _080612CC
|
|
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_8060320
|
|
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 _080612F0
|
|
.align 2, 0
|
|
_080612C8: .4byte gUnknown_08375A3A
|
|
_080612CC:
|
|
mov r1, r8
|
|
cmp r1, 0xFF
|
|
bne _080612F0
|
|
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]
|
|
_080612F0:
|
|
mov r0, r8
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806123C
|
|
|
|
thumb_func_start sub_8061300
|
|
sub_8061300: @ 8061300
|
|
push {lr}
|
|
ldr r2, _08061310 @ =sub_8064704
|
|
bl sub_806123C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061310: .4byte sub_8064704
|
|
thumb_func_end sub_8061300
|
|
|
|
thumb_func_start sub_8061314
|
|
sub_8061314: @ 8061314
|
|
push {lr}
|
|
ldr r2, _08061324 @ =sub_806478C
|
|
bl sub_806123C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08061324: .4byte sub_806478C
|
|
thumb_func_end sub_8061314
|
|
|
|
thumb_func_start sub_8061328
|
|
sub_8061328: @ 8061328
|
|
push {lr}
|
|
bl sub_8061300
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _0806133A
|
|
movs r0, 0
|
|
b _0806133C
|
|
_0806133A:
|
|
movs r0, 0x1
|
|
_0806133C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061328
|
|
|
|
thumb_func_start sub_8061340
|
|
sub_8061340: @ 8061340
|
|
push {lr}
|
|
bl sub_8061314
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _08061352
|
|
movs r0, 0
|
|
b _08061354
|
|
_08061352:
|
|
movs r0, 0x1
|
|
_08061354:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061340
|
|
|
|
thumb_func_start sub_8061358
|
|
sub_8061358: @ 8061358
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061300
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08061372
|
|
cmp r0, 0xFF
|
|
bne _0806139E
|
|
movs r0, 0x1
|
|
b _080613A0
|
|
_08061372:
|
|
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 sub_805FE64
|
|
_0806139E:
|
|
movs r0, 0
|
|
_080613A0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061358
|
|
|
|
thumb_func_start sub_80613A8
|
|
sub_80613A8: @ 80613A8
|
|
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_80613D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80613A8
|
|
|
|
thumb_func_start sub_80613D4
|
|
sub_80613D4: @ 80613D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080613E8
|
|
movs r0, 0
|
|
b _080613F8
|
|
_080613E8:
|
|
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
|
|
_080613F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80613D4
|
|
|
|
thumb_func_start sub_8061400
|
|
sub_8061400: @ 8061400
|
|
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_806142C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061400
|
|
|
|
thumb_func_start sub_806142C
|
|
sub_806142C: @ 806142C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061440
|
|
movs r0, 0
|
|
b _08061450
|
|
_08061440:
|
|
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
|
|
_08061450:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806142C
|
|
|
|
thumb_func_start sub_8061458
|
|
sub_8061458: @ 8061458
|
|
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_8061484
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061458
|
|
|
|
thumb_func_start sub_8061484
|
|
sub_8061484: @ 8061484
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061498
|
|
movs r0, 0
|
|
b _080614A8
|
|
_08061498:
|
|
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
|
|
_080614A8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061484
|
|
|
|
thumb_func_start sub_80614B0
|
|
sub_80614B0: @ 80614B0
|
|
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_80614DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80614B0
|
|
|
|
thumb_func_start sub_80614DC
|
|
sub_80614DC: @ 80614DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080614F0
|
|
movs r0, 0
|
|
b _08061500
|
|
_080614F0:
|
|
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
|
|
_08061500:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80614DC
|
|
|
|
thumb_func_start sub_8061508
|
|
sub_8061508: @ 8061508
|
|
movs r2, 0x1
|
|
strh r2, [r0, 0x32]
|
|
strh r1, [r0, 0x34]
|
|
bx lr
|
|
thumb_func_end sub_8061508
|
|
|
|
thumb_func_start sub_8061510
|
|
sub_8061510: @ 8061510
|
|
push {lr}
|
|
ldrh r0, [r1, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08061522
|
|
movs r0, 0
|
|
b _08061528
|
|
_08061522:
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x32]
|
|
movs r0, 0x1
|
|
_08061528:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061510
|
|
|
|
thumb_func_start sub_806152C
|
|
sub_806152C: @ 806152C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8061508
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806152C
|
|
|
|
thumb_func_start sub_806154C
|
|
sub_806154C: @ 806154C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8061508
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806154C
|
|
|
|
thumb_func_start sub_806156C
|
|
sub_806156C: @ 806156C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_8061508
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806156C
|
|
|
|
thumb_func_start sub_806158C
|
|
sub_806158C: @ 806158C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_8061508
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806158C
|
|
|
|
thumb_func_start sub_80615AC
|
|
sub_80615AC: @ 80615AC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
bl sub_8061508
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061510
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80615AC
|
|
|
|
thumb_func_start sub_80615CC
|
|
sub_80615CC: @ 80615CC
|
|
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_80615EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80615CC
|
|
|
|
thumb_func_start sub_80615EC
|
|
sub_80615EC: @ 80615EC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080615FE
|
|
movs r0, 0
|
|
b _08061604
|
|
_080615FE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061604:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80615EC
|
|
|
|
thumb_func_start sub_806160C
|
|
sub_806160C: @ 806160C
|
|
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_806162C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806160C
|
|
|
|
thumb_func_start sub_806162C
|
|
sub_806162C: @ 806162C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806163E
|
|
movs r0, 0
|
|
b _08061644
|
|
_0806163E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061644:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806162C
|
|
|
|
thumb_func_start sub_806164C
|
|
sub_806164C: @ 806164C
|
|
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_806166C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806164C
|
|
|
|
thumb_func_start sub_806166C
|
|
sub_806166C: @ 806166C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806167E
|
|
movs r0, 0
|
|
b _08061684
|
|
_0806167E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061684:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806166C
|
|
|
|
thumb_func_start sub_806168C
|
|
sub_806168C: @ 806168C
|
|
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_80616AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806168C
|
|
|
|
thumb_func_start sub_80616AC
|
|
sub_80616AC: @ 80616AC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080616BE
|
|
movs r0, 0
|
|
b _080616C4
|
|
_080616BE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080616C4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80616AC
|
|
|
|
thumb_func_start sub_80616CC
|
|
sub_80616CC: @ 80616CC
|
|
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 sub_805FE28
|
|
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_80616CC
|
|
|
|
thumb_func_start sub_8061714
|
|
sub_8061714: @ 8061714
|
|
push {lr}
|
|
ldrh r0, [r1, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08061726
|
|
movs r0, 0
|
|
b _08061738
|
|
_08061726:
|
|
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
|
|
_08061738:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061714
|
|
|
|
thumb_func_start sub_806173C
|
|
sub_806173C: @ 806173C
|
|
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 _08061766
|
|
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]
|
|
_08061766:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806173C
|
|
|
|
thumb_func_start sub_8061778
|
|
sub_8061778: @ 8061778
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806173C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061778
|
|
|
|
thumb_func_start sub_80617B0
|
|
sub_80617B0: @ 80617B0
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806173C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80617B0
|
|
|
|
thumb_func_start sub_80617E8
|
|
sub_80617E8: @ 80617E8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806173C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80617E8
|
|
|
|
thumb_func_start sub_8061820
|
|
sub_8061820: @ 8061820
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_806173C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061820
|
|
|
|
thumb_func_start sub_8061858
|
|
sub_8061858: @ 8061858
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061858
|
|
|
|
thumb_func_start sub_8061890
|
|
sub_8061890: @ 8061890
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061890
|
|
|
|
thumb_func_start sub_80618C8
|
|
sub_80618C8: @ 80618C8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80618C8
|
|
|
|
thumb_func_start sub_8061900
|
|
sub_8061900: @ 8061900
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061900
|
|
|
|
thumb_func_start sub_8061938
|
|
sub_8061938: @ 8061938
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061938
|
|
|
|
thumb_func_start sub_8061970
|
|
sub_8061970: @ 8061970
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061970
|
|
|
|
thumb_func_start sub_80619A8
|
|
sub_80619A8: @ 80619A8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80619A8
|
|
|
|
thumb_func_start sub_80619E0
|
|
sub_80619E0: @ 80619E0
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80619E0
|
|
|
|
thumb_func_start sub_8061A18
|
|
sub_8061A18: @ 8061A18
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061A18
|
|
|
|
thumb_func_start sub_8061A50
|
|
sub_8061A50: @ 8061A50
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061A50
|
|
|
|
thumb_func_start sub_8061A88
|
|
sub_8061A88: @ 8061A88
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061A88
|
|
|
|
thumb_func_start sub_8061AC0
|
|
sub_8061AC0: @ 8061AC0
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061AC0
|
|
|
|
thumb_func_start sub_8061AF8
|
|
sub_8061AF8: @ 8061AF8
|
|
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_8061B18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061AF8
|
|
|
|
thumb_func_start sub_8061B18
|
|
sub_8061B18: @ 8061B18
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061B2A
|
|
movs r0, 0
|
|
b _08061B30
|
|
_08061B2A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061B30:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B18
|
|
|
|
thumb_func_start sub_8061B38
|
|
sub_8061B38: @ 8061B38
|
|
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_8061B58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B38
|
|
|
|
thumb_func_start sub_8061B58
|
|
sub_8061B58: @ 8061B58
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061B6A
|
|
movs r0, 0
|
|
b _08061B70
|
|
_08061B6A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061B70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B58
|
|
|
|
thumb_func_start sub_8061B78
|
|
sub_8061B78: @ 8061B78
|
|
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_8061B98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B78
|
|
|
|
thumb_func_start sub_8061B98
|
|
sub_8061B98: @ 8061B98
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061BAA
|
|
movs r0, 0
|
|
b _08061BB0
|
|
_08061BAA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061BB0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061B98
|
|
|
|
thumb_func_start sub_8061BB8
|
|
sub_8061BB8: @ 8061BB8
|
|
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_8061BD8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061BB8
|
|
|
|
thumb_func_start sub_8061BD8
|
|
sub_8061BD8: @ 8061BD8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061BEA
|
|
movs r0, 0
|
|
b _08061BF0
|
|
_08061BEA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061BF0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061BD8
|
|
|
|
thumb_func_start sub_8061BF8
|
|
sub_8061BF8: @ 8061BF8
|
|
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_8061C18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061BF8
|
|
|
|
thumb_func_start sub_8061C18
|
|
sub_8061C18: @ 8061C18
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061C2A
|
|
movs r0, 0
|
|
b _08061C30
|
|
_08061C2A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061C30:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061C18
|
|
|
|
thumb_func_start sub_8061C38
|
|
sub_8061C38: @ 8061C38
|
|
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_8061C58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061C38
|
|
|
|
thumb_func_start sub_8061C58
|
|
sub_8061C58: @ 8061C58
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061C6A
|
|
movs r0, 0
|
|
b _08061C70
|
|
_08061C6A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061C70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061C58
|
|
|
|
thumb_func_start sub_8061C78
|
|
sub_8061C78: @ 8061C78
|
|
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_8061C98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061C78
|
|
|
|
thumb_func_start sub_8061C98
|
|
sub_8061C98: @ 8061C98
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061CAA
|
|
movs r0, 0
|
|
b _08061CB0
|
|
_08061CAA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061CB0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061C98
|
|
|
|
thumb_func_start sub_8061CB8
|
|
sub_8061CB8: @ 8061CB8
|
|
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_8061CD8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061CB8
|
|
|
|
thumb_func_start sub_8061CD8
|
|
sub_8061CD8: @ 8061CD8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061CEA
|
|
movs r0, 0
|
|
b _08061CF0
|
|
_08061CEA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061CF0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061CD8
|
|
|
|
thumb_func_start sub_8061CF8
|
|
sub_8061CF8: @ 8061CF8
|
|
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_8061D18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061CF8
|
|
|
|
thumb_func_start sub_8061D18
|
|
sub_8061D18: @ 8061D18
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061D2A
|
|
movs r0, 0
|
|
b _08061D30
|
|
_08061D2A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061D30:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061D18
|
|
|
|
thumb_func_start sub_8061D38
|
|
sub_8061D38: @ 8061D38
|
|
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_8061D58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061D38
|
|
|
|
thumb_func_start sub_8061D58
|
|
sub_8061D58: @ 8061D58
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061D6A
|
|
movs r0, 0
|
|
b _08061D70
|
|
_08061D6A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061D70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061D58
|
|
|
|
thumb_func_start sub_8061D78
|
|
sub_8061D78: @ 8061D78
|
|
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_8061D98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061D78
|
|
|
|
thumb_func_start sub_8061D98
|
|
sub_8061D98: @ 8061D98
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061DAA
|
|
movs r0, 0
|
|
b _08061DB0
|
|
_08061DAA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061DB0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061D98
|
|
|
|
thumb_func_start sub_8061DB8
|
|
sub_8061DB8: @ 8061DB8
|
|
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_8061DD8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061DB8
|
|
|
|
thumb_func_start sub_8061DD8
|
|
sub_8061DD8: @ 8061DD8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061DEA
|
|
movs r0, 0
|
|
b _08061DF0
|
|
_08061DEA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061DF0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061DD8
|
|
|
|
thumb_func_start do_run_south_anim
|
|
do_run_south_anim: @ 8061DF8
|
|
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_8061E18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_south_anim
|
|
|
|
thumb_func_start sub_8061E18
|
|
sub_8061E18: @ 8061E18
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061E2A
|
|
movs r0, 0
|
|
b _08061E30
|
|
_08061E2A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061E30:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061E18
|
|
|
|
thumb_func_start do_run_north_anim
|
|
do_run_north_anim: @ 8061E38
|
|
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_8061E58
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_north_anim
|
|
|
|
thumb_func_start sub_8061E58
|
|
sub_8061E58: @ 8061E58
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061E6A
|
|
movs r0, 0
|
|
b _08061E70
|
|
_08061E6A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061E70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061E58
|
|
|
|
thumb_func_start do_run_west_anim
|
|
do_run_west_anim: @ 8061E78
|
|
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_8061E98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_west_anim
|
|
|
|
thumb_func_start sub_8061E98
|
|
sub_8061E98: @ 8061E98
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061EAA
|
|
movs r0, 0
|
|
b _08061EB0
|
|
_08061EAA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061EB0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061E98
|
|
|
|
thumb_func_start do_run_east_anim
|
|
do_run_east_anim: @ 8061EB8
|
|
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_8061ED8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end do_run_east_anim
|
|
|
|
thumb_func_start sub_8061ED8
|
|
sub_8061ED8: @ 8061ED8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061EEA
|
|
movs r0, 0
|
|
b _08061EF0
|
|
_08061EEA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061EF0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061ED8
|
|
|
|
thumb_func_start npc_set_direction_and_anim__an_proceed
|
|
npc_set_direction_and_anim__an_proceed: @ 8061EF8
|
|
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_8061F24
|
|
sub_8061F24: @ 8061F24
|
|
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_8061F24
|
|
|
|
thumb_func_start sub_8061F3C
|
|
sub_8061F3C: @ 8061F3C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064864
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061F50
|
|
movs r0, 0
|
|
b _08061F56
|
|
_08061F50:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08061F56:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061F3C
|
|
|
|
thumb_func_start sub_8061F5C
|
|
sub_8061F5C: @ 8061F5C
|
|
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_806113C
|
|
adds r0, r4, 0
|
|
bl sub_805FD88
|
|
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_8061F5C
|
|
|
|
thumb_func_start sub_8061F90
|
|
sub_8061F90: @ 8061F90
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8061F5C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061FB0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061F90
|
|
|
|
thumb_func_start sub_8061FB0
|
|
sub_8061FB0: @ 8061FB0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061340
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08061FC4
|
|
movs r0, 0
|
|
b _08061FD2
|
|
_08061FC4:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08061FD2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061FB0
|
|
|
|
thumb_func_start sub_8061FD8
|
|
sub_8061FD8: @ 8061FD8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
bl sub_8061F5C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061FF8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061FD8
|
|
|
|
thumb_func_start sub_8061FF8
|
|
sub_8061FF8: @ 8061FF8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061340
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806200C
|
|
movs r0, 0
|
|
b _0806201A
|
|
_0806200C:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_0806201A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8061FF8
|
|
|
|
thumb_func_start sub_8062020
|
|
sub_8062020: @ 8062020
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
bl sub_8061F5C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062040
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062020
|
|
|
|
thumb_func_start sub_8062040
|
|
sub_8062040: @ 8062040
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061340
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062054
|
|
movs r0, 0
|
|
b _08062062
|
|
_08062054:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08062062:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062040
|
|
|
|
thumb_func_start sub_8062068
|
|
sub_8062068: @ 8062068
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8061F5C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062088
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062068
|
|
|
|
thumb_func_start sub_8062088
|
|
sub_8062088: @ 8062088
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061340
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806209C
|
|
movs r0, 0
|
|
b _080620AA
|
|
_0806209C:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x23
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_080620AA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062088
|
|
|
|
thumb_func_start sub_80620B0
|
|
sub_80620B0: @ 80620B0
|
|
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 _080620FA
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
ldr r4, _08062108 @ =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_805FE90
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl an_look_any
|
|
_080620FA:
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08062108: .4byte gMapObjects
|
|
thumb_func_end sub_80620B0
|
|
|
|
thumb_func_start sub_806210C
|
|
sub_806210C: @ 806210C
|
|
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 _0806215E
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
ldr r4, _0806216C @ =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_805FE90
|
|
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
|
|
_0806215E:
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x32]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0806216C: .4byte gMapObjects
|
|
thumb_func_end sub_806210C
|
|
|
|
thumb_func_start sub_8062170
|
|
sub_8062170: @ 8062170
|
|
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_8062170
|
|
|
|
thumb_func_start sub_8062180
|
|
sub_8062180: @ 8062180
|
|
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_8062180
|
|
|
|
thumb_func_start sub_8062190
|
|
sub_8062190: @ 8062190
|
|
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_80621BC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062190
|
|
|
|
thumb_func_start sub_80621BC
|
|
sub_80621BC: @ 80621BC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080621D0
|
|
movs r0, 0
|
|
b _080621E0
|
|
_080621D0:
|
|
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
|
|
_080621E0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80621BC
|
|
|
|
thumb_func_start sub_80621E8
|
|
sub_80621E8: @ 80621E8
|
|
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_8062214
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80621E8
|
|
|
|
thumb_func_start sub_8062214
|
|
sub_8062214: @ 8062214
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062228
|
|
movs r0, 0
|
|
b _08062238
|
|
_08062228:
|
|
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
|
|
_08062238:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062214
|
|
|
|
thumb_func_start sub_8062240
|
|
sub_8062240: @ 8062240
|
|
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_806226C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062240
|
|
|
|
thumb_func_start sub_806226C
|
|
sub_806226C: @ 806226C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062280
|
|
movs r0, 0
|
|
b _08062290
|
|
_08062280:
|
|
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
|
|
_08062290:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806226C
|
|
|
|
thumb_func_start sub_8062298
|
|
sub_8062298: @ 8062298
|
|
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_80622C4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062298
|
|
|
|
thumb_func_start sub_80622C4
|
|
sub_80622C4: @ 80622C4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080622D8
|
|
movs r0, 0
|
|
b _080622E8
|
|
_080622D8:
|
|
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
|
|
_080622E8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80622C4
|
|
|
|
thumb_func_start sub_80622F0
|
|
sub_80622F0: @ 80622F0
|
|
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_806231C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80622F0
|
|
|
|
thumb_func_start sub_806231C
|
|
sub_806231C: @ 806231C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062330
|
|
movs r0, 0
|
|
b _08062340
|
|
_08062330:
|
|
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
|
|
_08062340:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806231C
|
|
|
|
thumb_func_start sub_8062348
|
|
sub_8062348: @ 8062348
|
|
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_8062374
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062348
|
|
|
|
thumb_func_start sub_8062374
|
|
sub_8062374: @ 8062374
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062388
|
|
movs r0, 0
|
|
b _08062398
|
|
_08062388:
|
|
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
|
|
_08062398:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062374
|
|
|
|
thumb_func_start sub_80623A0
|
|
sub_80623A0: @ 80623A0
|
|
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_80623CC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80623A0
|
|
|
|
thumb_func_start sub_80623CC
|
|
sub_80623CC: @ 80623CC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080623E0
|
|
movs r0, 0
|
|
b _080623F0
|
|
_080623E0:
|
|
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
|
|
_080623F0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80623CC
|
|
|
|
thumb_func_start sub_80623F8
|
|
sub_80623F8: @ 80623F8
|
|
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_8062424
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80623F8
|
|
|
|
thumb_func_start sub_8062424
|
|
sub_8062424: @ 8062424
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062438
|
|
movs r0, 0
|
|
b _08062448
|
|
_08062438:
|
|
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
|
|
_08062448:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062424
|
|
|
|
thumb_func_start sub_8062450
|
|
sub_8062450: @ 8062450
|
|
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_806247C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062450
|
|
|
|
thumb_func_start sub_806247C
|
|
sub_806247C: @ 806247C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061358
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062490
|
|
movs r0, 0
|
|
b _080624A0
|
|
_08062490:
|
|
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
|
|
_080624A0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806247C
|
|
|
|
thumb_func_start sub_80624A8
|
|
sub_80624A8: @ 80624A8
|
|
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_80624D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80624A8
|
|
|
|
thumb_func_start sub_80624D4
|
|
sub_80624D4: @ 80624D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061358
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080624E8
|
|
movs r0, 0
|
|
b _080624F8
|
|
_080624E8:
|
|
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
|
|
_080624F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80624D4
|
|
|
|
thumb_func_start sub_8062500
|
|
sub_8062500: @ 8062500
|
|
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_806252C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062500
|
|
|
|
thumb_func_start sub_806252C
|
|
sub_806252C: @ 806252C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061358
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062540
|
|
movs r0, 0
|
|
b _08062550
|
|
_08062540:
|
|
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
|
|
_08062550:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806252C
|
|
|
|
thumb_func_start sub_8062558
|
|
sub_8062558: @ 8062558
|
|
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_8062584
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062558
|
|
|
|
thumb_func_start sub_8062584
|
|
sub_8062584: @ 8062584
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061358
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062598
|
|
movs r0, 0
|
|
b _080625A8
|
|
_08062598:
|
|
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
|
|
_080625A8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062584
|
|
|
|
thumb_func_start sub_80625B0
|
|
sub_80625B0: @ 80625B0
|
|
push {lr}
|
|
ldr r3, _080625C4 @ =gUnknown_0836DC09
|
|
ldrb r2, [r0, 0x6]
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
bl an_look_any
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080625C4: .4byte gUnknown_0836DC09
|
|
thumb_func_end sub_80625B0
|
|
|
|
thumb_func_start sub_80625C8
|
|
sub_80625C8: @ 80625C8
|
|
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_80625C8
|
|
|
|
thumb_func_start sub_80625D8
|
|
sub_80625D8: @ 80625D8
|
|
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_80625D8
|
|
|
|
thumb_func_start sub_80625E8
|
|
sub_80625E8: @ 80625E8
|
|
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_80625E8
|
|
|
|
thumb_func_start sub_80625F8
|
|
sub_80625F8: @ 80625F8
|
|
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_80625F8
|
|
|
|
thumb_func_start sub_8062608
|
|
sub_8062608: @ 8062608
|
|
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_8062608
|
|
|
|
thumb_func_start sub_8062634
|
|
sub_8062634: @ 8062634
|
|
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_8062634
|
|
|
|
thumb_func_start sub_8062644
|
|
sub_8062644: @ 8062644
|
|
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_8062644
|
|
|
|
thumb_func_start do_exclamation_mark_bubble_1
|
|
do_exclamation_mark_bubble_1: @ 8062654
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _08062674 @ =gUnknown_0202FF84
|
|
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
|
|
_08062674: .4byte gUnknown_0202FF84
|
|
thumb_func_end do_exclamation_mark_bubble_1
|
|
|
|
thumb_func_start do_exclamation_mark_bubble_2
|
|
do_exclamation_mark_bubble_2: @ 8062678
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _08062698 @ =gUnknown_0202FF84
|
|
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
|
|
_08062698: .4byte gUnknown_0202FF84
|
|
thumb_func_end do_exclamation_mark_bubble_2
|
|
|
|
thumb_func_start do_heart_bubble
|
|
do_heart_bubble: @ 806269C
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, _080626BC @ =gUnknown_0202FF84
|
|
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
|
|
_080626BC: .4byte gUnknown_0202FF84
|
|
thumb_func_end do_heart_bubble
|
|
|
|
thumb_func_start sub_80626C0
|
|
sub_80626C0: @ 80626C0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0x3F
|
|
bne _080626D6
|
|
adds r0, r4, 0
|
|
bl sub_8084794
|
|
movs r0, 0
|
|
b _080626FE
|
|
_080626D6:
|
|
subs r0, 0x39
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080626F8
|
|
adds r0, r4, 0
|
|
bl sub_812869C
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062704
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080626FE
|
|
_080626F8:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
_080626FE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80626C0
|
|
|
|
thumb_func_start sub_8062704
|
|
sub_8062704: @ 8062704
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl sub_81286C4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062716
|
|
movs r0, 0
|
|
b _0806271C
|
|
_08062716:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_0806271C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062704
|
|
|
|
thumb_func_start sub_8062724
|
|
sub_8062724: @ 8062724
|
|
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_8062724
|
|
|
|
thumb_func_start sub_8062740
|
|
sub_8062740: @ 8062740
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064864
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0806275C
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl sub_8064820
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
_0806275C:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062740
|
|
|
|
thumb_func_start sub_8062764
|
|
sub_8062764: @ 8062764
|
|
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 sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062796
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x32]
|
|
_08062796:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062764
|
|
|
|
thumb_func_start sub_80627A0
|
|
sub_80627A0: @ 80627A0
|
|
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_80627A0
|
|
|
|
thumb_func_start sub_80627BC
|
|
sub_80627BC: @ 80627BC
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl sub_8064864
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080627D8
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl sub_8064820
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
_080627D8:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80627BC
|
|
|
|
thumb_func_start sub_80627E0
|
|
sub_80627E0: @ 80627E0
|
|
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 sub_8064824
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08062812
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x32]
|
|
_08062812:
|
|
movs r0, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80627E0
|
|
|
|
thumb_func_start sub_806281C
|
|
sub_806281C: @ 806281C
|
|
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_806281C
|
|
|
|
thumb_func_start sub_806282C
|
|
sub_806282C: @ 806282C
|
|
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_806282C
|
|
|
|
thumb_func_start sub_806283C
|
|
sub_806283C: @ 806283C
|
|
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_806283C
|
|
|
|
thumb_func_start sub_806286C
|
|
sub_806286C: @ 806286C
|
|
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_806286C
|
|
|
|
thumb_func_start sub_806289C
|
|
sub_806289C: @ 806289C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8060ED8
|
|
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_80628D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806289C
|
|
|
|
thumb_func_start sub_80628D0
|
|
sub_80628D0: @ 80628D0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080628E2
|
|
movs r0, 0
|
|
b _080628F4
|
|
_080628E2:
|
|
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
|
|
_080628F4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80628D0
|
|
|
|
thumb_func_start sub_80628FC
|
|
sub_80628FC: @ 80628FC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8060ED8
|
|
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_8062930
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80628FC
|
|
|
|
thumb_func_start sub_8062930
|
|
sub_8062930: @ 8062930
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl an_walk_any_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062942
|
|
movs r0, 0
|
|
b _08062954
|
|
_08062942:
|
|
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
|
|
_08062954:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062930
|
|
|
|
thumb_func_start sub_806295C
|
|
sub_806295C: @ 806295C
|
|
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_805FDD8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805FE64
|
|
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_806295C
|
|
|
|
thumb_func_start sub_806299C
|
|
sub_806299C: @ 806299C
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_806295C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_806299C
|
|
|
|
thumb_func_start sub_80629AC
|
|
sub_80629AC: @ 80629AC
|
|
push {lr}
|
|
movs r2, 0x2
|
|
bl sub_806295C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80629AC
|
|
|
|
thumb_func_start sub_80629BC
|
|
sub_80629BC: @ 80629BC
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl sub_806295C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80629BC
|
|
|
|
thumb_func_start sub_80629CC
|
|
sub_80629CC: @ 80629CC
|
|
push {lr}
|
|
movs r2, 0x4
|
|
bl sub_806295C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80629CC
|
|
|
|
thumb_func_start sub_80629DC
|
|
sub_80629DC: @ 80629DC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_805FD98
|
|
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_80629DC
|
|
|
|
thumb_func_start sub_8062A00
|
|
sub_8062A00: @ 8062A00
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_805FD98
|
|
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_8062A00
|
|
|
|
thumb_func_start sub_8062A24
|
|
sub_8062A24: @ 8062A24
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_805FD98
|
|
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_8062A24
|
|
|
|
thumb_func_start sub_8062A48
|
|
sub_8062A48: @ 8062A48
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_805FD98
|
|
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_8062A48
|
|
|
|
thumb_func_start sub_8062A6C
|
|
sub_8062A6C: @ 8062A6C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_805FDB8
|
|
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_8062A6C
|
|
|
|
thumb_func_start sub_8062A90
|
|
sub_8062A90: @ 8062A90
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_805FDB8
|
|
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_8062A90
|
|
|
|
thumb_func_start sub_8062AB4
|
|
sub_8062AB4: @ 8062AB4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_805FDB8
|
|
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_8062AB4
|
|
|
|
thumb_func_start sub_8062AD8
|
|
sub_8062AD8: @ 8062AD8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_805FDB8
|
|
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_8062AD8
|
|
|
|
thumb_func_start sub_8062AFC
|
|
sub_8062AFC: @ 8062AFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_805FDC8
|
|
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_8062AFC
|
|
|
|
thumb_func_start sub_8062B20
|
|
sub_8062B20: @ 8062B20
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_805FDC8
|
|
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_8062B20
|
|
|
|
thumb_func_start sub_8062B44
|
|
sub_8062B44: @ 8062B44
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_805FDC8
|
|
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_8062B44
|
|
|
|
thumb_func_start sub_8062B68
|
|
sub_8062B68: @ 8062B68
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_805FDC8
|
|
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_8062B68
|
|
|
|
thumb_func_start sub_8062B8C
|
|
sub_8062B8C: @ 8062B8C
|
|
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_806113C
|
|
adds r0, r4, 0
|
|
bl sub_805FD98
|
|
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_8062B8C
|
|
|
|
thumb_func_start sub_8062BD0
|
|
sub_8062BD0: @ 8062BD0
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062BFC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062BD0
|
|
|
|
thumb_func_start sub_8062BFC
|
|
sub_8062BFC: @ 8062BFC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062C10
|
|
movs r0, 0
|
|
b _08062C20
|
|
_08062C10:
|
|
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
|
|
_08062C20:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062BFC
|
|
|
|
thumb_func_start sub_8062C28
|
|
sub_8062C28: @ 8062C28
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062C54
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062C28
|
|
|
|
thumb_func_start sub_8062C54
|
|
sub_8062C54: @ 8062C54
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062C68
|
|
movs r0, 0
|
|
b _08062C78
|
|
_08062C68:
|
|
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
|
|
_08062C78:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062C54
|
|
|
|
thumb_func_start sub_8062C80
|
|
sub_8062C80: @ 8062C80
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062CAC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062C80
|
|
|
|
thumb_func_start sub_8062CAC
|
|
sub_8062CAC: @ 8062CAC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062CC0
|
|
movs r0, 0
|
|
b _08062CD0
|
|
_08062CC0:
|
|
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
|
|
_08062CD0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062CAC
|
|
|
|
thumb_func_start sub_8062CD8
|
|
sub_8062CD8: @ 8062CD8
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062D04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062CD8
|
|
|
|
thumb_func_start sub_8062D04
|
|
sub_8062D04: @ 8062D04
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062D18
|
|
movs r0, 0
|
|
b _08062D28
|
|
_08062D18:
|
|
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
|
|
_08062D28:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062D04
|
|
|
|
thumb_func_start sub_8062D30
|
|
sub_8062D30: @ 8062D30
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062D5C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062D30
|
|
|
|
thumb_func_start sub_8062D5C
|
|
sub_8062D5C: @ 8062D5C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062D70
|
|
movs r0, 0
|
|
b _08062D80
|
|
_08062D70:
|
|
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
|
|
_08062D80:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062D5C
|
|
|
|
thumb_func_start sub_8062D88
|
|
sub_8062D88: @ 8062D88
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062DB4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062D88
|
|
|
|
thumb_func_start sub_8062DB4
|
|
sub_8062DB4: @ 8062DB4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062DC8
|
|
movs r0, 0
|
|
b _08062DD8
|
|
_08062DC8:
|
|
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
|
|
_08062DD8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062DB4
|
|
|
|
thumb_func_start sub_8062DE0
|
|
sub_8062DE0: @ 8062DE0
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062E0C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062DE0
|
|
|
|
thumb_func_start sub_8062E0C
|
|
sub_8062E0C: @ 8062E0C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062E20
|
|
movs r0, 0
|
|
b _08062E30
|
|
_08062E20:
|
|
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
|
|
_08062E30:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062E0C
|
|
|
|
thumb_func_start sub_8062E38
|
|
sub_8062E38: @ 8062E38
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062E64
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062E38
|
|
|
|
thumb_func_start sub_8062E64
|
|
sub_8062E64: @ 8062E64
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062E78
|
|
movs r0, 0
|
|
b _08062E88
|
|
_08062E78:
|
|
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
|
|
_08062E88:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062E64
|
|
|
|
thumb_func_start sub_8062E90
|
|
sub_8062E90: @ 8062E90
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062EBC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062E90
|
|
|
|
thumb_func_start sub_8062EBC
|
|
sub_8062EBC: @ 8062EBC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062ED0
|
|
movs r0, 0
|
|
b _08062EE0
|
|
_08062ED0:
|
|
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
|
|
_08062EE0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062EBC
|
|
|
|
thumb_func_start sub_8062EE8
|
|
sub_8062EE8: @ 8062EE8
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062F14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062EE8
|
|
|
|
thumb_func_start sub_8062F14
|
|
sub_8062F14: @ 8062F14
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062F28
|
|
movs r0, 0
|
|
b _08062F38
|
|
_08062F28:
|
|
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
|
|
_08062F38:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062F14
|
|
|
|
thumb_func_start sub_8062F40
|
|
sub_8062F40: @ 8062F40
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062F6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062F40
|
|
|
|
thumb_func_start sub_8062F6C
|
|
sub_8062F6C: @ 8062F6C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062F80
|
|
movs r0, 0
|
|
b _08062F90
|
|
_08062F80:
|
|
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
|
|
_08062F90:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062F6C
|
|
|
|
thumb_func_start sub_8062F98
|
|
sub_8062F98: @ 8062F98
|
|
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_8062B8C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8062FC4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062F98
|
|
|
|
thumb_func_start sub_8062FC4
|
|
sub_8062FC4: @ 8062FC4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8061328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08062FD8
|
|
movs r0, 0
|
|
b _08062FE8
|
|
_08062FD8:
|
|
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
|
|
_08062FE8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062FC4
|
|
|
|
thumb_func_start sub_8062FF0
|
|
sub_8062FF0: @ 8062FF0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x1
|
|
bl sub_805FDD8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8062FF0
|
|
|
|
thumb_func_start sub_8063028
|
|
sub_8063028: @ 8063028
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x2
|
|
bl sub_805FDD8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063028
|
|
|
|
thumb_func_start sub_8063060
|
|
sub_8063060: @ 8063060
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
bl sub_805FDD8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063060
|
|
|
|
thumb_func_start sub_8063098
|
|
sub_8063098: @ 8063098
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
bl sub_805FDD8
|
|
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_80616CC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8061714
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063098
|
|
|
|
thumb_func_start sub_80630D0
|
|
sub_80630D0: @ 80630D0
|
|
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_8060D20
|
|
ldrb r0, [r5, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_805FD98
|
|
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_80630D0
|
|
|
|
thumb_func_start sub_8063108
|
|
sub_8063108: @ 8063108
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80630D0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063128
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063108
|
|
|
|
thumb_func_start sub_8063128
|
|
sub_8063128: @ 8063128
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806313A
|
|
movs r0, 0
|
|
b _08063140
|
|
_0806313A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063140:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063128
|
|
|
|
thumb_func_start sub_8063148
|
|
sub_8063148: @ 8063148
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_80630D0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063168
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063148
|
|
|
|
thumb_func_start sub_8063168
|
|
sub_8063168: @ 8063168
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806317A
|
|
movs r0, 0
|
|
b _08063180
|
|
_0806317A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063180:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063168
|
|
|
|
thumb_func_start sub_8063188
|
|
sub_8063188: @ 8063188
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_80630D0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80631A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063188
|
|
|
|
thumb_func_start sub_80631A8
|
|
sub_80631A8: @ 80631A8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080631BA
|
|
movs r0, 0
|
|
b _080631C0
|
|
_080631BA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080631C0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80631A8
|
|
|
|
thumb_func_start sub_80631C8
|
|
sub_80631C8: @ 80631C8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_80630D0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80631E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80631C8
|
|
|
|
thumb_func_start sub_80631E8
|
|
sub_80631E8: @ 80631E8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080631FA
|
|
movs r0, 0
|
|
b _08063200
|
|
_080631FA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063200:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80631E8
|
|
|
|
thumb_func_start sub_8063208
|
|
sub_8063208: @ 8063208
|
|
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_8060D20
|
|
ldrb r0, [r4, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_805FDD8
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_805FE28
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8063208
|
|
|
|
thumb_func_start sub_8063238
|
|
sub_8063238: @ 8063238
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8063208
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063258
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063238
|
|
|
|
thumb_func_start sub_8063258
|
|
sub_8063258: @ 8063258
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806326A
|
|
movs r0, 0
|
|
b _08063270
|
|
_0806326A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063270:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063258
|
|
|
|
thumb_func_start sub_8063278
|
|
sub_8063278: @ 8063278
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_8063208
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063298
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063278
|
|
|
|
thumb_func_start sub_8063298
|
|
sub_8063298: @ 8063298
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080632AA
|
|
movs r0, 0
|
|
b _080632B0
|
|
_080632AA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080632B0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063298
|
|
|
|
thumb_func_start sub_80632B8
|
|
sub_80632B8: @ 80632B8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_8063208
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80632D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80632B8
|
|
|
|
thumb_func_start sub_80632D8
|
|
sub_80632D8: @ 80632D8
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080632EA
|
|
movs r0, 0
|
|
b _080632F0
|
|
_080632EA:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080632F0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80632D8
|
|
|
|
thumb_func_start sub_80632F8
|
|
sub_80632F8: @ 80632F8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_8063208
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063318
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80632F8
|
|
|
|
thumb_func_start sub_8063318
|
|
sub_8063318: @ 8063318
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0806332A
|
|
movs r0, 0
|
|
b _08063330
|
|
_0806332A:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063330:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063318
|
|
|
|
thumb_func_start sub_8063338
|
|
sub_8063338: @ 8063338
|
|
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_8060D20
|
|
ldrb r0, [r5, 0x18]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bl sub_805FDB8
|
|
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_8063338
|
|
|
|
thumb_func_start sub_8063370
|
|
sub_8063370: @ 8063370
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8063338
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063390
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063370
|
|
|
|
thumb_func_start sub_8063390
|
|
sub_8063390: @ 8063390
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080633A2
|
|
movs r0, 0
|
|
b _080633A8
|
|
_080633A2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080633A8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063390
|
|
|
|
thumb_func_start sub_80633B0
|
|
sub_80633B0: @ 80633B0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl sub_8063338
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80633D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633B0
|
|
|
|
thumb_func_start sub_80633D0
|
|
sub_80633D0: @ 80633D0
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080633E2
|
|
movs r0, 0
|
|
b _080633E8
|
|
_080633E2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_080633E8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633D0
|
|
|
|
thumb_func_start sub_80633F0
|
|
sub_80633F0: @ 80633F0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_8063338
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063410
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80633F0
|
|
|
|
thumb_func_start sub_8063410
|
|
sub_8063410: @ 8063410
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063422
|
|
movs r0, 0
|
|
b _08063428
|
|
_08063422:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063428:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063410
|
|
|
|
thumb_func_start sub_8063430
|
|
sub_8063430: @ 8063430
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl sub_8063338
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8063450
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063430
|
|
|
|
thumb_func_start sub_8063450
|
|
sub_8063450: @ 8063450
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
bl npc_obj_ministep_stop_on_arrival
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08063462
|
|
movs r0, 0
|
|
b _08063468
|
|
_08063462:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
_08063468:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8063450
|
|
|
|
thumb_func_start sub_8063470
|
|
sub_8063470: @ 8063470
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_8063470
|
|
|
|
thumb_func_start sub_8063474
|
|
sub_8063474: @ 8063474
|
|
adds r1, 0x2C
|
|
ldrb r0, [r1]
|
|
movs r2, 0x40
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_8063474
|
|
|
|
thumb_func_start npc_obj_transfer_image_anim_pause_flag
|
|
npc_obj_transfer_image_anim_pause_flag: @ 8063484
|
|
push {lr}
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _0806349A
|
|
adds r0, r1, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_0806349A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_obj_transfer_image_anim_pause_flag
|
|
|
|
thumb_func_start sub_80634A0
|
|
sub_80634A0: @ 80634A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r3, [r4, 0x1]
|
|
lsls r0, r3, 28
|
|
cmp r0, 0
|
|
bge _080634C8
|
|
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]
|
|
_080634C8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80634A0
|
|
|
|
thumb_func_start sub_80634D0
|
|
sub_80634D0: @ 80634D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_80634E8
|
|
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_80634D0
|
|
|
|
thumb_func_start sub_80634E8
|
|
sub_80634E8: @ 80634E8
|
|
push {r4-r6,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 r6, r0, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0806354C
|
|
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, _08063544 @ =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, _08063548 @ =gSpriteCoordOffsetY
|
|
adds r0, r1
|
|
ldrh r2, [r2]
|
|
adds r0, r2
|
|
b _08063574
|
|
.align 2, 0
|
|
_08063544: .4byte gSpriteCoordOffsetX
|
|
_08063548: .4byte gSpriteCoordOffsetY
|
|
_0806354C:
|
|
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
|
|
_08063574:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldrh r0, [r6, 0xA]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
bgt _0806359C
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080635A4
|
|
_0806359C:
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_080635A4:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xAF
|
|
bgt _080635B8
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080635C0
|
|
_080635B8:
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
_080635C0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80634E8
|
|
|
|
thumb_func_start npc_update_obj_anim_flag
|
|
npc_update_obj_anim_flag: @ 80635C8
|
|
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 _080635EA
|
|
movs r1, 0x4
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080635EA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end npc_update_obj_anim_flag
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|