pokeruby/asm/field_map_obj.s
2016-10-28 15:41:15 -07:00

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.