pokefirered/asm/event_object_movement.s
2020-03-02 13:34:34 -05:00

23949 lines
406 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start npc_clear_ids_and_state
npc_clear_ids_and_state: @ 805DE2C
push {r4,lr}
adds r4, r0, 0
movs r1, 0
movs r2, 0x24
bl memset
movs r0, 0xFF
strb r0, [r4, 0x8]
movs r0, 0x1
negs r0, r0
strb r0, [r4, 0x9]
strb r0, [r4, 0xA]
strb r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
thumb_func_end npc_clear_ids_and_state
thumb_func_start npcs_clear_ids_and_state
npcs_clear_ids_and_state: @ 805DE4C
push {r4,r5,lr}
movs r4, 0
ldr r5, _0805DE70 @ =gObjectEvents
_0805DE52:
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
adds r0, r5
bl npc_clear_ids_and_state
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0805DE52
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805DE70: .4byte gObjectEvents
thumb_func_end npcs_clear_ids_and_state
thumb_func_start sub_805DE74
sub_805DE74: @ 805DE74
push {lr}
bl strange_npc_table_clear
bl npcs_clear_ids_and_state
bl ClearPlayerAvatarInfo
bl sub_805DE8C
pop {r0}
bx r0
thumb_func_end sub_805DE74
thumb_func_start sub_805DE8C
sub_805DE8C: @ 805DE8C
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
ldr r0, _0805DF28 @ =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, _0805DF2C @ =gSprites
mov r10, r1
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
add r4, r10
ldrb r1, [r4, 0x1]
movs r5, 0x4
negs r5, r5
adds r0, r5, 0
ands r0, r1
movs r1, 0x1
mov r8, r1
mov r1, r8
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r4, 0
bl InitSpriteAffineAnim
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnim
adds r4, 0x3E
ldrb r0, [r4]
movs r6, 0x4
orrs r0, r6
strb r0, [r4]
mov r0, r9
movs r1, 0
movs r2, 0
movs r3, 0x1F
bl CreateSpriteAtEnd
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
add r4, r10
ldrb r0, [r4, 0x1]
ands r5, r0
mov r0, r8
orrs r5, r0
strb r5, [r4, 0x1]
adds r0, r4, 0
bl InitSpriteAffineAnim
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
adds r4, 0x3E
ldrb r0, [r4]
orrs r0, r6
strb r0, [r4]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0805DF28: .4byte gFieldEffectObjectTemplatePointers
_0805DF2C: .4byte gSprites
thumb_func_end sub_805DE8C
thumb_func_start GetIndexOfFirstInactiveObjectEvent
GetIndexOfFirstInactiveObjectEvent: @ 805DF30
push {lr}
movs r1, 0
ldr r2, _0805DF3C @ =gObjectEvents
ldrb r0, [r2]
b _0805DF54
.align 2, 0
_0805DF3C: .4byte gObjectEvents
_0805DF40:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bhi _0805DF5A
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0]
_0805DF54:
lsls r0, 31
cmp r0, 0
bne _0805DF40
_0805DF5A:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end GetIndexOfFirstInactiveObjectEvent
thumb_func_start GetObjectEventIdByLocalIdAndMap
GetObjectEventIdByLocalIdAndMap: @ 805DF60
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
cmp r0, 0xFE
bls _0805DF78
bl GetObjectEventIdByLocalId
b _0805DF7C
_0805DF78:
bl GetObjectEventIdByLocalIdAndMapInternal
_0805DF7C:
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end GetObjectEventIdByLocalIdAndMap
thumb_func_start TryGetObjectEventIdByLocalIdAndMap
TryGetObjectEventIdByLocalIdAndMap: @ 805DF84
push {r4,lr}
adds r4, r3, 0
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
bl GetObjectEventIdByLocalIdAndMap
strb r0, [r4]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x10
beq _0805DFA6
movs r0, 0
b _0805DFA8
_0805DFA6:
movs r0, 0x1
_0805DFA8:
pop {r4}
pop {r1}
bx r1
thumb_func_end TryGetObjectEventIdByLocalIdAndMap
thumb_func_start GetObjectEventIdByXY
GetObjectEventIdByXY: @ 805DFB0
push {r4-r6,lr}
movs r3, 0
ldr r5, _0805DFF0 @ =gObjectEvents
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r1, 16
_0805DFBE:
lsls r0, r3, 3
adds r0, r3
lsls r0, 2
adds r2, r0, r5
ldrb r0, [r2]
lsls r0, 31
cmp r0, 0
beq _0805DFDE
movs r6, 0x10
ldrsh r0, [r2, r6]
cmp r0, r4
bne _0805DFDE
movs r6, 0x12
ldrsh r0, [r2, r6]
cmp r0, r1
beq _0805DFE8
_0805DFDE:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xF
bls _0805DFBE
_0805DFE8:
adds r0, r3, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0805DFF0: .4byte gObjectEvents
thumb_func_end GetObjectEventIdByXY
thumb_func_start GetObjectEventIdByLocalIdAndMapInternal
GetObjectEventIdByLocalIdAndMapInternal: @ 805DFF4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r4, r1, 24
lsls r2, 24
lsrs r2, 24
movs r1, 0
ldr r6, _0805E02C @ =gObjectEvents
_0805E006:
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r3, r0, r6
ldrb r0, [r3]
lsls r0, 31
cmp r0, 0
beq _0805E030
ldrb r0, [r3, 0x8]
cmp r0, r5
bne _0805E030
ldrb r0, [r3, 0x9]
cmp r0, r4
bne _0805E030
ldrb r0, [r3, 0xA]
cmp r0, r2
bne _0805E030
adds r0, r1, 0
b _0805E03C
.align 2, 0
_0805E02C: .4byte gObjectEvents
_0805E030:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bls _0805E006
movs r0, 0x10
_0805E03C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GetObjectEventIdByLocalIdAndMapInternal
thumb_func_start GetObjectEventIdByLocalId
GetObjectEventIdByLocalId: @ 805E044
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r4, _0805E068 @ =gObjectEvents
_0805E04E:
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r1, r0, r4
ldrb r0, [r1]
lsls r0, 31
cmp r0, 0
beq _0805E06C
ldrb r0, [r1, 0x8]
cmp r0, r3
bne _0805E06C
adds r0, r2, 0
b _0805E078
.align 2, 0
_0805E068: .4byte gObjectEvents
_0805E06C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bls _0805E04E
movs r0, 0x10
_0805E078:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetObjectEventIdByLocalId
thumb_func_start sub_805E080
sub_805E080: @ 805E080
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
adds r5, r0, 0
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r6, r2, 24
movs r0, 0
mov r10, r0
mov r8, r0
mov r9, r0
movs r1, 0
str r1, [sp, 0x4]
str r0, [sp, 0x8]
ldrb r0, [r5, 0x2]
cmp r0, 0xFF
bne _0805E0DA
movs r1, 0x1
mov r10, r1
ldrb r4, [r5, 0x8]
ldrb r7, [r5, 0xC]
ldrb r6, [r5, 0xE]
ldrh r0, [r5, 0x4]
mov r8, r0
ldrh r5, [r5, 0x6]
mov r9, r5
mov r1, r8
str r1, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
adds r0, r6, 0
adds r1, r7, 0
bl Overworld_GetMapHeaderByGroupAndId
ldr r1, [r0, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
subs r0, 0x18
ldr r1, [r1, 0x4]
adds r5, r1, r0
_0805E0DA:
ldrb r0, [r5]
adds r1, r7, 0
adds r2, r6, 0
mov r3, sp
bl GetAvailableObjectEventSlot
lsls r0, 24
cmp r0, 0
bne _0805E106
ldr r1, [sp, 0x4]
lsls r2, r1, 16
asrs r2, 16
ldr r0, [sp, 0x8]
lsls r3, r0, 16
asrs r3, 16
adds r0, r5, 0
mov r1, r10
bl sub_805E238
lsls r0, 24
cmp r0, 0
bne _0805E10A
_0805E106:
movs r0, 0x10
b _0805E220
_0805E10A:
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805E13C @ =gObjectEvents
adds r4, r0, r1
adds r0, r4, 0
bl npc_clear_ids_and_state
mov r1, r10
cmp r1, 0
beq _0805E140
mov r1, r8
lsls r0, r1, 16
movs r1, 0xE0
lsls r1, 11
adds r0, r1
lsrs r3, r0, 16
mov r1, r9
lsls r0, r1, 16
movs r1, 0xE0
lsls r1, 11
adds r0, r1
b _0805E14E
.align 2, 0
_0805E13C: .4byte gObjectEvents
_0805E140:
ldrh r0, [r5, 0x4]
adds r0, 0x7
lsls r0, 16
lsrs r3, r0, 16
ldrh r0, [r5, 0x6]
adds r0, 0x7
lsls r0, 16
_0805E14E:
lsrs r2, r0, 16
ldrb r0, [r4]
movs r1, 0x1
orrs r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
ldrb r0, [r5, 0x1]
strb r0, [r4, 0x5]
ldrb r0, [r5, 0x9]
strb r0, [r4, 0x6]
ldrb r0, [r5]
strb r0, [r4, 0x8]
strb r7, [r4, 0x9]
strb r6, [r4, 0xA]
strh r3, [r4, 0xC]
strh r2, [r4, 0xE]
strh r3, [r4, 0x10]
strh r2, [r4, 0x12]
strh r3, [r4, 0x14]
strh r2, [r4, 0x16]
ldrb r0, [r5, 0x8]
movs r6, 0xF
adds r1, r6, 0
ands r1, r0
ldrb r2, [r4, 0xB]
movs r0, 0x10
negs r0, r0
mov r8, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0xB]
ldrb r1, [r5, 0x8]
lsls r1, 4
ands r0, r6
orrs r0, r1
strb r0, [r4, 0xB]
ldrb r1, [r5, 0xA]
lsls r1, 28
movs r0, 0xF
mov r9, r0
lsrs r1, 28
ldrb r2, [r4, 0x19]
mov r0, r8
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x19]
ldrb r1, [r5, 0xA]
lsrs r1, 4
lsls r1, 4
ands r0, r6
orrs r0, r1
strb r0, [r4, 0x19]
ldrh r0, [r5, 0xC]
strb r0, [r4, 0x7]
ldrh r0, [r5, 0xE]
strb r0, [r4, 0x1D]
ldr r1, _0805E230 @ =gInitialMovementTypeFacingDirections
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 ObjectEventSetDirection
adds r0, r4, 0
bl ObjectEventHandleDynamicGraphicsId
ldr r1, _0805E234 @ =gRangedMovementTypes
ldrb r0, [r4, 0x6]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0805E21C
ldrb r2, [r4, 0x19]
adds r0, r6, 0
ands r0, r2
cmp r0, 0
bne _0805E204
lsls r0, r2, 28
lsrs r0, 28
adds r0, 0x1
mov r1, r9
ands r0, r1
mov r1, r8
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x19]
_0805E204:
ldrb r2, [r4, 0x19]
movs r0, 0xF0
ands r0, r2
cmp r0, 0
bne _0805E21C
lsrs r1, r2, 4
adds r1, 0x1
lsls r1, 4
adds r0, r6, 0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x19]
_0805E21C:
mov r0, sp
ldrb r0, [r0]
_0805E220:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805E230: .4byte gInitialMovementTypeFacingDirections
_0805E234: .4byte gRangedMovementTypes
thumb_func_end sub_805E080
thumb_func_start sub_805E238
sub_805E238: @ 805E238
push {r4-r6,lr}
adds r6, r0, 0
lsls r1, 24
lsls r2, 16
lsrs r4, r2, 16
lsls r3, 16
lsrs r5, r3, 16
cmp r1, 0
beq _0805E25C
lsls r1, r4, 16
asrs r1, 16
lsls r2, r5, 16
asrs r2, 16
bl sub_805E27C
lsls r0, 24
cmp r0, 0
beq _0805E274
_0805E25C:
lsls r1, r4, 16
asrs r1, 16
lsls r2, r5, 16
asrs r2, 16
adds r0, r6, 0
bl sub_805E2E8
lsls r0, 24
cmp r0, 0
beq _0805E274
movs r0, 0x1
b _0805E276
_0805E274:
movs r0, 0
_0805E276:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_805E238
thumb_func_start sub_805E27C
sub_805E27C: @ 805E27C
push {r4,r5,lr}
lsls r1, 16
lsrs r3, r1, 16
lsls r2, 16
lsrs r4, r2, 16
adds r5, r4, 0
ldrb r0, [r0, 0x1]
subs r0, 0x5F
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0805E2DE
ldr r0, _0805E2B8 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r0, 0
ldrsh r1, [r2, r0]
lsls r0, r3, 16
asrs r3, r0, 16
cmp r1, r3
bge _0805E2BC
adds r0, r1, 0
adds r0, 0x8
cmp r0, r3
blt _0805E2DE
movs r0, 0x2
ldrsh r3, [r2, r0]
subs r1, r3, 0x6
lsls r0, r4, 16
b _0805E2CE
.align 2, 0
_0805E2B8: .4byte gSaveBlock1Ptr
_0805E2BC:
movs r1, 0
ldrsh r0, [r2, r1]
subs r0, 0x8
cmp r0, r3
bgt _0805E2DE
movs r0, 0x2
ldrsh r3, [r2, r0]
subs r1, r3, 0x6
lsls r0, r5, 16
_0805E2CE:
asrs r2, r0, 16
cmp r1, r2
bgt _0805E2DE
adds r0, r3, 0x6
cmp r0, r2
blt _0805E2DE
movs r0, 0
b _0805E2E0
_0805E2DE:
movs r0, 0x1
_0805E2E0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_805E27C
thumb_func_start sub_805E2E8
sub_805E2E8: @ 805E2E8
push {r4,r5,lr}
adds r4, r0, 0
bl GetCurrentMapType
lsls r0, 24
lsrs r0, 24
bl IsMapTypeOutdoors
lsls r0, 24
cmp r0, 0
beq _0805E37C
ldr r1, _0805E374 @ =VMap
ldr r0, [r1]
adds r3, r0, 0
subs r3, 0x10
ldr r0, [r1, 0x4]
adds r5, r0, 0
subs r5, 0xF
ldrb r0, [r4, 0x1]
subs r0, 0x5F
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0805E37C
ldr r0, _0805E378 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r2, 0
ldrsh r1, [r1, r2]
adds r2, r0, 0
cmp r1, 0
bne _0805E32E
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0x8
ble _0805E36A
_0805E32E:
ldr r0, [r2]
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, r3
bne _0805E344
movs r0, 0x4
ldrsh r1, [r4, r0]
adds r0, r3, 0
subs r0, 0x8
cmp r1, r0
bge _0805E36A
_0805E344:
ldr r0, [r2]
movs r1, 0x2
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0805E356
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0x6
ble _0805E36A
_0805E356:
ldr r0, [r2]
movs r2, 0x2
ldrsh r0, [r0, r2]
cmp r0, r5
bne _0805E37C
movs r0, 0x6
ldrsh r1, [r4, r0]
subs r0, r5, 0x6
cmp r1, r0
blt _0805E37C
_0805E36A:
adds r0, r4, 0
bl sub_805E384
movs r0, 0
b _0805E37E
.align 2, 0
_0805E374: .4byte VMap
_0805E378: .4byte gSaveBlock1Ptr
_0805E37C:
movs r0, 0x1
_0805E37E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_805E2E8
thumb_func_start sub_805E384
sub_805E384: @ 805E384
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x14]
subs r0, 0x11
lsls r0, 16
lsrs r0, 16
cmp r0, 0xE
bhi _0805E39A
ldrh r0, [r1, 0x14]
bl FlagSet
_0805E39A:
pop {r0}
bx r0
thumb_func_end sub_805E384
thumb_func_start sub_805E3A0
sub_805E3A0: @ 805E3A0
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _0805E3B8 @ =gMapHeader
ldr r0, [r0, 0x4]
cmp r0, 0
bne _0805E3CE
b _0805E404
.align 2, 0
_0805E3B8: .4byte gMapHeader
_0805E3BC:
ldr r0, [r7]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
adds r0, r4, 0
bl sub_805E080
lsls r0, 24
lsrs r0, 24
b _0805E406
_0805E3CE:
ldrb r6, [r0]
movs r5, 0
cmp r5, r6
bcs _0805E404
ldr r7, _0805E410 @ =gSaveBlock1Ptr
_0805E3D8:
lsls r0, r5, 1
adds r0, r5
lsls r0, 3
movs r1, 0x8E
lsls r1, 4
adds r0, r1
ldr r1, [r7]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, r8
bne _0805E3FA
ldrh r0, [r4, 0x14]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0805E3BC
_0805E3FA:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r6
bcc _0805E3D8
_0805E404:
movs r0, 0x10
_0805E406:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805E410: .4byte gSaveBlock1Ptr
thumb_func_end sub_805E3A0
thumb_func_start GetAvailableObjectEventSlot
GetAvailableObjectEventSlot: @ 805E414
push {r4-r7,lr}
mov r12, r3
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r5, r1, 24
lsls r2, 24
lsrs r4, r2, 24
movs r2, 0
ldr r1, _0805E470 @ =gObjectEvents
ldrb r0, [r1]
lsls r0, 31
adds r7, r1, 0
cmp r0, 0
beq _0805E468
adds r3, r1, 0
_0805E434:
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r1, r0, r3
ldrb r0, [r1, 0x8]
cmp r0, r6
bne _0805E44E
ldrb r0, [r1, 0x9]
cmp r0, r5
bne _0805E44E
ldrb r0, [r1, 0xA]
cmp r0, r4
beq _0805E46C
_0805E44E:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bhi _0805E46C
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r0, r7
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
bne _0805E434
_0805E468:
cmp r2, 0xF
bls _0805E474
_0805E46C:
movs r0, 0x1
b _0805E4A8
.align 2, 0
_0805E470: .4byte gObjectEvents
_0805E474:
mov r0, r12
strb r2, [r0]
ldr r1, _0805E4B0 @ =gObjectEvents
_0805E47A:
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r0, [r3]
lsls r0, 31
cmp r0, 0
beq _0805E49C
ldrb r0, [r3, 0x8]
cmp r0, r6
bne _0805E49C
ldrb r0, [r3, 0x9]
cmp r0, r5
bne _0805E49C
ldrb r0, [r3, 0xA]
cmp r0, r4
beq _0805E46C
_0805E49C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bls _0805E47A
movs r0, 0
_0805E4A8:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805E4B0: .4byte gObjectEvents
thumb_func_end GetAvailableObjectEventSlot
thumb_func_start RemoveObjectEvent
RemoveObjectEvent: @ 805E4B4
push {lr}
ldrb r2, [r0]
movs r1, 0x2
negs r1, r1
ands r1, r2
strb r1, [r0]
bl RemoveObjectEventInternal
pop {r0}
bx r0
thumb_func_end RemoveObjectEvent
thumb_func_start RemoveObjectEventByLocalIdAndMap
RemoveObjectEventByLocalIdAndMap: @ 805E4C8
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805E506
mov r0, sp
ldrb r0, [r0]
bl GetObjectEventFlagIdByObjectEventId
lsls r0, 16
lsrs r0, 16
bl FlagSet
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805E50C @ =gObjectEvents
adds r0, r1
bl RemoveObjectEvent
_0805E506:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0805E50C: .4byte gObjectEvents
thumb_func_end RemoveObjectEventByLocalIdAndMap
thumb_func_start RemoveObjectEventInternal
RemoveObjectEventInternal: @ 805E510
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
ldrb r0, [r4, 0x5]
bl GetObjectEventGraphicsInfo
ldrh r2, [r0, 0x6]
ldr r1, _0805E554 @ =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r1
orrs r0, r2
str r0, [sp, 0x4]
ldr r2, _0805E558 @ =gSprites
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r2, 0
adds r1, 0xC
adds r0, r1
mov r1, sp
str r1, [r0]
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
bl DestroySprite
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805E554: .4byte 0xffff0000
_0805E558: .4byte gSprites
thumb_func_end RemoveObjectEventInternal
thumb_func_start unref_sub_808D958
unref_sub_808D958: @ 805E55C
push {r4,lr}
movs r4, 0
_0805E560:
ldr r0, _0805E588 @ =gPlayerAvatar
ldrb r0, [r0, 0x5]
cmp r4, r0
beq _0805E576
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
ldr r1, _0805E58C @ =gObjectEvents
adds r0, r1
bl RemoveObjectEvent
_0805E576:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0805E560
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805E588: .4byte gPlayerAvatar
_0805E58C: .4byte gObjectEvents
thumb_func_end unref_sub_808D958
thumb_func_start sub_805E590
sub_805E590: @ 805E590
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r1, 0
adds r1, r2, 0
adds r2, r3, 0
ldr r3, [sp, 0x20]
ldr r4, [sp, 0x24]
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 16
lsrs r3, 16
mov r9, r3
lsls r4, 16
lsrs r4, 16
mov r10, r4
bl sub_805E080
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x10
bne _0805E5CA
movs r0, 0x10
b _0805E718
_0805E5CA:
mov r0, r8
lsls r4, r0, 3
adds r0, r4, r0
lsls r0, 2
ldr r1, _0805E5F4 @ =gObjectEvents
adds r5, r0, r1
ldrb r0, [r5, 0x5]
bl GetObjectEventGraphicsInfo
adds r6, r0, 0
ldrb r1, [r6, 0xC]
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _0805E5F8
ldrh r0, [r6, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadPlayerObjectReflectionPalette
b _0805E606
.align 2, 0
_0805E5F4: .4byte gObjectEvents
_0805E5F8:
cmp r0, 0xA
bne _0805E606
ldrh r0, [r6, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadSpecialObjectReflectionPalette
_0805E606:
ldrb r0, [r5, 0x6]
cmp r0, 0x4C
bne _0805E614
ldrb r0, [r5, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r5, 0x1]
_0805E614:
ldr r1, _0805E648 @ =0x0000ffff
adds r0, r1, 0
strh r0, [r7, 0x2]
adds r0, r7, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x40
bne _0805E650
ldr r0, _0805E64C @ =gObjectEvents
mov r2, r8
adds r1, r4, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1]
movs r0, 0x10
b _0805E718
.align 2, 0
_0805E648: .4byte 0x0000ffff
_0805E64C: .4byte gObjectEvents
_0805E650:
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _0805E728 @ =gSprites
adds r4, r0, r1
mov r1, r9
lsls r0, r1, 16
asrs r0, 16
ldrh r2, [r5, 0x10]
adds r0, r2
lsls r0, 16
asrs r0, 16
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
ldrh r2, [r5, 0x12]
adds r1, r2
lsls r1, 16
asrs r1, 16
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
bl sub_8063AD4
ldrh r0, [r6, 0x8]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r4, 0
adds r1, 0x28
strb r0, [r1]
ldrh r0, [r6, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r2, r4, 0
adds r2, 0x29
strb r0, [r2]
ldrh r0, [r4, 0x20]
adds r0, 0x8
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x22]
adds r1, 0x10
movs r0, 0
ldrsb r0, [r2, r0]
adds r0, r1
strh r0, [r4, 0x22]
ldrb r1, [r6, 0xC]
lsls r1, 28
lsrs r1, 24
ldrb r2, [r4, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
mov r0, r8
strh r0, [r4, 0x2E]
strb r7, [r5, 0x4]
ldrb r1, [r6, 0xC]
lsls r1, 25
lsrs r1, 31
lsls r1, 4
ldrb r2, [r5, 0x1]
movs r0, 0x11
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x1]
lsls r0, 27
cmp r0, 0
blt _0805E702
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_0805E702:
ldrb r0, [r5, 0xB]
lsrs r0, 4
adds r1, r4, 0
movs r2, 0x1
bl SetObjectSubpriorityByZCoord
adds r0, r5, 0
adds r1, r4, 0
bl sub_80679F8
mov r0, r8
_0805E718:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805E728: .4byte gSprites
thumb_func_end sub_805E590
thumb_func_start SpawnObjectEvent
SpawnObjectEvent: @ 805E72C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x2C
mov r9, r0
adds r6, r1, 0
mov r8, r2
adds r4, r3, 0
ldr r5, [sp, 0x48]
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
movs r0, 0
str r0, [sp, 0x20]
mov r1, r9
ldrb r0, [r1, 0x1]
bl GetObjectEventGraphicsInfo
adds r7, r0, 0
add r2, sp, 0x20
mov r0, r9
add r1, sp, 0x8
bl MakeObjectTemplateFromObjectEventTemplate
ldrh r3, [r7, 0x6]
ldr r2, _0805E7A4 @ =0xffff0000
add r1, sp, 0x24
ldr r0, [r1, 0x4]
ands r0, r2
orrs r0, r3
str r0, [r1, 0x4]
str r1, [sp, 0x14]
lsls r4, 16
asrs r4, 16
str r4, [sp]
lsls r5, 16
asrs r5, 16
str r5, [sp, 0x4]
mov r0, r9
add r1, sp, 0x8
adds r2, r6, 0
mov r3, r8
bl sub_805E590
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
cmp r2, 0x10
bne _0805E7A8
movs r0, 0x10
b _0805E7DE
.align 2, 0
_0805E7A4: .4byte 0xffff0000
_0805E7A8:
ldr r4, _0805E7EC @ =gSprites
ldr r1, _0805E7F0 @ =gObjectEvents
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0xC
adds r0, r1
ldr r1, [r7, 0x1C]
str r1, [r0]
ldr r2, [sp, 0x20]
cmp r2, 0
beq _0805E7DC
ldrb r1, [r3, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
adds r1, r2, 0
bl SetSubspriteTables
_0805E7DC:
adds r0, r5, 0
_0805E7DE:
add sp, 0x2C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805E7EC: .4byte gSprites
_0805E7F0: .4byte gObjectEvents
thumb_func_end SpawnObjectEvent
thumb_func_start SpawnSpecialObjectEvent
SpawnSpecialObjectEvent: @ 805E7F4
push {r4-r6,lr}
sub sp, 0x8
adds r5, r0, 0
mov r4, sp
adds r4, 0x6
add r0, sp, 0x4
adds r1, r4, 0
bl GetObjectEventMovingCameraOffset
ldr r0, _0805E82C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
add r0, sp, 0x4
movs r6, 0
ldrsh r3, [r0, r6]
movs r6, 0
ldrsh r0, [r4, r6]
str r0, [sp]
adds r0, r5, 0
bl SpawnObjectEvent
lsls r0, 24
lsrs r0, 24
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0805E82C: .4byte gSaveBlock1Ptr
thumb_func_end SpawnSpecialObjectEvent
thumb_func_start SpawnSpecialObjectEventParameterized
SpawnSpecialObjectEventParameterized: @ 805E830
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x18
ldr r4, [sp, 0x2C]
ldr r5, [sp, 0x30]
mov r8, r5
lsls r0, 24
lsrs r0, 24
lsls r3, 16
ldr r5, _0805E894 @ =0xfff90000
adds r3, r5
lsrs r3, 16
lsls r4, 16
adds r4, r5
lsrs r4, 16
mov r5, sp
movs r6, 0
strb r2, [r5]
mov r2, sp
strb r0, [r2, 0x1]
mov r0, sp
strb r6, [r0, 0x2]
movs r5, 0
strh r3, [r0, 0x4]
strh r4, [r0, 0x6]
mov r2, r8
strb r2, [r0, 0x8]
strb r1, [r0, 0x9]
mov r2, sp
ldrb r1, [r2, 0xA]
movs r0, 0x10
negs r0, r0
ands r0, r1
strb r0, [r2, 0xA]
mov r0, sp
strb r5, [r0, 0xA]
strh r6, [r0, 0xC]
strh r6, [r0, 0xE]
bl SpawnSpecialObjectEvent
lsls r0, 24
lsrs r0, 24
add sp, 0x18
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0805E894: .4byte 0xfff90000
thumb_func_end SpawnSpecialObjectEventParameterized
thumb_func_start TrySpawnObjectEvent
TrySpawnObjectEvent: @ 805E898
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r6, r2, 24
adds r1, r7, 0
adds r2, r6, 0
bl GetObjectEventTemplateByLocalIdAndMap
adds r5, r0, 0
cmp r5, 0
beq _0805E8DE
mov r4, sp
adds r4, 0x6
add r0, sp, 0x4
adds r1, r4, 0
bl GetObjectEventMovingCameraOffset
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 SpawnObjectEvent
lsls r0, 24
lsrs r0, 24
b _0805E8E0
_0805E8DE:
movs r0, 0x10
_0805E8E0:
add sp, 0x8
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end TrySpawnObjectEvent
thumb_func_start sub_805E8E8
sub_805E8E8: @ 805E8E8
push {r4-r7,lr}
adds r6, r1, 0
adds r4, r2, 0
adds r7, r3, 0
lsls r0, 24
lsrs r0, 24
bl GetObjectEventGraphicsInfo
adds r5, r0, 0
ldrh r0, [r5]
strh r0, [r4]
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x2]
ldr r0, [r5, 0x10]
str r0, [r4, 0x4]
ldr r0, [r5, 0x18]
str r0, [r4, 0x8]
ldr r0, [r5, 0x1C]
str r0, [r4, 0xC]
ldr r0, [r5, 0x20]
str r0, [r4, 0x10]
bl ScriptContext1_IsScriptSetUp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0805E934
bl sub_8112CAC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0805E934
ldr r0, _0805E930 @ =sub_811246C
str r0, [r4, 0x14]
b _0805E936
.align 2, 0
_0805E930: .4byte sub_811246C
_0805E934:
str r6, [r4, 0x14]
_0805E936:
ldr r0, [r5, 0x14]
str r0, [r7]
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_805E8E8
thumb_func_start MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex
MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex: @ 805E940
push {r4,lr}
lsls r0, 16
lsrs r0, 16
lsls r1, 16
ldr r4, _0805E95C @ =gMovementTypeCallbacks
lsrs r1, 14
adds r1, r4
ldr r1, [r1]
bl sub_805E8E8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805E95C: .4byte gMovementTypeCallbacks
thumb_func_end MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex
thumb_func_start MakeObjectTemplateFromObjectEventTemplate
MakeObjectTemplateFromObjectEventTemplate: @ 805E960
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r3, r2, 0
ldrb r0, [r4, 0x1]
ldrb r1, [r4, 0x9]
adds r2, r5, 0
bl MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end MakeObjectTemplateFromObjectEventTemplate
thumb_func_start AddPseudoObjectEvent
AddPseudoObjectEvent: @ 805E978
push {r4-r6,lr}
sub sp, 0x1C
ldr r4, [sp, 0x2C]
lsls r0, 16
lsrs r0, 16
lsls r2, 16
lsrs r6, r2, 16
lsls r3, 16
lsrs r5, r3, 16
lsls r4, 24
lsrs r4, 24
add r3, sp, 0x18
mov r2, sp
bl sub_805E8E8
mov r0, sp
ldrh r1, [r0, 0x2]
ldr r0, _0805E9F0 @ =0x0000ffff
cmp r1, r0
beq _0805E9A8
mov r0, sp
ldrh r0, [r0, 0x2]
bl sub_805F4B0
_0805E9A8:
lsls r1, r6, 16
asrs r1, 16
lsls r2, r5, 16
asrs r2, 16
mov r0, sp
adds r3, r4, 0
bl CreateSprite
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x40
beq _0805E9E4
ldr r1, [sp, 0x18]
cmp r1, 0
beq _0805E9E4
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
ldr r0, _0805E9F4 @ =gSprites
adds r4, r0
adds r0, r4, 0
bl SetSubspriteTables
adds r4, 0x42
ldrb r1, [r4]
movs r0, 0x3F
ands r0, r1
movs r1, 0x80
orrs r0, r1
strb r0, [r4]
_0805E9E4:
adds r0, r5, 0
add sp, 0x1C
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0805E9F0: .4byte 0x0000ffff
_0805E9F4: .4byte gSprites
thumb_func_end AddPseudoObjectEvent
thumb_func_start sprite_new
sprite_new: @ 805E9F8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
adds r5, r0, 0
ldr r0, [sp, 0x44]
ldr r4, [sp, 0x48]
lsls r5, 24
lsrs r5, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
add r1, sp, 0x18
mov r8, r1
strh r2, [r1]
mov r6, sp
adds r6, 0x1A
strh r3, [r6]
lsls r0, 24
lsrs r7, r0, 24
mov r9, r7
lsls r4, 24
lsrs r4, 24
str r4, [sp, 0x20]
adds r0, r5, 0
bl GetObjectEventGraphicsInfo
adds r4, r0, 0
ldr r1, _0805EB38 @ =UpdateObjectEventSpriteSubpriorityAndVisibility
add r3, sp, 0x1C
adds r0, r5, 0
mov r2, sp
bl sub_805E8E8
mov r1, sp
ldr r2, _0805EB3C @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1, 0x2]
mov r1, r8
movs r2, 0
ldrsh r0, [r1, r2]
adds r0, 0x7
strh r0, [r1]
movs r1, 0
ldrsh r0, [r6, r1]
adds r0, 0x7
strh r0, [r6]
mov r0, r8
adds r1, r6, 0
movs r2, 0x8
movs r3, 0x10
bl sub_8063BC4
mov r2, r8
movs r0, 0
ldrsh r1, [r2, r0]
movs r0, 0
ldrsh r2, [r6, r0]
mov r0, sp
movs r3, 0
bl CreateSpriteAtEnd
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x40
beq _0805EB24
lsls r0, r6, 4
adds r0, r6
lsls r0, 2
ldr r1, _0805EB40 @ =gSprites
adds r5, r0, r1
ldrh r0, [r4, 0x8]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r5, 0
adds r1, 0x28
strb r0, [r1]
ldrh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, 0x1
strb r0, [r1]
movs r0, 0
ldrsb r0, [r1, r0]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
ldrb r1, [r4, 0xC]
lsls r1, 28
lsrs r1, 24
ldrb r3, [r5, 0x5]
movs r2, 0xF
adds r0, r2, 0
ands r0, r3
orrs r0, r1
strb r0, [r5, 0x5]
adds r3, r5, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r1, 0x2
orrs r0, r1
strb r0, [r3]
mov r0, r10
strh r0, [r5, 0x2E]
strh r7, [r5, 0x30]
ldrb r1, [r4, 0xC]
ands r2, r1
cmp r2, 0xA
bne _0805EAE4
ldrh r0, [r4, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadSpecialObjectReflectionPalette
_0805EAE4:
ldr r1, [sp, 0x1C]
cmp r1, 0
beq _0805EB00
adds r0, r5, 0
bl SetSubspriteTables
adds r2, r5, 0
adds r2, 0x42
ldrb r0, [r2]
movs r1, 0x3F
ands r1, r0
movs r0, 0x80
orrs r1, r0
strb r1, [r2]
_0805EB00:
adds r0, r5, 0
mov r1, r9
bl InitObjectPriorityByZCoord
mov r0, r9
adds r1, r5, 0
movs r2, 0x1
bl SetObjectSubpriorityByZCoord
ldr r0, [sp, 0x20]
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_0805EB24:
adds r0, r6, 0
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805EB38: .4byte UpdateObjectEventSpriteSubpriorityAndVisibility
_0805EB3C: .4byte 0x0000ffff
_0805EB40: .4byte gSprites
thumb_func_end sprite_new
thumb_func_start sub_805EB44
sub_805EB44: @ 805EB44
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x1C
adds r6, r0, 0
adds r4, r2, 0
adds r5, r3, 0
lsls r6, 24
lsrs r6, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
bl GetObjectEventGraphicsInfo
adds r7, r0, 0
ldr r1, _0805EC24 @ =SpriteCallbackDummy
add r3, sp, 0x18
adds r0, r6, 0
mov r2, sp
bl sub_805E8E8
mov r1, sp
ldr r2, _0805EC28 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1, 0x2]
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
mov r0, sp
adds r1, r4, 0
adds r2, r5, 0
movs r3, 0
bl CreateSpriteAtEnd
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x40
beq _0805EC14
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
ldr r1, _0805EC2C @ =gSprites
adds r4, r0, r1
ldrh r0, [r7, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r4, 0
adds r1, 0x29
strb r0, [r1]
movs r0, 0
ldrsb r0, [r1, r0]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrb r1, [r7, 0xC]
lsls r1, 28
lsrs r1, 24
ldrb r3, [r4, 0x5]
movs r2, 0xF
adds r0, r2, 0
ands r0, r3
orrs r0, r1
strb r0, [r4, 0x5]
mov r0, r8
strh r0, [r4, 0x2E]
ldrb r1, [r7, 0xC]
ands r2, r1
cmp r2, 0xA
bne _0805EBE6
ldrh r0, [r7, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadSpecialObjectReflectionPalette
_0805EBE6:
ldr r1, [sp, 0x18]
cmp r1, 0
beq _0805EC02
adds r0, r4, 0
bl SetSubspriteTables
adds r2, r4, 0
adds r2, 0x42
ldrb r0, [r2]
movs r1, 0x3F
ands r1, r0
movs r0, 0x80
orrs r1, r0
strb r1, [r2]
_0805EC02:
movs r0, 0x1
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_0805EC14:
adds r0, r5, 0
add sp, 0x1C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805EC24: .4byte SpriteCallbackDummy
_0805EC28: .4byte 0x0000ffff
_0805EC2C: .4byte gSprites
thumb_func_end sub_805EB44
thumb_func_start sub_805EC30
sub_805EC30: @ 805EC30
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x4]
lsls r1, 16
lsrs r1, 16
str r1, [sp, 0x8]
ldr r0, _0805ED08 @ =gMapHeader
ldr r3, [r0, 0x4]
cmp r3, 0
beq _0805ECF8
ldr r7, _0805ED0C @ =gSaveBlock1Ptr
ldr r2, [r7]
ldrh r1, [r2]
subs r0, r1, 0x2
lsls r0, 16
lsrs r4, r0, 16
adds r1, 0x11
lsls r1, 16
lsrs r1, 16
str r1, [sp, 0xC]
ldrh r1, [r2, 0x2]
adds r0, r1, 0
adds r0, 0x10
lsls r0, 16
lsrs r0, 16
mov r10, r0
ldrb r3, [r3]
str r3, [sp, 0x10]
movs r5, 0
cmp r5, r3
bcs _0805ECF8
lsls r0, r1, 16
asrs r0, 16
mov r9, r0
lsls r0, r4, 16
asrs r0, 16
mov r8, r0
_0805EC86:
lsls r0, r5, 1
adds r0, r5
lsls r0, 3
movs r1, 0x8E
lsls r1, 4
adds r0, r1
ldr r1, [r7]
adds r4, r1, r0
ldrh r0, [r4, 0x4]
adds r0, 0x7
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r4, 0x6]
adds r0, 0x7
lsls r0, 16
asrs r1, r0, 16
cmp r9, r1
bgt _0805ECEC
mov r3, r10
lsls r0, r3, 16
asrs r0, 16
cmp r0, r1
blt _0805ECEC
lsls r0, r2, 16
asrs r1, r0, 16
cmp r8, r1
bgt _0805ECEC
ldr r6, [sp, 0xC]
lsls r0, r6, 16
asrs r0, 16
cmp r0, r1
blt _0805ECEC
ldrh r0, [r4, 0x14]
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _0805ECEC
ldr r0, [r7]
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
ldr r0, [sp, 0x4]
lsls r3, r0, 16
ldr r6, [sp, 0x8]
lsls r0, r6, 16
asrs r0, 16
str r0, [sp]
adds r0, r4, 0
asrs r3, 16
bl SpawnObjectEvent
_0805ECEC:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldr r0, [sp, 0x10]
cmp r5, r0
bcc _0805EC86
_0805ECF8:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805ED08: .4byte gMapHeader
_0805ED0C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805EC30
thumb_func_start RemoveObjectEventsOutsideView
RemoveObjectEventsOutsideView: @ 805ED10
push {r4-r6,lr}
movs r3, 0
ldr r6, _0805ED64 @ =gUnknown_2031DEC
_0805ED16:
movs r2, 0
movs r4, 0
adds r5, r3, 0x1
_0805ED1C:
lsls r0, r2, 2
adds r1, r0, r6
ldrb r0, [r1]
cmp r0, 0
beq _0805ED2E
ldrb r1, [r1, 0x2]
cmp r3, r1
bne _0805ED2E
movs r4, 0x1
_0805ED2E:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _0805ED1C
cmp r4, 0
bne _0805ED56
lsls r0, r3, 3
adds r0, r3
lsls r0, 2
ldr r1, _0805ED68 @ =gObjectEvents
adds r2, r0, r1
ldr r0, [r2]
ldr r1, _0805ED6C @ =0x00010001
ands r0, r1
cmp r0, 0x1
bne _0805ED56
adds r0, r2, 0
bl RemoveObjectEventIfOutsideView
_0805ED56:
lsls r0, r5, 24
lsrs r3, r0, 24
cmp r3, 0xF
bls _0805ED16
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0805ED64: .4byte gUnknown_2031DEC
_0805ED68: .4byte gObjectEvents
_0805ED6C: .4byte 0x00010001
thumb_func_end RemoveObjectEventsOutsideView
thumb_func_start RemoveObjectEventIfOutsideView
RemoveObjectEventIfOutsideView: @ 805ED70
push {r4-r7,lr}
adds r3, r0, 0
ldr r0, _0805EDEC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldrh r0, [r2]
subs r1, r0, 0x2
lsls r1, 16
adds r0, 0x11
lsls r0, 16
lsrs r5, r0, 16
ldrh r4, [r2, 0x2]
adds r0, r4, 0
adds r0, 0x10
lsls r0, 16
lsrs r6, r0, 16
movs r0, 0x10
ldrsh r2, [r3, r0]
lsrs r7, r1, 16
asrs r1, 16
cmp r2, r1
blt _0805EDB6
lsls r0, r5, 16
asrs r0, 16
cmp r2, r0
bgt _0805EDB6
movs r0, 0x12
ldrsh r1, [r3, r0]
lsls r0, r4, 16
asrs r0, 16
cmp r1, r0
blt _0805EDB6
lsls r0, r6, 16
asrs r0, 16
cmp r1, r0
ble _0805EDE4
_0805EDB6:
movs r0, 0xC
ldrsh r1, [r3, r0]
lsls r0, r7, 16
asrs r0, 16
cmp r1, r0
blt _0805EDDE
lsls r0, r5, 16
asrs r0, 16
cmp r1, r0
bgt _0805EDDE
movs r0, 0xE
ldrsh r1, [r3, r0]
lsls r0, r4, 16
asrs r0, 16
cmp r1, r0
blt _0805EDDE
lsls r0, r6, 16
asrs r0, 16
cmp r1, r0
ble _0805EDE4
_0805EDDE:
adds r0, r3, 0
bl RemoveObjectEvent
_0805EDE4:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805EDEC: .4byte gSaveBlock1Ptr
thumb_func_end RemoveObjectEventIfOutsideView
thumb_func_start sub_805EDF0
sub_805EDF0: @ 805EDF0
push {r4-r7,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
bl ClearPlayerAvatarInfo
movs r6, 0
ldr r7, _0805EE38 @ =gObjectEvents
lsls r4, 16
lsls r5, 16
_0805EE0A:
lsls r0, r6, 3
adds r0, r6
lsls r0, 2
adds r0, r7
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
beq _0805EE24
adds r0, r6, 0
asrs r1, r4, 16
asrs r2, r5, 16
bl sub_805EE3C
_0805EE24:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0xF
bls _0805EE0A
bl sub_805DE8C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805EE38: .4byte gObjectEvents
thumb_func_end sub_805EDF0
thumb_func_start sub_805EE3C
sub_805EE3C: @ 805EE3C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 16
lsrs r1, 16
mov r9, r1
lsls r2, 16
lsrs r2, 16
mov r10, r2
movs r7, 0
ldr r2, _0805EFE0 @ =gUnknown_2031DEC
_0805EE5E:
lsls r0, r7, 2
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
beq _0805EE70
ldrb r1, [r1, 0x2]
cmp r8, r1
bne _0805EE70
b _0805EFCE
_0805EE70:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x3
bls _0805EE5E
mov r1, r8
lsls r0, r1, 3
add r0, r8
lsls r0, 2
ldr r1, _0805EFE4 @ =gObjectEvents
adds r6, r0, r1
movs r0, 0
str r0, [sp, 0x20]
ldrb r0, [r6, 0x5]
bl GetObjectEventGraphicsInfo
adds r5, r0, 0
ldrh r2, [r5, 0x6]
ldr r1, _0805EFE8 @ =0xffff0000
add r4, sp, 0x18
ldr r0, [r4, 0x4]
ands r0, r1
orrs r0, r2
str r0, [r4, 0x4]
ldrb r0, [r6, 0x5]
ldrb r1, [r6, 0x6]
add r3, sp, 0x20
mov r2, sp
bl MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex
str r4, [sp, 0xC]
mov r0, sp
ldr r2, _0805EFEC @ =0x0000ffff
adds r4, r2, 0
strh r4, [r0, 0x2]
ldrb r1, [r5, 0xC]
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _0805EECA
ldrh r0, [r5, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadPlayerObjectReflectionPalette
_0805EECA:
ldrb r0, [r5, 0xC]
lsls r1, r0, 28
lsrs r0, r1, 28
cmp r0, 0x9
bls _0805EEDC
ldrh r0, [r5, 0x2]
lsrs r1, 28
bl LoadSpecialObjectReflectionPalette
_0805EEDC:
mov r0, sp
strh r4, [r0, 0x2]
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x40
beq _0805EFCE
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
ldr r1, _0805EFF0 @ =gSprites
adds r4, r0, r1
mov r1, r9
lsls r0, r1, 16
asrs r0, 16
ldrh r2, [r6, 0x10]
adds r0, r2
lsls r0, 16
asrs r0, 16
mov r2, r10
lsls r1, r2, 16
asrs r1, 16
ldrh r2, [r6, 0x12]
adds r1, r2
lsls r1, 16
asrs r1, 16
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
bl sub_8063AD4
ldrh r0, [r5, 0x8]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r4, 0
adds r1, 0x28
strb r0, [r1]
ldrh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r2, r4, 0
adds r2, 0x29
strb r0, [r2]
ldrh r0, [r4, 0x20]
adds r0, 0x8
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x22]
adds r1, 0x10
movs r0, 0
ldrsb r0, [r2, r0]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, [r5, 0x1C]
str r0, [r4, 0xC]
ldrb r0, [r6, 0x6]
cmp r0, 0xB
bne _0805EF6A
mov r0, r8
adds r1, r7, 0
bl SetPlayerAvatarObjectEventIdAndObjectId
bl CreateWarpArrowSprite
strb r0, [r6, 0x1B]
_0805EF6A:
ldr r1, [sp, 0x20]
cmp r1, 0
beq _0805EF76
adds r0, r4, 0
bl SetSubspriteTables
_0805EF76:
ldrb r1, [r5, 0xC]
lsls r1, 28
lsrs r1, 24
ldrb r2, [r4, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
mov r0, r8
strh r0, [r4, 0x2E]
strb r7, [r6, 0x4]
ldrb r0, [r6, 0x1]
lsls r0, 27
cmp r0, 0
blt _0805EFBC
ldrb r0, [r6, 0x6]
cmp r0, 0xB
beq _0805EFBC
ldrb r0, [r6, 0x18]
lsls r0, 28
lsrs r0, 28
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_0805EFBC:
adds r0, r6, 0
bl sub_805EFF4
ldrb r0, [r6, 0xB]
lsrs r0, 4
adds r1, r4, 0
movs r2, 0x1
bl SetObjectSubpriorityByZCoord
_0805EFCE:
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805EFE0: .4byte gUnknown_2031DEC
_0805EFE4: .4byte gObjectEvents
_0805EFE8: .4byte 0xffff0000
_0805EFEC: .4byte 0x0000ffff
_0805EFF0: .4byte gSprites
thumb_func_end sub_805EE3C
thumb_func_start sub_805EFF4
sub_805EFF4: @ 805EFF4
push {lr}
ldrb r2, [r0]
movs r3, 0x3
negs r3, r3
adds r1, r3, 0
ands r1, r2
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r2, [r0, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r2
ands r1, r3
movs r2, 0x5
negs r2, r2
ands r1, r2
subs r2, 0x4
ands r1, r2
subs r2, 0x8
ands r1, r2
subs r2, 0x10
ands r1, r2
strb r1, [r0, 0x2]
bl ObjectEventClearAnim
pop {r0}
bx r0
thumb_func_end sub_805EFF4
thumb_func_start SetPlayerAvatarObjectEventIdAndObjectId
SetPlayerAvatarObjectEventIdAndObjectId: @ 805F02C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _0805F058 @ =gPlayerAvatar
strb r0, [r5, 0x5]
strb r1, [r5, 0x4]
ldr r1, _0805F05C @ =gObjectEvents
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
adds r4, r1
ldrb r0, [r4, 0x5]
bl sub_805C824
strb r0, [r5, 0x7]
ldrb r0, [r4, 0x5]
movs r1, 0x20
bl SetPlayerAvatarExtraStateTransition
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805F058: .4byte gPlayerAvatar
_0805F05C: .4byte gObjectEvents
thumb_func_end SetPlayerAvatarObjectEventIdAndObjectId
thumb_func_start ObjectEventSetGraphicsId
ObjectEventSetGraphicsId: @ 805F060
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
str r1, [sp]
adds r0, r1, 0
bl GetObjectEventGraphicsInfo
adds r5, r0, 0
ldrb r1, [r6, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0805F1CC @ =gSprites
adds r4, r0, r1
ldrb r1, [r5, 0xC]
movs r0, 0xF
mov r8, r0
ands r0, r1
cmp r0, 0
bne _0805F09E
ldrh r0, [r5, 0x2]
lsls r1, 28
lsrs r1, 28
bl PatchObjectPalette
_0805F09E:
ldrb r1, [r5, 0xC]
mov r0, r8
ands r0, r1
cmp r0, 0xA
bne _0805F0B2
ldrh r0, [r5, 0x2]
lsls r1, 28
lsrs r1, 28
bl LoadSpecialObjectReflectionPalette
_0805F0B2:
ldr r0, [r4, 0xC]
ldrh r0, [r0, 0x4]
lsrs r0, 5
lsls r0, 24
lsrs r0, 24
mov r10, r0
adds r7, r4, 0
adds r7, 0x3F
ldrb r1, [r7]
movs r2, 0x40
mov r9, r2
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0805F0D6
adds r0, r4, 0
bl sub_80075C0
_0805F0D6:
ldr r0, [r5, 0x10]
ldrb r2, [r0, 0x1]
lsrs r2, 6
lsls r2, 6
ldrb r3, [r4, 0x1]
movs r1, 0x3F
adds r0, r1, 0
ands r0, r3
orrs r0, r2
strb r0, [r4, 0x1]
ldr r0, [r5, 0x10]
ldrb r0, [r0, 0x3]
lsrs r0, 6
lsls r0, 6
ldrb r2, [r4, 0x3]
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x3]
ldr r3, [r5, 0x1C]
str r3, [r4, 0xC]
ldr r0, [r5, 0x18]
str r0, [r4, 0x8]
ldr r0, [r5, 0x14]
str r0, [r4, 0x18]
ldrb r1, [r5, 0xC]
lsls r1, 28
lsrs r1, 24
ldrb r2, [r4, 0x5]
mov r0, r8
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
ldrb r1, [r7]
mov r0, r9
ands r0, r1
cmp r0, 0
bne _0805F152
ldrh r0, [r3, 0x4]
lsrs r0, 5
lsls r0, 24
lsrs r0, 24
bl AllocSpriteTiles
lsls r0, 16
asrs r2, r0, 16
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _0805F142
mov r0, r10
bl AllocSpriteTiles
lsls r0, 16
asrs r2, r0, 16
_0805F142:
ldr r1, _0805F1D0 @ =0x000003ff
adds r0, r1, 0
ands r2, r0
ldrh r1, [r4, 0x4]
ldr r0, _0805F1D4 @ =0xfffffc00
ands r0, r1
orrs r0, r2
strh r0, [r4, 0x4]
_0805F152:
ldrb r1, [r5, 0xC]
lsls r1, 25
lsrs r1, 31
lsls r1, 4
ldrb r2, [r6, 0x1]
movs r0, 0x11
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r6, 0x1]
mov r2, sp
ldrb r2, [r2]
strb r2, [r6, 0x5]
movs r1, 0x10
ldrsh r0, [r6, r1]
movs r2, 0x12
ldrsh r1, [r6, r2]
adds r2, r4, 0
adds r2, 0x20
adds r3, r4, 0
adds r3, 0x22
bl SetSpritePosToMapCoords
ldrh r0, [r5, 0x8]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r4, 0
adds r1, 0x28
strb r0, [r1]
ldrh r0, [r5, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r2, r4, 0
adds r2, 0x29
strb r0, [r2]
ldrh r0, [r4, 0x20]
adds r0, 0x8
strh r0, [r4, 0x20]
ldrh r1, [r4, 0x22]
adds r1, 0x10
movs r0, 0
ldrsb r0, [r2, r0]
adds r0, r1
strh r0, [r4, 0x22]
ldrb r0, [r6, 0x1]
lsrs r0, 7
cmp r0, 0
beq _0805F1BA
bl CameraObjectReset1
_0805F1BA:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805F1CC: .4byte gSprites
_0805F1D0: .4byte 0x000003ff
_0805F1D4: .4byte 0xfffffc00
thumb_func_end ObjectEventSetGraphicsId
thumb_func_start ObjectEventSetGraphicsIdByLocalIdAndMap
ObjectEventSetGraphicsIdByLocalIdAndMap: @ 805F1D8
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r4, r3, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F20C
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805F214 @ =gObjectEvents
adds r0, r1
adds r1, r4, 0
bl ObjectEventSetGraphicsId
_0805F20C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805F214: .4byte gObjectEvents
thumb_func_end ObjectEventSetGraphicsIdByLocalIdAndMap
thumb_func_start ObjectEventTurn
ObjectEventTurn: @ 805F218
push {r4-r6,lr}
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
bl ObjectEventSetDirection
ldrb r0, [r6, 0x1]
lsls r0, 27
cmp r0, 0
blt _0805F25E
ldrb r0, [r6, 0x4]
lsls r4, r0, 4
adds r4, r0
lsls r4, 2
ldr r5, _0805F264 @ =gSprites
adds r4, r5
ldrb r0, [r6, 0x18]
lsls r0, 28
lsrs r0, 28
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
ldrb r1, [r6, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0
bl SeekSpriteAnim
_0805F25E:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0805F264: .4byte gSprites
thumb_func_end ObjectEventTurn
thumb_func_start ObjectEventTurnByLocalIdAndMap
ObjectEventTurnByLocalIdAndMap: @ 805F268
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r4, r3, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F29C
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805F2A4 @ =gObjectEvents
adds r0, r1
adds r1, r4, 0
bl ObjectEventTurn
_0805F29C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805F2A4: .4byte gObjectEvents
thumb_func_end ObjectEventTurnByLocalIdAndMap
thumb_func_start PlayerObjectTurn
PlayerObjectTurn: @ 805F2A8
push {lr}
lsls r1, 24
lsrs r1, 24
ldrb r2, [r0, 0x5]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0805F2C4 @ =gObjectEvents
adds r0, r2
bl ObjectEventTurn
pop {r0}
bx r0
.align 2, 0
_0805F2C4: .4byte gObjectEvents
thumb_func_end PlayerObjectTurn
thumb_func_start GetObjectEventGraphicsInfo
GetObjectEventGraphicsInfo: @ 805F2C8
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xEF
bls _0805F2E0
adds r0, r1, 0
adds r0, 0x10
lsls r0, 24
lsrs r0, 24
bl VarGetObjectEventGraphicsId
adds r1, r0, 0
_0805F2E0:
cmp r1, 0x97
bls _0805F2E6
movs r1, 0x10
_0805F2E6:
ldr r0, _0805F2F4 @ =gObjectEventGraphicsInfoPointers
lsls r1, 2
adds r1, r0
ldr r0, [r1]
pop {r1}
bx r1
.align 2, 0
_0805F2F4: .4byte gObjectEventGraphicsInfoPointers
thumb_func_end GetObjectEventGraphicsInfo
thumb_func_start ObjectEventHandleDynamicGraphicsId
ObjectEventHandleDynamicGraphicsId: @ 805F2F8
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x5]
cmp r0, 0xEF
bls _0805F30E
adds r0, 0x10
lsls r0, 24
lsrs r0, 24
bl VarGetObjectEventGraphicsId
strb r0, [r4, 0x5]
_0805F30E:
pop {r4}
pop {r0}
bx r0
thumb_func_end ObjectEventHandleDynamicGraphicsId
thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20
npc_by_local_id_and_map_set_field_1_bit_x20: @ 805F314
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r4, r3, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F356
ldr r2, _0805F360 @ =gObjectEvents
mov r0, sp
ldrb r0, [r0]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0x1
adds r2, r4, 0
ands r2, r0
lsls r2, 5
ldrb r3, [r1, 0x1]
movs r0, 0x21
negs r0, r0
ands r0, r3
orrs r0, r2
strb r0, [r1, 0x1]
_0805F356:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805F360: .4byte gObjectEvents
thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20
thumb_func_start ObjectEventGetLocalIdAndMap
ObjectEventGetLocalIdAndMap: @ 805F364
push {r4,lr}
ldrb r4, [r0, 0x8]
strb r4, [r1]
ldrb r1, [r0, 0x9]
strb r1, [r2]
ldrb r0, [r0, 0xA]
strb r0, [r3]
pop {r4}
pop {r0}
bx r0
thumb_func_end ObjectEventGetLocalIdAndMap
thumb_func_start sub_805F378
sub_805F378: @ 805F378
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl GetObjectEventIdByXY
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x10
beq _0805F3A0
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805F3A4 @ =gObjectEvents
adds r0, r1
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_0805F3A0:
pop {r0}
bx r0
.align 2, 0
_0805F3A4: .4byte gObjectEvents
thumb_func_end sub_805F378
thumb_func_start sub_805F3A8
sub_805F3A8: @ 805F3A8
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r4, r3, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F3EE
mov r0, sp
ldrb r0, [r0]
lsls r2, r0, 3
adds r2, r0
lsls r2, 2
ldr r0, _0805F3F8 @ =gObjectEvents
adds r2, r0
ldrb r1, [r2, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0805F3FC @ =gSprites
adds r0, r1
ldrb r1, [r2, 0x3]
movs r3, 0x4
orrs r1, r3
strb r1, [r2, 0x3]
adds r0, 0x43
strb r4, [r0]
_0805F3EE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805F3F8: .4byte gObjectEvents
_0805F3FC: .4byte gSprites
thumb_func_end sub_805F3A8
thumb_func_start sub_805F400
sub_805F400: @ 805F400
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F43C
mov r0, sp
ldrb r0, [r0]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _0805F444 @ =gObjectEvents
adds r1, r0
ldrb r2, [r1, 0x3]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1, 0x3]
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
_0805F43C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0805F444: .4byte gObjectEvents
thumb_func_end sub_805F400
thumb_func_start sub_805F448
sub_805F448: @ 805F448
push {r4,r5,lr}
sub sp, 0x4
ldr r4, [sp, 0x10]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 16
lsrs r5, r3, 16
lsls r4, 16
lsrs r4, 16
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F48C
ldr r2, _0805F494 @ =gObjectEvents
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0805F498 @ =gSprites
adds r0, r1
strh r5, [r0, 0x24]
strh r4, [r0, 0x26]
_0805F48C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805F494: .4byte gObjectEvents
_0805F498: .4byte gSprites
thumb_func_end sub_805F448
thumb_func_start gpu_pal_allocator_reset__manage_upper_four
gpu_pal_allocator_reset__manage_upper_four: @ 805F49C
push {lr}
bl FreeAllSpritePalettes
ldr r1, _0805F4AC @ =gReservedSpritePaletteCount
movs r0, 0xC
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0805F4AC: .4byte gReservedSpritePaletteCount
thumb_func_end gpu_pal_allocator_reset__manage_upper_four
thumb_func_start sub_805F4B0
sub_805F4B0: @ 805F4B0
push {lr}
lsls r0, 16
lsrs r0, 16
bl FindObjectEventPaletteIndexByTag
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _0805F4D4 @ =0x000011ff
cmp r1, r0
beq _0805F4CE
lsls r0, r1, 3
ldr r1, _0805F4D8 @ =gObjectEventSpritePalettes
adds r0, r1
bl sub_805F510
_0805F4CE:
pop {r0}
bx r0
.align 2, 0
_0805F4D4: .4byte 0x000011ff
_0805F4D8: .4byte gObjectEventSpritePalettes
thumb_func_end sub_805F4B0
thumb_func_start sub_805F4DC
sub_805F4DC: @ 805F4DC
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
ldrh r0, [r5]
ldr r1, _0805F50C @ =0x000011ff
cmp r0, r1
beq _0805F506
adds r6, r1, 0
_0805F4EC:
lsls r0, r4, 1
adds r0, r5
ldrh r0, [r0]
bl sub_805F4B0
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 1
adds r0, r5
ldrh r0, [r0]
cmp r0, r6
bne _0805F4EC
_0805F506:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0805F50C: .4byte 0x000011ff
thumb_func_end sub_805F4DC
thumb_func_start sub_805F510
sub_805F510: @ 805F510
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _0805F52E
adds r0, r4, 0
bl LoadSpritePalette
lsls r0, 24
lsrs r0, 24
b _0805F530
_0805F52E:
movs r0, 0xFF
_0805F530:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_805F510
thumb_func_start PatchObjectPalette
PatchObjectPalette: @ 805F538
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r4, 24
lsrs r4, 24
bl FindObjectEventPaletteIndexByTag
lsls r0, 24
ldr r1, _0805F570 @ =gObjectEventSpritePalettes
lsrs r0, 21
adds r0, r1
ldr r0, [r0]
lsls r1, r4, 20
movs r2, 0x80
lsls r2, 17
adds r1, r2
lsrs r1, 16
movs r2, 0x20
bl LoadPalette
adds r0, r4, 0
bl sub_8083598
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805F570: .4byte gObjectEventSpritePalettes
thumb_func_end PatchObjectPalette
thumb_func_start pal_patch_for_npc_range
pal_patch_for_npc_range: @ 805F574
push {r4-r6,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r4, r1, 24
lsls r2, 24
lsrs r6, r2, 24
cmp r4, r6
bcs _0805F598
_0805F584:
ldrh r0, [r5]
adds r1, r4, 0
bl PatchObjectPalette
adds r5, 0x2
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r6
bcc _0805F584
_0805F598:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end pal_patch_for_npc_range
thumb_func_start FindObjectEventPaletteIndexByTag
FindObjectEventPaletteIndexByTag: @ 805F5A0
push {r4-r6,lr}
lsls r0, 16
lsrs r5, r0, 16
movs r2, 0
ldr r0, _0805F5C8 @ =gObjectEventSpritePalettes
ldrh r1, [r0, 0x4]
ldr r3, _0805F5CC @ =0x000011ff
adds r4, r0, 0
cmp r1, r3
beq _0805F5E0
adds r6, r4, 0
adds r1, r3, 0
_0805F5B8:
lsls r0, r2, 3
adds r0, r6
ldrh r0, [r0, 0x4]
cmp r0, r5
bne _0805F5D0
adds r0, r2, 0
b _0805F5E2
.align 2, 0
_0805F5C8: .4byte gObjectEventSpritePalettes
_0805F5CC: .4byte 0x000011ff
_0805F5D0:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 3
adds r0, r4
ldrh r0, [r0, 0x4]
cmp r0, r1
bne _0805F5B8
_0805F5E0:
movs r0, 0xFF
_0805F5E2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end FindObjectEventPaletteIndexByTag
thumb_func_start LoadPlayerObjectReflectionPalette
LoadPlayerObjectReflectionPalette: @ 805F5E8
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r5, r1, 24
adds r0, r4, 0
adds r1, r5, 0
bl PatchObjectPalette
movs r3, 0
ldr r1, _0805F630 @ =gUnknown_83A5208
ldrh r0, [r1]
ldr r2, _0805F634 @ =0x000011ff
cmp r0, r2
beq _0805F650
ldr r0, _0805F638 @ =gReflectionEffectPaletteMap
adds r5, r0
adds r6, r2, 0
_0805F60C:
lsls r2, r3, 3
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, r4
bne _0805F640
adds r1, 0x4
adds r1, r2, r1
ldr r0, _0805F63C @ =gUnknown_2037098
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
ldrb r1, [r5]
bl PatchObjectPalette
b _0805F650
.align 2, 0
_0805F630: .4byte gUnknown_83A5208
_0805F634: .4byte 0x000011ff
_0805F638: .4byte gReflectionEffectPaletteMap
_0805F63C: .4byte gUnknown_2037098
_0805F640:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r1
ldrh r0, [r0]
cmp r0, r6
bne _0805F60C
_0805F650:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end LoadPlayerObjectReflectionPalette
thumb_func_start LoadSpecialObjectReflectionPalette
LoadSpecialObjectReflectionPalette: @ 805F658
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _0805F6A4 @ =gUnknown_203709A
strh r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl PatchObjectPalette
movs r3, 0
ldr r1, _0805F6A8 @ =gUnknown_83A5278
ldrh r0, [r1]
ldr r2, _0805F6AC @ =0x000011ff
cmp r0, r2
beq _0805F6C8
ldr r0, _0805F6B0 @ =gReflectionEffectPaletteMap
adds r5, r0
adds r6, r2, 0
_0805F680:
lsls r2, r3, 3
adds r0, r2, r1
ldrh r0, [r0]
cmp r0, r4
bne _0805F6B8
adds r1, 0x4
adds r1, r2, r1
ldr r0, _0805F6B4 @ =gUnknown_2037098
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
ldrb r1, [r5]
bl PatchObjectPalette
b _0805F6C8
.align 2, 0
_0805F6A4: .4byte gUnknown_203709A
_0805F6A8: .4byte gUnknown_83A5278
_0805F6AC: .4byte 0x000011ff
_0805F6B0: .4byte gReflectionEffectPaletteMap
_0805F6B4: .4byte gUnknown_2037098
_0805F6B8:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r1
ldrh r0, [r0]
cmp r0, r6
bne _0805F680
_0805F6C8:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end LoadSpecialObjectReflectionPalette
thumb_func_start sub_805F6D0
sub_805F6D0: @ 805F6D0
lsls r0, 24
lsrs r0, 24
ldr r1, _0805F6DC @ =gReflectionEffectPaletteMap
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0805F6DC: .4byte gReflectionEffectPaletteMap
thumb_func_end sub_805F6D0
thumb_func_start unref_sub_808EAC4
unref_sub_808EAC4: @ 805F6E0
push {r4,lr}
ldrh r3, [r0, 0x10]
strh r3, [r0, 0x14]
ldrh r4, [r0, 0x12]
strh r4, [r0, 0x16]
lsls r1, 16
asrs r1, 16
adds r1, r3
strh r1, [r0, 0x10]
lsls r2, 16
asrs r2, 16
adds r2, r4
strh r2, [r0, 0x12]
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_808EAC4
thumb_func_start npc_coords_shift
npc_coords_shift: @ 805F700
ldrh r3, [r0, 0x10]
strh r3, [r0, 0x14]
ldrh r3, [r0, 0x12]
strh r3, [r0, 0x16]
strh r1, [r0, 0x10]
strh r2, [r0, 0x12]
bx lr
thumb_func_end npc_coords_shift
thumb_func_start npc_coords_set
npc_coords_set: @ 805F710
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
strh r1, [r0, 0x14]
strh r2, [r0, 0x16]
strh r1, [r0, 0x10]
strh r2, [r0, 0x12]
bx lr
thumb_func_end npc_coords_set
thumb_func_start sub_805F724
sub_805F724: @ 805F724
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
adds r5, r2, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
ldrb r1, [r6, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0805F7C0 @ =gSprites
adds r7, r0, r1
ldrb r0, [r6, 0x5]
bl GetObjectEventGraphicsInfo
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 SetSpritePosToMapCoords
mov r1, r8
ldrh r0, [r1, 0x8]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r1, r7, 0
adds r1, 0x28
strb r0, [r1]
mov r2, r8
ldrh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 17
negs r0, r0
adds r2, r7, 0
adds r2, 0x29
strb r0, [r2]
ldrh r0, [r7, 0x20]
adds r0, 0x8
strh r0, [r7, 0x20]
ldrh r1, [r7, 0x22]
adds r1, 0x10
movs r0, 0
ldrsb r0, [r2, r0]
adds r0, r1
strh r0, [r7, 0x22]
adds r0, r6, 0
bl sub_805EFF4
ldrb r0, [r6, 0x1]
lsrs r0, 7
cmp r0, 0
beq _0805F7B6
bl CameraObjectReset1
_0805F7B6:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0805F7C0: .4byte gSprites
thumb_func_end sub_805F724
thumb_func_start sub_805F7C4
sub_805F7C4: @ 805F7C4
push {r4,r5,lr}
sub sp, 0x4
ldr r4, [sp, 0x10]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 16
lsrs r5, r3, 16
lsls r4, 16
lsrs r4, 16
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805F80C
lsls r1, r5, 16
lsls r2, r4, 16
mov r0, sp
ldrb r3, [r0]
lsls r0, r3, 3
adds r0, r3
lsls r0, 2
ldr r3, _0805F814 @ =gObjectEvents
adds r0, r3
movs r3, 0xE0
lsls r3, 11
adds r1, r3
asrs r1, 16
adds r2, r3
asrs r2, 16
bl sub_805F724
_0805F80C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805F814: .4byte gObjectEvents
thumb_func_end sub_805F7C4
thumb_func_start npc_coords_shift_still
npc_coords_shift_still: @ 805F818
push {lr}
movs r2, 0x10
ldrsh r1, [r0, r2]
movs r3, 0x12
ldrsh r2, [r0, r3]
bl npc_coords_shift
pop {r0}
bx r0
thumb_func_end npc_coords_shift_still
thumb_func_start UpdateObjectEventCoordsForCameraUpdate
UpdateObjectEventCoordsForCameraUpdate: @ 805F82C
push {r4,r5,lr}
ldr r2, _0805F88C @ =gCamera
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0805F884
movs r3, 0
ldr r5, _0805F890 @ =gObjectEvents
movs r0, 0x4
ldrsh r4, [r2, r0]
movs r0, 0x8
ldrsh r1, [r2, r0]
_0805F846:
lsls r0, r3, 3
adds r0, r3
lsls r0, 2
adds r2, r0, r5
ldrb r0, [r2]
lsls r0, 31
cmp r0, 0
beq _0805F87A
ldrh r0, [r2, 0xC]
subs r0, r4
strh r0, [r2, 0xC]
ldrh r0, [r2, 0xE]
subs r0, r1
strh r0, [r2, 0xE]
ldrh r0, [r2, 0x10]
subs r0, r4
strh r0, [r2, 0x10]
ldrh r0, [r2, 0x12]
subs r0, r1
strh r0, [r2, 0x12]
ldrh r0, [r2, 0x14]
subs r0, r4
strh r0, [r2, 0x14]
ldrh r0, [r2, 0x16]
subs r0, r1
strh r0, [r2, 0x16]
_0805F87A:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xF
bls _0805F846
_0805F884:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805F88C: .4byte gCamera
_0805F890: .4byte gObjectEvents
thumb_func_end UpdateObjectEventCoordsForCameraUpdate
thumb_func_start GetObjectEventIdByXYZ
GetObjectEventIdByXYZ: @ 805F894
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r7, r0, 16
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 24
lsrs r5, r2, 24
movs r4, 0
ldr r0, _0805F8E0 @ =gObjectEvents
mov r8, r0
_0805F8AC:
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
mov r2, r8
adds r1, r0, r2
ldrb r0, [r1]
lsls r0, 31
cmp r0, 0
beq _0805F8E4
movs r2, 0x10
ldrsh r0, [r1, r2]
cmp r0, r7
bne _0805F8E4
movs r2, 0x12
ldrsh r0, [r1, r2]
cmp r0, r6
bne _0805F8E4
adds r0, r1, 0
adds r1, r5, 0
bl ObjectEventDoesZCoordMatch
lsls r0, 24
cmp r0, 0
beq _0805F8E4
adds r0, r4, 0
b _0805F8F0
.align 2, 0
_0805F8E0: .4byte gObjectEvents
_0805F8E4:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _0805F8AC
movs r0, 0x10
_0805F8F0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetObjectEventIdByXYZ
thumb_func_start ObjectEventDoesZCoordMatch
ObjectEventDoesZCoordMatch: @ 805F8FC
push {lr}
lsls r1, 24
lsrs r1, 24
ldrb r2, [r0, 0xB]
movs r0, 0xF
ands r0, r2
cmp r0, 0
beq _0805F91C
cmp r1, 0
beq _0805F91C
lsls r0, r2, 28
lsrs r0, 28
cmp r0, r1
beq _0805F91C
movs r0, 0
b _0805F91E
_0805F91C:
movs r0, 0x1
_0805F91E:
pop {r1}
bx r1
thumb_func_end ObjectEventDoesZCoordMatch
thumb_func_start UpdateObjectEventsForCameraUpdate
UpdateObjectEventsForCameraUpdate: @ 805F924
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
bl UpdateObjectEventCoordsForCameraUpdate
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
adds r0, r4, 0
adds r1, r5, 0
bl sub_805EC30
bl RemoveObjectEventsOutsideView
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end UpdateObjectEventsForCameraUpdate
thumb_func_start AddCameraObject
AddCameraObject: @ 805F950
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0805F98C @ =gUnknown_835B944
movs r1, 0
movs r2, 0
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, _0805F990 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
movs r2, 0x3E
adds r2, r1
mov r12, r2
ldrb r2, [r2]
movs r3, 0x4
orrs r2, r3
mov r3, r12
strb r2, [r3]
strh r4, [r1, 0x2E]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0805F98C: .4byte gUnknown_835B944
_0805F990: .4byte gSprites
thumb_func_end AddCameraObject
thumb_func_start ObjectCB_CameraObject
ObjectCB_CameraObject: @ 805F994
push {r4,r5,lr}
sub sp, 0xC
mov r2, sp
ldr r1, _0805F9B8 @ =gUnknown_835B95C
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
movs r2, 0x30
ldrsh r1, [r0, r2]
lsls r1, 2
add r1, sp
ldr r1, [r1]
bl _call_via_r1
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805F9B8: .4byte gUnknown_835B95C
thumb_func_end ObjectCB_CameraObject
thumb_func_start CameraObject_0
CameraObject_0: @ 805F9BC
push {lr}
ldr r3, _0805F9F4 @ =gSprites
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
ldrh r1, [r1, 0x20]
strh r1, [r0, 0x20]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
ldrh r1, [r1, 0x22]
strh r1, [r0, 0x22]
adds r3, r0, 0
adds r3, 0x3E
ldrb r1, [r3]
movs r2, 0x4
orrs r1, r2
strb r1, [r3]
movs r1, 0x1
strh r1, [r0, 0x30]
bl CameraObject_1
pop {r0}
bx r0
.align 2, 0
_0805F9F4: .4byte gSprites
thumb_func_end CameraObject_0
thumb_func_start CameraObject_1
CameraObject_1: @ 805F9F8
push {r4,r5,lr}
ldr r3, _0805FA2C @ =gSprites
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
ldrh r3, [r1, 0x22]
ldrh r2, [r0, 0x20]
ldrh r4, [r1, 0x20]
movs r5, 0x20
ldrsh r1, [r1, r5]
subs r1, r2
strh r1, [r0, 0x32]
ldrh r2, [r0, 0x22]
lsls r1, r3, 16
asrs r1, 16
subs r1, r2
strh r1, [r0, 0x34]
strh r4, [r0, 0x20]
strh r3, [r0, 0x22]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805FA2C: .4byte gSprites
thumb_func_end CameraObject_1
thumb_func_start CameraObject_2
CameraObject_2: @ 805FA30
push {r4,lr}
ldr r4, _0805FA5C @ =gSprites
movs r1, 0x2E
ldrsh r2, [r0, r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x20]
movs r3, 0
strh r1, [r0, 0x20]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldrh r1, [r1, 0x22]
strh r1, [r0, 0x22]
strh r3, [r0, 0x32]
strh r3, [r0, 0x34]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805FA5C: .4byte gSprites
thumb_func_end CameraObject_2
thumb_func_start FindCameraObject
FindCameraObject: @ 805FA60
push {r4,r5,lr}
movs r3, 0
ldr r4, _0805FA8C @ =gSprites
adds r5, r4, 0
adds r5, 0x1C
_0805FA6A:
lsls r0, r3, 4
adds r0, r3
lsls r1, r0, 2
adds r2, r1, r4
adds r0, r2, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
beq _0805FA94
adds r0, r1, r5
ldr r1, [r0]
ldr r0, _0805FA90 @ =ObjectCB_CameraObject
cmp r1, r0
bne _0805FA94
adds r0, r2, 0
b _0805FAA0
.align 2, 0
_0805FA8C: .4byte gSprites
_0805FA90: .4byte ObjectCB_CameraObject
_0805FA94:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3F
bls _0805FA6A
movs r0, 0
_0805FAA0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FindCameraObject
thumb_func_start CameraObjectReset1
CameraObjectReset1: @ 805FAA8
push {lr}
bl FindCameraObject
adds r2, r0, 0
cmp r2, 0
beq _0805FAC0
movs r0, 0
strh r0, [r2, 0x30]
ldr r1, [r2, 0x1C]
adds r0, r2, 0
bl _call_via_r1
_0805FAC0:
pop {r0}
bx r0
thumb_func_end CameraObjectReset1
thumb_func_start CameraObjectSetFollowedObjectId
CameraObjectSetFollowedObjectId: @ 805FAC4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl FindCameraObject
cmp r0, 0
beq _0805FAD8
strh r4, [r0, 0x2E]
bl CameraObjectReset1
_0805FAD8:
pop {r4}
pop {r0}
bx r0
thumb_func_end CameraObjectSetFollowedObjectId
thumb_func_start CameraObjectGetFollowedObjectId
CameraObjectGetFollowedObjectId: @ 805FAE0
push {lr}
bl FindCameraObject
cmp r0, 0
beq _0805FAF2
ldrh r0, [r0, 0x2E]
lsls r0, 24
lsrs r0, 24
b _0805FAF4
_0805FAF2:
movs r0, 0x40
_0805FAF4:
pop {r1}
bx r1
thumb_func_end CameraObjectGetFollowedObjectId
thumb_func_start CameraObjectReset2
CameraObjectReset2: @ 805FAF8
push {lr}
bl FindCameraObject
movs r1, 0x2
strh r1, [r0, 0x30]
pop {r0}
bx r0
thumb_func_end CameraObjectReset2
thumb_func_start CopySprite
CopySprite: @ 805FB08
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r12, r0
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 16
lsrs r6, r2, 16
lsls r3, 24
lsrs r7, r3, 24
movs r5, 0
ldr r1, _0805FB50 @ =gSprites
_0805FB22:
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
bne _0805FB54
adds r0, r4, 0
mov r1, r12
movs r2, 0x44
bl memcpy
mov r0, r8
strh r0, [r4, 0x20]
strh r6, [r4, 0x22]
adds r0, r4, 0
adds r0, 0x43
strb r7, [r0]
b _0805FB5E
.align 2, 0
_0805FB50: .4byte gSprites
_0805FB54:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3F
bls _0805FB22
_0805FB5E:
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CopySprite
thumb_func_start CreateCopySpriteAt
CreateCopySpriteAt: @ 805FB6C
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r12, r0
lsls r1, 16
lsrs r1, 16
mov r8, r1
lsls r2, 16
lsrs r6, r2, 16
lsls r3, 24
lsrs r7, r3, 24
movs r5, 0x3F
ldr r3, _0805FBC0 @ =gSprites
movs r2, 0x1
negs r2, r2
_0805FB8A:
lsls r0, r5, 16
asrs r1, r0, 16
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r0, r3
adds r0, r4, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
bne _0805FBC4
adds r0, r4, 0
mov r1, r12
movs r2, 0x44
bl memcpy
mov r0, r8
strh r0, [r4, 0x20]
strh r6, [r4, 0x22]
adds r0, r4, 0
adds r0, 0x43
strb r7, [r0]
lsls r0, r5, 24
lsrs r0, 24
b _0805FBD2
.align 2, 0
_0805FBC0: .4byte gSprites
_0805FBC4:
subs r0, r1, 0x1
lsls r0, 16
lsrs r5, r0, 16
asrs r0, 16
cmp r0, r2
bgt _0805FB8A
movs r0, 0x40
_0805FBD2:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CreateCopySpriteAt
thumb_func_start ObjectEventSetDirection
ObjectEventSetDirection: @ 805FBDC
push {r4,lr}
adds r3, r0, 0
lsls r1, 24
lsrs r2, r1, 24
adds r4, r2, 0
ldrb r0, [r3, 0x18]
lsls r0, 28
lsrs r0, 28
adds r1, r3, 0
adds r1, 0x20
strb r0, [r1]
ldrb r0, [r3, 0x1]
lsls r0, 30
cmp r0, 0
blt _0805FC0C
movs r0, 0xF
adds r1, r2, 0
ands r1, r0
ldrb r2, [r3, 0x18]
movs r0, 0x10
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x18]
_0805FC0C:
lsls r2, r4, 4
ldrb r1, [r3, 0x18]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x18]
pop {r4}
pop {r0}
bx r0
thumb_func_end ObjectEventSetDirection
thumb_func_start GetObjectEventScriptPointerByLocalIdAndMap
GetObjectEventScriptPointerByLocalIdAndMap: @ 805FC20
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
bl GetObjectEventTemplateByLocalIdAndMap
ldr r0, [r0, 0x10]
pop {r1}
bx r1
thumb_func_end GetObjectEventScriptPointerByLocalIdAndMap
thumb_func_start GetObjectEventScriptPointerByObjectEventId
GetObjectEventScriptPointerByObjectEventId: @ 805FC38
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0805FC58 @ =gObjectEvents
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 GetObjectEventScriptPointerByLocalIdAndMap
pop {r1}
bx r1
.align 2, 0
_0805FC58: .4byte gObjectEvents
thumb_func_end GetObjectEventScriptPointerByObjectEventId
thumb_func_start GetObjectEventFlagIdByLocalIdAndMap
GetObjectEventFlagIdByLocalIdAndMap: @ 805FC5C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
bl GetObjectEventTemplateByLocalIdAndMap
ldrh r0, [r0, 0x14]
pop {r1}
bx r1
thumb_func_end GetObjectEventFlagIdByLocalIdAndMap
thumb_func_start GetObjectEventFlagIdByObjectEventId
GetObjectEventFlagIdByObjectEventId: @ 805FC74
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0805FC98 @ =gObjectEvents
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 GetObjectEventFlagIdByLocalIdAndMap
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_0805FC98: .4byte gObjectEvents
thumb_func_end GetObjectEventFlagIdByObjectEventId
thumb_func_start sub_805FC9C
sub_805FC9C: @ 805FC9C
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805FCD0
ldr r2, _0805FCCC @ =gObjectEvents
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x7]
b _0805FCD2
.align 2, 0
_0805FCCC: .4byte gObjectEvents
_0805FCD0:
movs r0, 0xFF
_0805FCD2:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_805FC9C
thumb_func_start sub_805FCD8
sub_805FCD8: @ 805FCD8
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
bl GetObjectEventTemplateByLocalIdAndMap
ldrh r0, [r0, 0xC]
pop {r1}
bx r1
thumb_func_end sub_805FCD8
thumb_func_start sub_805FCF0
sub_805FCF0: @ 805FCF0
lsls r0, 24
lsrs r0, 24
ldr r2, _0805FD04 @ =gObjectEvents
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x7]
bx lr
.align 2, 0
_0805FD04: .4byte gObjectEvents
thumb_func_end sub_805FCF0
thumb_func_start sub_805FD08
sub_805FD08: @ 805FD08
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805FD3C
ldr r2, _0805FD38 @ =gObjectEvents
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x1D]
b _0805FD3E
.align 2, 0
_0805FD38: .4byte gObjectEvents
_0805FD3C:
movs r0, 0xFF
_0805FD3E:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_805FD08
thumb_func_start ObjectEventGetBerryTreeId
ObjectEventGetBerryTreeId: @ 805FD44
lsls r0, 24
lsrs r0, 24
ldr r2, _0805FD58 @ =gObjectEvents
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x1D]
bx lr
.align 2, 0
_0805FD58: .4byte gObjectEvents
thumb_func_end ObjectEventGetBerryTreeId
thumb_func_start GetObjectEventTemplateByLocalIdAndMap
GetObjectEventTemplateByLocalIdAndMap: @ 805FD5C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r3, r1, 24
lsls r2, 24
lsrs r2, 24
ldr r0, _0805FD8C @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x5
ldrsb r0, [r1, r0]
cmp r0, r3
bne _0805FD94
movs r0, 0x4
ldrsb r0, [r1, r0]
cmp r0, r2
bne _0805FD94
movs r0, 0x8E
lsls r0, 4
adds r1, r0
ldr r0, _0805FD90 @ =gMapHeader
ldr r0, [r0, 0x4]
b _0805FDA0
.align 2, 0
_0805FD8C: .4byte gSaveBlock1Ptr
_0805FD90: .4byte gMapHeader
_0805FD94:
adds r0, r2, 0
adds r1, r3, 0
bl Overworld_GetMapHeaderByGroupAndId
ldr r0, [r0, 0x4]
ldr r1, [r0, 0x4]
_0805FDA0:
ldrb r2, [r0]
adds r0, r4, 0
bl FindObjectEventTemplateInArrayByLocalId
pop {r4}
pop {r1}
bx r1
thumb_func_end GetObjectEventTemplateByLocalIdAndMap
thumb_func_start FindObjectEventTemplateInArrayByLocalId
FindObjectEventTemplateInArrayByLocalId: @ 805FDB0
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 24
lsrs r4, r0, 24
lsls r2, 24
lsrs r2, 24
movs r1, 0
cmp r1, r2
bcs _0805FDDE
_0805FDC2:
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r3, r0, r5
ldrb r0, [r3]
cmp r0, r4
bne _0805FDD4
adds r0, r3, 0
b _0805FDE0
_0805FDD4:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r2
bcc _0805FDC2
_0805FDDE:
movs r0, 0
_0805FDE0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FindObjectEventTemplateInArrayByLocalId
thumb_func_start sub_805FDE8
sub_805FDE8: @ 805FDE8
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
ldrb r0, [r4, 0x9]
ldr r1, _0805FE0C @ =gSaveBlock1Ptr
ldr r2, [r1]
movs r1, 0x5
ldrsb r1, [r2, r1]
cmp r0, r1
bne _0805FE50
ldrb r1, [r4, 0xA]
movs r0, 0x4
ldrsb r0, [r2, r0]
cmp r1, r0
beq _0805FE18
b _0805FE50
.align 2, 0
_0805FE0C: .4byte gSaveBlock1Ptr
_0805FE10:
mov r1, r8
adds r0, r5, r1
adds r0, r3, r0
b _0805FE52
_0805FE18:
movs r6, 0
adds r3, r2, 0
movs r0, 0x8E
lsls r0, 4
mov r8, r0
ldrb r0, [r4, 0x8]
mov r12, r0
mov r0, r8
adds r2, r3, r0
movs r5, 0
adds r7, r1, 0
_0805FE2E:
ldrb r1, [r2]
cmp r12, r1
bne _0805FE46
ldrb r1, [r4, 0x9]
movs r0, 0x5
ldrsb r0, [r3, r0]
cmp r1, r0
bne _0805FE46
movs r0, 0x4
ldrsb r0, [r3, r0]
cmp r7, r0
beq _0805FE10
_0805FE46:
adds r2, 0x18
adds r5, 0x18
adds r6, 0x1
cmp r6, 0x3F
ble _0805FE2E
_0805FE50:
movs r0, 0
_0805FE52:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_805FDE8
thumb_func_start OverrideTemplateCoordsForObjectEvent
OverrideTemplateCoordsForObjectEvent: @ 805FE5C
push {r4,lr}
adds r4, r0, 0
bl sub_805FDE8
adds r1, r0, 0
cmp r1, 0
beq _0805FE76
ldrh r0, [r4, 0x10]
subs r0, 0x7
strh r0, [r1, 0x4]
ldrh r0, [r4, 0x12]
subs r0, 0x7
strh r0, [r1, 0x6]
_0805FE76:
pop {r4}
pop {r0}
bx r0
thumb_func_end OverrideTemplateCoordsForObjectEvent
thumb_func_start TryOverrideTemplateCoordsForObjectEvent
TryOverrideTemplateCoordsForObjectEvent: @ 805FE7C
push {r4,lr}
lsls r1, 24
lsrs r4, r1, 24
bl sub_805FDE8
cmp r0, 0
beq _0805FE8C
strb r4, [r0, 0x9]
_0805FE8C:
pop {r4}
pop {r0}
bx r0
thumb_func_end TryOverrideTemplateCoordsForObjectEvent
thumb_func_start sub_805FE94
sub_805FE94: @ 805FE94
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0805FEC2
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805FEC8 @ =gObjectEvents
adds r0, r1
bl OverrideTemplateCoordsForObjectEvent
_0805FEC2:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0805FEC8: .4byte gObjectEvents
thumb_func_end sub_805FE94
thumb_func_start npc_paltag_set_load
npc_paltag_set_load: @ 805FECC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl gpu_pal_allocator_reset__manage_upper_four
ldr r1, _0805FF04 @ =gUnknown_203709A
ldr r2, _0805FF08 @ =0x000011ff
adds r0, r2, 0
strh r0, [r1]
ldr r2, _0805FF0C @ =gUnknown_2037098
strb r4, [r2]
cmp r4, 0x1
bne _0805FF18
ldr r1, _0805FF10 @ =gUnknown_83A5330
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
movs r2, 0x6
bl pal_patch_for_npc_range
ldr r1, _0805FF14 @ =gReservedSpritePaletteCount
movs r0, 0x8
strb r0, [r1]
b _0805FF2A
.align 2, 0
_0805FF04: .4byte gUnknown_203709A
_0805FF08: .4byte 0x000011ff
_0805FF0C: .4byte gUnknown_2037098
_0805FF10: .4byte gUnknown_83A5330
_0805FF14: .4byte gReservedSpritePaletteCount
_0805FF18:
ldr r0, _0805FF30 @ =gUnknown_83A5330
ldrb r1, [r2]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
movs r1, 0
movs r2, 0xA
bl pal_patch_for_npc_range
_0805FF2A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805FF30: .4byte gUnknown_83A5330
thumb_func_end npc_paltag_set_load
thumb_func_start GetObjectPaletteTag
GetObjectPaletteTag: @ 805FF34
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x9
bhi _0805FF70
ldr r1, _0805FF50 @ =gUnknown_83A5330
ldr r0, _0805FF54 @ =gUnknown_2037098
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
lsls r0, r2, 1
b _0805FF64
.align 2, 0
_0805FF50: .4byte gUnknown_83A5330
_0805FF54: .4byte gUnknown_2037098
_0805FF58:
adds r1, r4, 0x4
adds r1, r2, r1
ldr r0, _0805FF6C @ =gUnknown_2037098
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 1
_0805FF64:
adds r0, r1
ldrh r0, [r0]
b _0805FFA2
.align 2, 0
_0805FF6C: .4byte gUnknown_2037098
_0805FF70:
movs r3, 0
ldr r0, _0805FFA8 @ =gUnknown_83A5278
ldrh r1, [r0]
ldr r2, _0805FFAC @ =0x000011ff
adds r4, r0, 0
cmp r1, r2
beq _0805FFA0
adds r6, r4, 0
ldr r0, _0805FFB0 @ =gUnknown_203709A
ldrh r1, [r0]
adds r5, r2, 0
_0805FF86:
lsls r2, r3, 3
adds r0, r2, r6
ldrh r0, [r0]
cmp r0, r1
beq _0805FF58
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r4
ldrh r0, [r0]
cmp r0, r5
bne _0805FF86
_0805FFA0:
ldr r0, _0805FFAC @ =0x000011ff
_0805FFA2:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0805FFA8: .4byte gUnknown_83A5278
_0805FFAC: .4byte 0x000011ff
_0805FFB0: .4byte gUnknown_203709A
thumb_func_end GetObjectPaletteTag
thumb_func_start sub_805FFB4
sub_805FFB4: @ 805FFB4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0805FFD0 @ =gObjectEvents
adds r0, r2
ldr r2, _0805FFD4 @ =sub_805FFD8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0805FFD0: .4byte gObjectEvents
_0805FFD4: .4byte sub_805FFD8
thumb_func_end sub_805FFB4
thumb_func_start sub_805FFD8
sub_805FFD8: @ 805FFD8
movs r0, 0
bx lr
thumb_func_end sub_805FFD8
thumb_func_start sub_805FFDC
sub_805FFDC: @ 805FFDC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0805FFF8 @ =gObjectEvents
adds r0, r2
ldr r2, _0805FFFC @ =sub_8060000
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0805FFF8: .4byte gObjectEvents
_0805FFFC: .4byte sub_8060000
thumb_func_end sub_805FFDC
thumb_func_start sub_8060000
sub_8060000: @ 8060000
push {r4,lr}
ldr r3, _0806001C @ =gUnknown_83A6018
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806001C: .4byte gUnknown_83A6018
thumb_func_end sub_8060000
thumb_func_start sub_8060020
sub_8060020: @ 8060020
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806003C @ =gObjectEvents
adds r0, r2
ldr r2, _08060040 @ =sub_8060044
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806003C: .4byte gObjectEvents
_08060040: .4byte sub_8060044
thumb_func_end sub_8060020
thumb_func_start sub_8060044
sub_8060044: @ 8060044
push {r4,lr}
ldr r3, _08060060 @ =gUnknown_83A6034
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060060: .4byte gUnknown_83A6034
thumb_func_end sub_8060044
thumb_func_start sub_8060064
sub_8060064: @ 8060064
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060064
thumb_func_start sub_8060078
sub_8060078: @ 8060078
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060078
thumb_func_start sub_80600A4
sub_80600A4: @ 80600A4
push {r4-r6,lr}
adds r6, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _080600D8
ldr r5, _080600D4 @ =gUnknown_83A6000
bl Random
movs r4, 0x3
adds r1, r4, 0
ands r1, r0
lsls r1, 1
adds r1, r5
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r6, 0
bl SetObjectEventStepTimer
strh r4, [r6, 0x30]
movs r0, 0x1
b _080600DA
.align 2, 0
_080600D4: .4byte gUnknown_83A6000
_080600D8:
movs r0, 0
_080600DA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80600A4
thumb_func_start sub_80600E0
sub_80600E0: @ 80600E0
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _080600F4
movs r0, 0
b _080600FA
_080600F4:
movs r0, 0x4
strh r0, [r4, 0x30]
movs r0, 0x1
_080600FA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80600E0
thumb_func_start sub_8060100
sub_8060100: @ 8060100
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
ldr r1, _08060148 @ =gUnknown_83A6050
mov r0, sp
movs r2, 0x4
bl memcpy
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r4, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl ObjectEventSetDirection
movs r0, 0x5
strh r0, [r6, 0x30]
adds r0, r5, 0
adds r1, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
cmp r0, 0
beq _0806013E
movs r0, 0x1
strh r0, [r6, 0x30]
_0806013E:
movs r0, 0x1
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08060148: .4byte gUnknown_83A6050
thumb_func_end sub_8060100
thumb_func_start sub_806014C
sub_806014C: @ 806014C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x6
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806014C
thumb_func_start sub_806017C
sub_806017C: @ 806017C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl sub_8063F2C
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x6
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806017C
thumb_func_start sub_80601AC
sub_80601AC: @ 80601AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _080601CA
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_080601CA:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80601AC
thumb_func_start ObjectEventIsTrainerAndCloseToPlayer
ObjectEventIsTrainerAndCloseToPlayer: @ 80601D4
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
movs r0, 0x80
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08060240
ldrb r0, [r5, 0x7]
cmp r0, 0x1
beq _080601F0
cmp r0, 0x3
bne _08060240
_080601F0:
mov r7, sp
adds r7, 0x2
mov r0, sp
adds r1, r7, 0
bl PlayerGetDestCoords
ldrh r2, [r5, 0x10]
ldrh r4, [r5, 0x12]
ldrb r1, [r5, 0x1D]
subs r3, r2, r1
subs r0, r4, r1
lsls r0, 16
lsrs r5, r0, 16
adds r2, r1, r2
lsls r2, 16
lsrs r2, 16
adds r1, r4
lsls r1, 16
lsrs r6, r1, 16
mov r0, sp
lsls r3, 16
asrs r3, 16
movs r1, 0
ldrsh r4, [r0, r1]
cmp r3, r4
bgt _08060240
lsls r0, r2, 16
asrs r0, 16
cmp r0, r4
blt _08060240
lsls r0, r5, 16
asrs r0, 16
movs r2, 0
ldrsh r1, [r7, r2]
cmp r0, r1
bgt _08060240
lsls r0, r6, 16
asrs r0, 16
cmp r0, r1
bge _08060244
_08060240:
movs r0, 0
b _08060246
_08060244:
movs r0, 0x1
_08060246:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end ObjectEventIsTrainerAndCloseToPlayer
thumb_func_start GetRegularRunningPastFacingDirection
GetRegularRunningPastFacingDirection: @ 8060250
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 16
lsrs r0, r1, 16
lsls r2, 16
lsls r3, 16
cmp r2, r3
ble _0806026E
movs r2, 0x4
lsls r0, r4, 16
cmp r0, 0
bge _08060278
movs r2, 0x3
b _08060278
_0806026E:
movs r2, 0x1
lsls r0, 16
cmp r0, 0
bge _08060278
movs r2, 0x2
_08060278:
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end GetRegularRunningPastFacingDirection
thumb_func_start GetNorthSouthRunningPastFacingDirection
GetNorthSouthRunningPastFacingDirection: @ 8060280
push {lr}
movs r0, 0x1
lsls r1, 16
cmp r1, 0
bge _0806028C
movs r0, 0x2
_0806028C:
pop {r1}
bx r1
thumb_func_end GetNorthSouthRunningPastFacingDirection
thumb_func_start GetEastWestRunningPastFacingDirection
GetEastWestRunningPastFacingDirection: @ 8060290
push {lr}
movs r1, 0x4
lsls r0, 16
cmp r0, 0
bge _0806029C
movs r1, 0x3
_0806029C:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end GetEastWestRunningPastFacingDirection
thumb_func_start GetNorthEastRunningPastFacingDirection
GetNorthEastRunningPastFacingDirection: @ 80602A4
push {r4-r7,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
lsls r3, 16
asrs r7, r3, 16
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080602E0
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080602FA
b _080602F8
_080602E0:
cmp r0, 0x4
bne _080602FA
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080602FA
_080602F8:
movs r0, 0x2
_080602FA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNorthEastRunningPastFacingDirection
thumb_func_start GetNorthWestRunningPastFacingDirection
GetNorthWestRunningPastFacingDirection: @ 8060300
push {r4-r7,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
lsls r3, 16
asrs r7, r3, 16
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0806033C
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _08060356
b _08060354
_0806033C:
cmp r0, 0x3
bne _08060356
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08060356
_08060354:
movs r0, 0x2
_08060356:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNorthWestRunningPastFacingDirection
thumb_func_start GetSouthEastRunningPastFacingDirection
GetSouthEastRunningPastFacingDirection: @ 806035C
push {r4-r7,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
lsls r3, 16
asrs r7, r3, 16
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08060398
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080603B2
b _080603B0
_08060398:
cmp r0, 0x4
bne _080603B2
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080603B2
_080603B0:
movs r0, 0x1
_080603B2:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetSouthEastRunningPastFacingDirection
thumb_func_start GetSouthWestRunningPastFacingDirection
GetSouthWestRunningPastFacingDirection: @ 80603B8
push {r4-r7,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
lsls r3, 16
asrs r7, r3, 16
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080603F4
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _0806040E
b _0806040C
_080603F4:
cmp r0, 0x3
bne _0806040E
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r7, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0806040E
_0806040C:
movs r0, 0x1
_0806040E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetSouthWestRunningPastFacingDirection
thumb_func_start GetNonEastRunningPastFacingDirection
GetNonEastRunningPastFacingDirection: @ 8060414
push {r4-r7,lr}
lsls r0, 16
asrs r7, r0, 16
lsls r1, 16
asrs r6, r1, 16
lsls r2, 16
asrs r5, r2, 16
lsls r3, 16
asrs r4, r3, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _0806044A
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
_0806044A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNonEastRunningPastFacingDirection
thumb_func_start GetNonWestRunningPastFacingDirection
GetNonWestRunningPastFacingDirection: @ 8060450
push {r4-r7,lr}
lsls r0, 16
asrs r7, r0, 16
lsls r1, 16
asrs r6, r1, 16
lsls r2, 16
asrs r5, r2, 16
lsls r3, 16
asrs r4, r3, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _08060486
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetNorthSouthRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
_08060486:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNonWestRunningPastFacingDirection
thumb_func_start GetNonSouthRunningPastFacingDirection
GetNonSouthRunningPastFacingDirection: @ 806048C
push {r4-r7,lr}
lsls r0, 16
asrs r7, r0, 16
lsls r1, 16
asrs r6, r1, 16
lsls r2, 16
asrs r5, r2, 16
lsls r3, 16
asrs r4, r3, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080604C2
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
_080604C2:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNonSouthRunningPastFacingDirection
thumb_func_start GetNonNorthRunningPastFacingDirection
GetNonNorthRunningPastFacingDirection: @ 80604C8
push {r4-r7,lr}
lsls r0, 16
asrs r7, r0, 16
lsls r1, 16
asrs r6, r1, 16
lsls r2, 16
asrs r5, r2, 16
lsls r3, 16
asrs r4, r3, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetRegularRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080604FE
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
adds r3, r4, 0
bl GetEastWestRunningPastFacingDirection
lsls r0, 24
lsrs r0, 24
_080604FE:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetNonNorthRunningPastFacingDirection
thumb_func_start GetRunningPastFacingDirection
GetRunningPastFacingDirection: @ 8060504
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r1, 24
lsrs r6, r1, 24
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
bne _0806051C
movs r0, 0
b _08060580
_0806051C:
mov r5, sp
adds r5, 0x2
mov r0, sp
adds r1, r5, 0
bl PlayerGetDestCoords
mov r2, sp
mov r0, sp
ldrh r0, [r0]
ldrh r1, [r4, 0x10]
subs r0, r1
strh r0, [r2]
ldrh r0, [r5]
ldrh r1, [r4, 0x12]
subs r0, r1
strh r0, [r5]
mov r0, sp
ldrh r3, [r5]
ldrh r2, [r0]
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bge _08060550
negs r0, r0
lsls r0, 16
lsrs r2, r0, 16
_08060550:
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0
bge _0806055E
negs r0, r0
lsls r0, 16
lsrs r3, r0, 16
_0806055E:
ldr r0, _08060588 @ =gUnknown_83A6054
lsls r4, r6, 2
adds r4, r0
mov r0, sp
movs r6, 0
ldrsh r0, [r0, r6]
movs r6, 0
ldrsh r1, [r5, r6]
lsls r2, 16
asrs r2, 16
lsls r3, 16
asrs r3, 16
ldr r4, [r4]
bl _call_via_r4
lsls r0, 24
lsrs r0, 24
_08060580:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08060588: .4byte gUnknown_83A6054
thumb_func_end GetRunningPastFacingDirection
thumb_func_start sub_806058C
sub_806058C: @ 806058C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080605A8 @ =gObjectEvents
adds r0, r2
ldr r2, _080605AC @ =sub_80605B0
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080605A8: .4byte gObjectEvents
_080605AC: .4byte sub_80605B0
thumb_func_end sub_806058C
thumb_func_start sub_80605B0
sub_80605B0: @ 80605B0
push {r4,lr}
ldr r3, _080605CC @ =gUnknown_83A6080
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080605CC: .4byte gUnknown_83A6080
thumb_func_end sub_80605B0
thumb_func_start sub_80605D0
sub_80605D0: @ 80605D0
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80605D0
thumb_func_start sub_80605E4
sub_80605E4: @ 80605E4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80605E4
thumb_func_start sub_8060610
sub_8060610: @ 8060610
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060646
ldr r4, _08060650 @ =gUnknown_83A6000
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08060646:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060650: .4byte gUnknown_83A6000
thumb_func_end sub_8060610
thumb_func_start sub_8060654
sub_8060654: @ 8060654
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060672
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _0806067A
_08060672:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _0806067C
_0806067A:
movs r0, 0
_0806067C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060654
thumb_func_start sub_8060684
sub_8060684: @ 8060684
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080606C8 @ =gUnknown_83A6050
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080606B4
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_080606B4:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080606C8: .4byte gUnknown_83A6050
thumb_func_end sub_8060684
thumb_func_start sub_80606CC
sub_80606CC: @ 80606CC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080606E8 @ =gObjectEvents
adds r0, r2
ldr r2, _080606EC @ =sub_80606F0
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080606E8: .4byte gObjectEvents
_080606EC: .4byte sub_80606F0
thumb_func_end sub_80606CC
thumb_func_start sub_80606F0
sub_80606F0: @ 80606F0
push {r4,lr}
ldr r3, _0806070C @ =gUnknown_83A6094
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806070C: .4byte gUnknown_83A6094
thumb_func_end sub_80606F0
thumb_func_start sub_8060710
sub_8060710: @ 8060710
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060710
thumb_func_start sub_8060724
sub_8060724: @ 8060724
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060724
thumb_func_start sub_8060750
sub_8060750: @ 8060750
push {r4-r6,lr}
adds r6, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060784
ldr r5, _08060780 @ =gUnknown_83A6000
bl Random
movs r4, 0x3
adds r1, r4, 0
ands r1, r0
lsls r1, 1
adds r1, r5
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r6, 0
bl SetObjectEventStepTimer
strh r4, [r6, 0x30]
movs r0, 0x1
b _08060786
.align 2, 0
_08060780: .4byte gUnknown_83A6000
_08060784:
movs r0, 0
_08060786:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8060750
thumb_func_start sub_806078C
sub_806078C: @ 806078C
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _080607A0
movs r0, 0
b _080607A6
_080607A0:
movs r0, 0x4
strh r0, [r4, 0x30]
movs r0, 0x1
_080607A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_806078C
thumb_func_start sub_80607AC
sub_80607AC: @ 80607AC
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
ldr r1, _080607F4 @ =gUnknown_83A60B0
mov r0, sp
movs r2, 0x2
bl memcpy
bl Random
movs r7, 0x1
adds r1, r7, 0
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r4, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl ObjectEventSetDirection
movs r0, 0x5
strh r0, [r6, 0x30]
adds r0, r5, 0
adds r1, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
cmp r0, 0
beq _080607EA
strh r7, [r6, 0x30]
_080607EA:
movs r0, 0x1
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080607F4: .4byte gUnknown_83A60B0
thumb_func_end sub_80607AC
thumb_func_start sub_80607F8
sub_80607F8: @ 80607F8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x6
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80607F8
thumb_func_start sub_8060828
sub_8060828: @ 8060828
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060846
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_08060846:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060828
thumb_func_start sub_8060850
sub_8060850: @ 8060850
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806086C @ =gObjectEvents
adds r0, r2
ldr r2, _08060870 @ =sub_8060874
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806086C: .4byte gObjectEvents
_08060870: .4byte sub_8060874
thumb_func_end sub_8060850
thumb_func_start sub_8060874
sub_8060874: @ 8060874
push {r4,lr}
ldr r3, _08060890 @ =gUnknown_83A60B4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060890: .4byte gUnknown_83A60B4
thumb_func_end sub_8060874
thumb_func_start sub_8060894
sub_8060894: @ 8060894
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060894
thumb_func_start sub_80608A8
sub_80608A8: @ 80608A8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80608A8
thumb_func_start sub_80608D4
sub_80608D4: @ 80608D4
push {r4-r6,lr}
adds r6, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060908
ldr r5, _08060904 @ =gUnknown_83A6000
bl Random
movs r4, 0x3
adds r1, r4, 0
ands r1, r0
lsls r1, 1
adds r1, r5
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r6, 0
bl SetObjectEventStepTimer
strh r4, [r6, 0x30]
movs r0, 0x1
b _0806090A
.align 2, 0
_08060904: .4byte gUnknown_83A6000
_08060908:
movs r0, 0
_0806090A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80608D4
thumb_func_start sub_8060910
sub_8060910: @ 8060910
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060924
movs r0, 0
b _0806092A
_08060924:
movs r0, 0x4
strh r0, [r4, 0x30]
movs r0, 0x1
_0806092A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060910
thumb_func_start sub_8060930
sub_8060930: @ 8060930
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
ldr r1, _08060978 @ =gUnknown_83A60D0
mov r0, sp
movs r2, 0x2
bl memcpy
bl Random
movs r7, 0x1
adds r1, r7, 0
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r4, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl ObjectEventSetDirection
movs r0, 0x5
strh r0, [r6, 0x30]
adds r0, r5, 0
adds r1, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
cmp r0, 0
beq _0806096E
strh r7, [r6, 0x30]
_0806096E:
movs r0, 0x1
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060978: .4byte gUnknown_83A60D0
thumb_func_end sub_8060930
thumb_func_start sub_806097C
sub_806097C: @ 806097C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x6
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806097C
thumb_func_start sub_80609AC
sub_80609AC: @ 80609AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _080609CA
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_080609CA:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80609AC
thumb_func_start sub_80609D4
sub_80609D4: @ 80609D4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080609F0 @ =gObjectEvents
adds r0, r2
ldr r2, _080609F4 @ =sub_80609F8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080609F0: .4byte gObjectEvents
_080609F4: .4byte sub_80609F8
thumb_func_end sub_80609D4
thumb_func_start sub_80609F8
sub_80609F8: @ 80609F8
push {r4,lr}
ldr r3, _08060A14 @ =gUnknown_83A60D4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060A14: .4byte gUnknown_83A60D4
thumb_func_end sub_80609F8
thumb_func_start sub_8060A18
sub_8060A18: @ 8060A18
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060A18
thumb_func_start sub_8060A44
sub_8060A44: @ 8060A44
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
bne _08060A56
movs r0, 0
b _08060A5C
_08060A56:
movs r0, 0x2
strh r0, [r4, 0x30]
movs r0, 0x1
_08060A5C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060A44
thumb_func_start sub_8060A64
sub_8060A64: @ 8060A64
ldrb r2, [r0]
movs r1, 0x3
negs r1, r1
ands r1, r2
strb r1, [r0]
movs r0, 0
bx lr
thumb_func_end sub_8060A64
thumb_func_start sub_8060A74
sub_8060A74: @ 8060A74
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08060A90 @ =gObjectEvents
adds r0, r2
ldr r2, _08060A94 @ =sub_8060A98
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08060A90: .4byte gObjectEvents
_08060A94: .4byte sub_8060A98
thumb_func_end sub_8060A74
thumb_func_start sub_8060A98
sub_8060A98: @ 8060A98
push {r4,lr}
ldr r3, _08060AB4 @ =gUnknown_83A60E0
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060AB4: .4byte gUnknown_83A60E0
thumb_func_end sub_8060A98
thumb_func_start sub_8060AB8
sub_8060AB8: @ 8060AB8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060AB8
thumb_func_start sub_8060ACC
sub_8060ACC: @ 8060ACC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060ACC
thumb_func_start sub_8060AF8
sub_8060AF8: @ 8060AF8
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060B2E
ldr r4, _08060B38 @ =gUnknown_83A6000
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08060B2E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060B38: .4byte gUnknown_83A6000
thumb_func_end sub_8060AF8
thumb_func_start sub_8060B3C
sub_8060B3C: @ 8060B3C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060B5A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08060B62
_08060B5A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08060B64
_08060B62:
movs r0, 0
_08060B64:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060B3C
thumb_func_start sub_8060B6C
sub_8060B6C: @ 8060B6C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08060BB0 @ =gUnknown_83A60B0
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x1
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08060B9C
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08060B9C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08060BB0: .4byte gUnknown_83A60B0
thumb_func_end sub_8060B6C
thumb_func_start sub_8060BB4
sub_8060BB4: @ 8060BB4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08060BD0 @ =gObjectEvents
adds r0, r2
ldr r2, _08060BD4 @ =sub_8060BD8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08060BD0: .4byte gObjectEvents
_08060BD4: .4byte sub_8060BD8
thumb_func_end sub_8060BB4
thumb_func_start sub_8060BD8
sub_8060BD8: @ 8060BD8
push {r4,lr}
ldr r3, _08060BF4 @ =gUnknown_83A60F4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060BF4: .4byte gUnknown_83A60F4
thumb_func_end sub_8060BD8
thumb_func_start sub_8060BF8
sub_8060BF8: @ 8060BF8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060BF8
thumb_func_start sub_8060C0C
sub_8060C0C: @ 8060C0C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060C0C
thumb_func_start sub_8060C38
sub_8060C38: @ 8060C38
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060C6E
ldr r4, _08060C78 @ =gUnknown_83A6000
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08060C6E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060C78: .4byte gUnknown_83A6000
thumb_func_end sub_8060C38
thumb_func_start sub_8060C7C
sub_8060C7C: @ 8060C7C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060C9A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08060CA2
_08060C9A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08060CA4
_08060CA2:
movs r0, 0
_08060CA4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060C7C
thumb_func_start sub_8060CAC
sub_8060CAC: @ 8060CAC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08060CF0 @ =gUnknown_83A60D0
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x2
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08060CDC
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08060CDC:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08060CF0: .4byte gUnknown_83A60D0
thumb_func_end sub_8060CAC
thumb_func_start sub_8060CF4
sub_8060CF4: @ 8060CF4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08060D10 @ =gObjectEvents
adds r0, r2
ldr r2, _08060D14 @ =sub_8060D18
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08060D10: .4byte gObjectEvents
_08060D14: .4byte sub_8060D18
thumb_func_end sub_8060CF4
thumb_func_start sub_8060D18
sub_8060D18: @ 8060D18
push {r4,lr}
ldr r3, _08060D34 @ =gUnknown_83A6108
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060D34: .4byte gUnknown_83A6108
thumb_func_end sub_8060D18
thumb_func_start sub_8060D38
sub_8060D38: @ 8060D38
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060D38
thumb_func_start sub_8060D4C
sub_8060D4C: @ 8060D4C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060D4C
thumb_func_start sub_8060D78
sub_8060D78: @ 8060D78
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060DAE
ldr r4, _08060DB8 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08060DAE:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060DB8: .4byte gUnknown_83A6010
thumb_func_end sub_8060D78
thumb_func_start sub_8060DBC
sub_8060DBC: @ 8060DBC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060DDA
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08060DE2
_08060DDA:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08060DE4
_08060DE2:
movs r0, 0
_08060DE4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060DBC
thumb_func_start sub_8060DEC
sub_8060DEC: @ 8060DEC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08060E30 @ =gUnknown_83A611C
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x3
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08060E1C
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08060E1C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08060E30: .4byte gUnknown_83A611C
thumb_func_end sub_8060DEC
thumb_func_start sub_8060E34
sub_8060E34: @ 8060E34
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08060E50 @ =gObjectEvents
adds r0, r2
ldr r2, _08060E54 @ =sub_8060E58
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08060E50: .4byte gObjectEvents
_08060E54: .4byte sub_8060E58
thumb_func_end sub_8060E34
thumb_func_start sub_8060E58
sub_8060E58: @ 8060E58
push {r4,lr}
ldr r3, _08060E74 @ =gUnknown_83A6120
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060E74: .4byte gUnknown_83A6120
thumb_func_end sub_8060E58
thumb_func_start sub_8060E78
sub_8060E78: @ 8060E78
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060E78
thumb_func_start sub_8060E8C
sub_8060E8C: @ 8060E8C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060E8C
thumb_func_start sub_8060EB8
sub_8060EB8: @ 8060EB8
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08060EEE
ldr r4, _08060EF8 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_08060EEE:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08060EF8: .4byte gUnknown_83A6010
thumb_func_end sub_8060EB8
thumb_func_start sub_8060EFC
sub_8060EFC: @ 8060EFC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _08060F1A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08060F22
_08060F1A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08060F24
_08060F22:
movs r0, 0
_08060F24:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060EFC
thumb_func_start sub_8060F2C
sub_8060F2C: @ 8060F2C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08060F70 @ =gUnknown_83A6134
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x4
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08060F5C
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_08060F5C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08060F70: .4byte gUnknown_83A6134
thumb_func_end sub_8060F2C
thumb_func_start sub_8060F74
sub_8060F74: @ 8060F74
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08060F90 @ =gObjectEvents
adds r0, r2
ldr r2, _08060F94 @ =sub_8060F98
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08060F90: .4byte gObjectEvents
_08060F94: .4byte sub_8060F98
thumb_func_end sub_8060F74
thumb_func_start sub_8060F98
sub_8060F98: @ 8060F98
push {r4,lr}
ldr r3, _08060FB4 @ =gUnknown_83A6138
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08060FB4: .4byte gUnknown_83A6138
thumb_func_end sub_8060F98
thumb_func_start sub_8060FB8
sub_8060FB8: @ 8060FB8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8060FB8
thumb_func_start sub_8060FCC
sub_8060FCC: @ 8060FCC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8060FCC
thumb_func_start sub_8060FF8
sub_8060FF8: @ 8060FF8
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _0806102E
ldr r4, _08061038 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_0806102E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08061038: .4byte gUnknown_83A6010
thumb_func_end sub_8060FF8
thumb_func_start sub_806103C
sub_806103C: @ 806103C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _0806105A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08061062
_0806105A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08061064
_08061062:
movs r0, 0
_08061064:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806103C
thumb_func_start sub_806106C
sub_806106C: @ 806106C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080610B0 @ =gUnknown_83A614C
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x5
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0806109C
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_0806109C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080610B0: .4byte gUnknown_83A614C
thumb_func_end sub_806106C
thumb_func_start sub_80610B4
sub_80610B4: @ 80610B4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080610D0 @ =gObjectEvents
adds r0, r2
ldr r2, _080610D4 @ =sub_80610D8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080610D0: .4byte gObjectEvents
_080610D4: .4byte sub_80610D8
thumb_func_end sub_80610B4
thumb_func_start sub_80610D8
sub_80610D8: @ 80610D8
push {r4,lr}
ldr r3, _080610F4 @ =gUnknown_83A6150
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080610F4: .4byte gUnknown_83A6150
thumb_func_end sub_80610D8
thumb_func_start sub_80610F8
sub_80610F8: @ 80610F8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80610F8
thumb_func_start sub_806110C
sub_806110C: @ 806110C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806110C
thumb_func_start sub_8061138
sub_8061138: @ 8061138
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _0806116E
ldr r4, _08061178 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_0806116E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08061178: .4byte gUnknown_83A6010
thumb_func_end sub_8061138
thumb_func_start sub_806117C
sub_806117C: @ 806117C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _0806119A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080611A2
_0806119A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _080611A4
_080611A2:
movs r0, 0
_080611A4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806117C
thumb_func_start sub_80611AC
sub_80611AC: @ 80611AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080611F0 @ =gUnknown_83A6164
mov r0, sp
movs r2, 0x2
bl memcpy
adds r0, r4, 0
movs r1, 0x6
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080611DC
bl Random
movs r1, 0x1
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_080611DC:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080611F0: .4byte gUnknown_83A6164
thumb_func_end sub_80611AC
thumb_func_start sub_80611F4
sub_80611F4: @ 80611F4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061210 @ =gObjectEvents
adds r0, r2
ldr r2, _08061214 @ =sub_8061218
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061210: .4byte gObjectEvents
_08061214: .4byte sub_8061218
thumb_func_end sub_80611F4
thumb_func_start sub_8061218
sub_8061218: @ 8061218
push {r4,lr}
ldr r3, _08061234 @ =gUnknown_83A6168
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061234: .4byte gUnknown_83A6168
thumb_func_end sub_8061218
thumb_func_start sub_8061238
sub_8061238: @ 8061238
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061238
thumb_func_start sub_806124C
sub_806124C: @ 806124C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806124C
thumb_func_start sub_8061278
sub_8061278: @ 8061278
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _080612AE
ldr r4, _080612B8 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_080612AE:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080612B8: .4byte gUnknown_83A6010
thumb_func_end sub_8061278
thumb_func_start sub_80612BC
sub_80612BC: @ 80612BC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _080612DA
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080612E2
_080612DA:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _080612E4
_080612E2:
movs r0, 0
_080612E4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80612BC
thumb_func_start sub_80612EC
sub_80612EC: @ 80612EC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061330 @ =gUnknown_83A617C
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x7
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0806131C
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_0806131C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061330: .4byte gUnknown_83A617C
thumb_func_end sub_80612EC
thumb_func_start sub_8061334
sub_8061334: @ 8061334
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061350 @ =gObjectEvents
adds r0, r2
ldr r2, _08061354 @ =sub_8061358
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061350: .4byte gObjectEvents
_08061354: .4byte sub_8061358
thumb_func_end sub_8061334
thumb_func_start sub_8061358
sub_8061358: @ 8061358
push {r4,lr}
ldr r3, _08061374 @ =gUnknown_83A6180
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061374: .4byte gUnknown_83A6180
thumb_func_end sub_8061358
thumb_func_start sub_8061378
sub_8061378: @ 8061378
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061378
thumb_func_start sub_806138C
sub_806138C: @ 806138C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806138C
thumb_func_start sub_80613B8
sub_80613B8: @ 80613B8
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _080613EE
ldr r4, _080613F8 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_080613EE:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080613F8: .4byte gUnknown_83A6010
thumb_func_end sub_80613B8
thumb_func_start sub_80613FC
sub_80613FC: @ 80613FC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _0806141A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08061422
_0806141A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08061424
_08061422:
movs r0, 0
_08061424:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80613FC
thumb_func_start sub_806142C
sub_806142C: @ 806142C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061470 @ =gUnknown_83A6194
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x8
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0806145C
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_0806145C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061470: .4byte gUnknown_83A6194
thumb_func_end sub_806142C
thumb_func_start sub_8061474
sub_8061474: @ 8061474
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061490 @ =gObjectEvents
adds r0, r2
ldr r2, _08061494 @ =sub_8061498
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061490: .4byte gObjectEvents
_08061494: .4byte sub_8061498
thumb_func_end sub_8061474
thumb_func_start sub_8061498
sub_8061498: @ 8061498
push {r4,lr}
ldr r3, _080614B4 @ =gUnknown_83A6198
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080614B4: .4byte gUnknown_83A6198
thumb_func_end sub_8061498
thumb_func_start sub_80614B8
sub_80614B8: @ 80614B8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80614B8
thumb_func_start sub_80614CC
sub_80614CC: @ 80614CC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80614CC
thumb_func_start sub_80614F8
sub_80614F8: @ 80614F8
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _0806152E
ldr r4, _08061538 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_0806152E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08061538: .4byte gUnknown_83A6010
thumb_func_end sub_80614F8
thumb_func_start sub_806153C
sub_806153C: @ 806153C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _0806155A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _08061562
_0806155A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _08061564
_08061562:
movs r0, 0
_08061564:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806153C
thumb_func_start sub_806156C
sub_806156C: @ 806156C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080615B0 @ =gUnknown_83A61AC
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0x9
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _0806159C
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_0806159C:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080615B0: .4byte gUnknown_83A61AC
thumb_func_end sub_806156C
thumb_func_start sub_80615B4
sub_80615B4: @ 80615B4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080615D0 @ =gObjectEvents
adds r0, r2
ldr r2, _080615D4 @ =sub_80615D8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080615D0: .4byte gObjectEvents
_080615D4: .4byte sub_80615D8
thumb_func_end sub_80615B4
thumb_func_start sub_80615D8
sub_80615D8: @ 80615D8
push {r4,lr}
ldr r3, _080615F4 @ =gUnknown_83A61B0
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080615F4: .4byte gUnknown_83A61B0
thumb_func_end sub_80615D8
thumb_func_start sub_80615F8
sub_80615F8: @ 80615F8
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80615F8
thumb_func_start sub_806160C
sub_806160C: @ 806160C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806160C
thumb_func_start sub_8061638
sub_8061638: @ 8061638
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _0806166E
ldr r4, _08061678 @ =gUnknown_83A6010
bl Random
movs r5, 0x3
adds r1, r5, 0
ands r1, r0
lsls r1, 1
adds r1, r4
movs r0, 0
ldrsh r1, [r1, r0]
adds r0, r7, 0
bl SetObjectEventStepTimer
ldrb r1, [r6]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r6]
strh r5, [r7, 0x30]
_0806166E:
movs r0, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08061678: .4byte gUnknown_83A6010
thumb_func_end sub_8061638
thumb_func_start sub_806167C
sub_806167C: @ 806167C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _0806169A
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080616A2
_0806169A:
movs r0, 0x4
strh r0, [r5, 0x30]
movs r0, 0x1
b _080616A4
_080616A2:
movs r0, 0
_080616A4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806167C
thumb_func_start sub_80616AC
sub_80616AC: @ 80616AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080616F0 @ =gUnknown_83A61C4
mov r0, sp
movs r2, 0x4
bl memcpy
adds r0, r4, 0
movs r1, 0xA
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080616DC
bl Random
movs r1, 0x3
ands r1, r0
mov r2, sp
adds r0, r2, r1
ldrb r1, [r0]
_080616DC:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x1
strh r0, [r5, 0x30]
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080616F0: .4byte gUnknown_83A61C4
thumb_func_end sub_80616AC
thumb_func_start sub_80616F4
sub_80616F4: @ 80616F4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061710 @ =gObjectEvents
adds r0, r2
ldr r2, _08061714 @ =sub_8061718
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061710: .4byte gObjectEvents
_08061714: .4byte sub_8061718
thumb_func_end sub_80616F4
thumb_func_start sub_8061718
sub_8061718: @ 8061718
push {r4,lr}
ldr r3, _08061734 @ =gUnknown_83A61C8
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061734: .4byte gUnknown_83A61C8
thumb_func_end sub_8061718
thumb_func_start sub_8061738
sub_8061738: @ 8061738
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8061738
thumb_func_start sub_8061764
sub_8061764: @ 8061764
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _0806177E
adds r0, r4, 0
movs r1, 0x30
bl SetObjectEventStepTimer
movs r0, 0x2
strh r0, [r4, 0x30]
_0806177E:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061764
thumb_func_start sub_8061788
sub_8061788: @ 8061788
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _080617A6
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080617AA
_080617A6:
movs r0, 0x3
strh r0, [r5, 0x30]
_080617AA:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8061788
thumb_func_start sub_80617B4
sub_80617B4: @ 80617B4
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080617F4 @ =gUnknown_83A61D8
mov r0, sp
movs r2, 0x5
bl memcpy
adds r0, r4, 0
movs r1, 0
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080617E0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
add r0, sp
ldrb r1, [r0]
_080617E0:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0
strh r0, [r5, 0x30]
movs r0, 0x1
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080617F4: .4byte gUnknown_83A61D8
thumb_func_end sub_80617B4
thumb_func_start sub_80617F8
sub_80617F8: @ 80617F8
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061814 @ =gObjectEvents
adds r0, r2
ldr r2, _08061818 @ =sub_806181C
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061814: .4byte gObjectEvents
_08061818: .4byte sub_806181C
thumb_func_end sub_80617F8
thumb_func_start sub_806181C
sub_806181C: @ 806181C
push {r4,lr}
ldr r3, _08061838 @ =gUnknown_83A61E0
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061838: .4byte gUnknown_83A61E0
thumb_func_end sub_806181C
thumb_func_start sub_806183C
sub_806183C: @ 806183C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806183C
thumb_func_start sub_8061868
sub_8061868: @ 8061868
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08061882
adds r0, r4, 0
movs r1, 0x30
bl SetObjectEventStepTimer
movs r0, 0x2
strh r0, [r4, 0x30]
_08061882:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061868
thumb_func_start sub_806188C
sub_806188C: @ 806188C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
bne _080618AA
adds r0, r4, 0
bl ObjectEventIsTrainerAndCloseToPlayer
lsls r0, 24
cmp r0, 0
beq _080618AE
_080618AA:
movs r0, 0x3
strh r0, [r5, 0x30]
_080618AE:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_806188C
thumb_func_start sub_80618B8
sub_80618B8: @ 80618B8
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080618F8 @ =gUnknown_83A61F0
mov r0, sp
movs r2, 0x5
bl memcpy
adds r0, r4, 0
movs r1, 0
bl GetRunningPastFacingDirection
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080618E4
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
add r0, sp
ldrb r1, [r0]
_080618E4:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0
strh r0, [r5, 0x30]
movs r0, 0x1
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080618F8: .4byte gUnknown_83A61F0
thumb_func_end sub_80618B8
thumb_func_start sub_80618FC
sub_80618FC: @ 80618FC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061918 @ =gObjectEvents
adds r0, r2
ldr r2, _0806191C @ =sub_8061920
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061918: .4byte gObjectEvents
_0806191C: .4byte sub_8061920
thumb_func_end sub_80618FC
thumb_func_start sub_8061920
sub_8061920: @ 8061920
push {r4,lr}
ldr r3, _0806193C @ =gUnknown_83A61F8
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806193C: .4byte gUnknown_83A61F8
thumb_func_end sub_8061920
thumb_func_start sub_8061940
sub_8061940: @ 8061940
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061940
thumb_func_start sub_8061954
sub_8061954: @ 8061954
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, _08061988 @ =gInitialMovementTypeFacingDirections
ldrb r1, [r4, 0x6]
adds r1, r0
ldrb r1, [r1]
adds r0, r4, 0
adds r0, 0x21
ldrb r0, [r0]
cmp r0, 0
beq _08061976
adds r0, r1, 0
bl GetOppositeDirection
lsls r0, 24
lsrs r1, r0, 24
_08061976:
adds r0, r4, 0
bl ObjectEventSetDirection
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061988: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8061954
thumb_func_start sub_806198C
sub_806198C: @ 806198C
push {r4-r7,lr}
adds r4, r0, 0
adds r7, r1, 0
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0
beq _080619BC
ldr r1, [r4, 0xC]
ldr r0, [r4, 0x10]
cmp r1, r0
bne _080619BC
movs r0, 0
strb r0, [r2]
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetOppositeDirection
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetDirection
_080619BC:
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
lsls r0, 24
lsrs r6, r0, 24
cmp r5, 0x1
bne _08061A12
adds r1, r4, 0
adds r1, 0x21
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetOppositeDirection
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetDirection
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
lsls r0, 24
lsrs r6, r0, 24
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
lsrs r5, r0, 24
_08061A12:
cmp r5, 0
beq _08061A24
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetStepInPlaceDelay16AnimId
lsls r0, 24
lsrs r6, r0, 24
_08061A24:
adds r0, r4, 0
adds r1, r7, 0
adds r2, r6, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x3
strh r0, [r7, 0x30]
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_806198C
thumb_func_start sub_8061A44
sub_8061A44: @ 8061A44
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08061A62
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_08061A62:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8061A44
thumb_func_start sub_8061A6C
sub_8061A6C: @ 8061A6C
push {r4,lr}
adds r4, r1, 0
bl npc_reset
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8061A6C
thumb_func_start MoveObjectEventInNextDirectionInSequence
MoveObjectEventInNextDirectionInSequence: @ 8061A80
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
mov r8, r1
adds r7, r2, 0
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x3
bne _08061AA2
ldr r1, [r4, 0xC]
ldr r0, [r4, 0x10]
cmp r1, r0
bne _08061AA2
movs r0, 0
strb r0, [r2]
_08061AA2:
adds r5, r4, 0
adds r5, 0x21
ldrb r0, [r5]
adds r0, r7, r0
ldrb r1, [r0]
adds r0, r4, 0
bl ObjectEventSetDirection
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
lsls r0, 24
lsrs r6, r0, 24
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08061AFC
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
ldrb r0, [r5]
adds r0, r7, r0
ldrb r1, [r0]
adds r0, r4, 0
bl ObjectEventSetDirection
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetWalkNormalMovementAction
lsls r0, 24
lsrs r6, r0, 24
ldrb r1, [r4, 0x18]
lsrs r1, 4
adds r0, r4, 0
bl npc_block_way__next_tile
lsls r0, 24
lsrs r0, 24
_08061AFC:
cmp r0, 0
beq _08061B0E
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetStepInPlaceDelay16AnimId
lsls r0, 24
lsrs r6, r0, 24
_08061B0E:
adds r0, r4, 0
mov r1, r8
adds r2, r6, 0
bl ObjectEventSetSingleMovement
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 MoveObjectEventInNextDirectionInSequence
thumb_func_start sub_8061B34
sub_8061B34: @ 8061B34
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08061B52
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_08061B52:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8061B34
thumb_func_start sub_8061B5C
sub_8061B5C: @ 8061B5C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061B78 @ =gObjectEvents
adds r0, r2
ldr r2, _08061B7C @ =sub_8061B80
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061B78: .4byte gObjectEvents
_08061B7C: .4byte sub_8061B80
thumb_func_end sub_8061B5C
thumb_func_start sub_8061B80
sub_8061B80: @ 8061B80
push {r4,lr}
ldr r3, _08061B9C @ =gUnknown_83A6208
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061B9C: .4byte gUnknown_83A6208
thumb_func_end sub_8061B80
thumb_func_start sub_8061BA0
sub_8061BA0: @ 8061BA0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061BE4 @ =gUnknown_83A6214
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08061BCC
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061BCC
movs r0, 0x3
strb r0, [r2]
_08061BCC:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061BE4: .4byte gUnknown_83A6214
thumb_func_end sub_8061BA0
thumb_func_start sub_8061BE8
sub_8061BE8: @ 8061BE8
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061C04 @ =gObjectEvents
adds r0, r2
ldr r2, _08061C08 @ =sub_8061C0C
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061C04: .4byte gObjectEvents
_08061C08: .4byte sub_8061C0C
thumb_func_end sub_8061BE8
thumb_func_start sub_8061C0C
sub_8061C0C: @ 8061C0C
push {r4,lr}
ldr r3, _08061C28 @ =gUnknown_83A6218
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061C28: .4byte gUnknown_83A6218
thumb_func_end sub_8061C0C
thumb_func_start sub_8061C2C
sub_8061C2C: @ 8061C2C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061C70 @ =gUnknown_83A6224
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08061C58
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061C58
movs r0, 0x2
strb r0, [r2]
_08061C58:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061C70: .4byte gUnknown_83A6224
thumb_func_end sub_8061C2C
thumb_func_start sub_8061C74
sub_8061C74: @ 8061C74
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061C90 @ =gObjectEvents
adds r0, r2
ldr r2, _08061C94 @ =sub_8061C98
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061C90: .4byte gObjectEvents
_08061C94: .4byte sub_8061C98
thumb_func_end sub_8061C74
thumb_func_start sub_8061C98
sub_8061C98: @ 8061C98
push {r4,lr}
ldr r3, _08061CB4 @ =gUnknown_83A6228
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061CB4: .4byte gUnknown_83A6228
thumb_func_end sub_8061C98
thumb_func_start sub_8061CB8
sub_8061CB8: @ 8061CB8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061CFC @ =gUnknown_83A6234
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08061CE4
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061CE4
movs r0, 0x2
strb r0, [r2]
_08061CE4:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061CFC: .4byte gUnknown_83A6234
thumb_func_end sub_8061CB8
thumb_func_start sub_8061D00
sub_8061D00: @ 8061D00
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061D1C @ =gObjectEvents
adds r0, r2
ldr r2, _08061D20 @ =sub_8061D24
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061D1C: .4byte gObjectEvents
_08061D20: .4byte sub_8061D24
thumb_func_end sub_8061D00
thumb_func_start sub_8061D24
sub_8061D24: @ 8061D24
push {r4,lr}
ldr r3, _08061D40 @ =gUnknown_83A6238
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061D40: .4byte gUnknown_83A6238
thumb_func_end sub_8061D24
thumb_func_start sub_8061D44
sub_8061D44: @ 8061D44
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061D88 @ =gUnknown_83A6244
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08061D70
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061D70
movs r0, 0x3
strb r0, [r2]
_08061D70:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061D88: .4byte gUnknown_83A6244
thumb_func_end sub_8061D44
thumb_func_start sub_8061D8C
sub_8061D8C: @ 8061D8C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061DA8 @ =gObjectEvents
adds r0, r2
ldr r2, _08061DAC @ =sub_8061DB0
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061DA8: .4byte gObjectEvents
_08061DAC: .4byte sub_8061DB0
thumb_func_end sub_8061D8C
thumb_func_start sub_8061DB0
sub_8061DB0: @ 8061DB0
push {r4,lr}
ldr r3, _08061DCC @ =gUnknown_83A6248
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061DCC: .4byte gUnknown_83A6248
thumb_func_end sub_8061DB0
thumb_func_start sub_8061DD0
sub_8061DD0: @ 8061DD0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061E14 @ =gUnknown_83A6254
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08061DFC
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061DFC
movs r0, 0x3
strb r0, [r2]
_08061DFC:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061E14: .4byte gUnknown_83A6254
thumb_func_end sub_8061DD0
thumb_func_start sub_8061E18
sub_8061E18: @ 8061E18
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061E34 @ =gObjectEvents
adds r0, r2
ldr r2, _08061E38 @ =sub_8061E3C
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061E34: .4byte gObjectEvents
_08061E38: .4byte sub_8061E3C
thumb_func_end sub_8061E18
thumb_func_start sub_8061E3C
sub_8061E3C: @ 8061E3C
push {r4,lr}
ldr r3, _08061E58 @ =gUnknown_83A6258
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061E58: .4byte gUnknown_83A6258
thumb_func_end sub_8061E3C
thumb_func_start sub_8061E5C
sub_8061E5C: @ 8061E5C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061EA0 @ =gUnknown_83A6264
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08061E88
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061E88
movs r0, 0x2
strb r0, [r2]
_08061E88:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061EA0: .4byte gUnknown_83A6264
thumb_func_end sub_8061E5C
thumb_func_start sub_8061EA4
sub_8061EA4: @ 8061EA4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061EC0 @ =gObjectEvents
adds r0, r2
ldr r2, _08061EC4 @ =sub_8061EC8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061EC0: .4byte gObjectEvents
_08061EC4: .4byte sub_8061EC8
thumb_func_end sub_8061EA4
thumb_func_start sub_8061EC8
sub_8061EC8: @ 8061EC8
push {r4,lr}
ldr r3, _08061EE4 @ =gUnknown_83A6268
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061EE4: .4byte gUnknown_83A6268
thumb_func_end sub_8061EC8
thumb_func_start sub_8061EE8
sub_8061EE8: @ 8061EE8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061F2C @ =gUnknown_83A6050
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08061F14
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061F14
movs r0, 0x2
strb r0, [r2]
_08061F14:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061F2C: .4byte gUnknown_83A6050
thumb_func_end sub_8061EE8
thumb_func_start sub_8061F30
sub_8061F30: @ 8061F30
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061F4C @ =gObjectEvents
adds r0, r2
ldr r2, _08061F50 @ =sub_8061F54
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061F4C: .4byte gObjectEvents
_08061F50: .4byte sub_8061F54
thumb_func_end sub_8061F30
thumb_func_start sub_8061F54
sub_8061F54: @ 8061F54
push {r4,lr}
ldr r3, _08061F70 @ =gUnknown_83A6274
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061F70: .4byte gUnknown_83A6274
thumb_func_end sub_8061F54
thumb_func_start sub_8061F74
sub_8061F74: @ 8061F74
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08061FB8 @ =gUnknown_83A6280
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08061FA0
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08061FA0
movs r0, 0x3
strb r0, [r2]
_08061FA0:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08061FB8: .4byte gUnknown_83A6280
thumb_func_end sub_8061F74
thumb_func_start sub_8061FBC
sub_8061FBC: @ 8061FBC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08061FD8 @ =gObjectEvents
adds r0, r2
ldr r2, _08061FDC @ =sub_8061FE0
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08061FD8: .4byte gObjectEvents
_08061FDC: .4byte sub_8061FE0
thumb_func_end sub_8061FBC
thumb_func_start sub_8061FE0
sub_8061FE0: @ 8061FE0
push {r4,lr}
ldr r3, _08061FFC @ =gUnknown_83A6284
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08061FFC: .4byte gUnknown_83A6284
thumb_func_end sub_8061FE0
thumb_func_start sub_8062000
sub_8062000: @ 8062000
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062044 @ =gUnknown_83A6290
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _0806202C
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _0806202C
movs r0, 0x3
strb r0, [r2]
_0806202C:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062044: .4byte gUnknown_83A6290
thumb_func_end sub_8062000
thumb_func_start sub_8062048
sub_8062048: @ 8062048
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062064 @ =gObjectEvents
adds r0, r2
ldr r2, _08062068 @ =sub_806206C
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062064: .4byte gObjectEvents
_08062068: .4byte sub_806206C
thumb_func_end sub_8062048
thumb_func_start sub_806206C
sub_806206C: @ 806206C
push {r4,lr}
ldr r3, _08062088 @ =gUnknown_83A6294
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062088: .4byte gUnknown_83A6294
thumb_func_end sub_806206C
thumb_func_start sub_806208C
sub_806208C: @ 806208C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080620D0 @ =gUnknown_83A62A0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _080620B8
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080620B8
movs r0, 0x2
strb r0, [r2]
_080620B8:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080620D0: .4byte gUnknown_83A62A0
thumb_func_end sub_806208C
thumb_func_start sub_80620D4
sub_80620D4: @ 80620D4
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080620F0 @ =gObjectEvents
adds r0, r2
ldr r2, _080620F4 @ =sub_80620F8
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080620F0: .4byte gObjectEvents
_080620F4: .4byte sub_80620F8
thumb_func_end sub_80620D4
thumb_func_start sub_80620F8
sub_80620F8: @ 80620F8
push {r4,lr}
ldr r3, _08062114 @ =gUnknown_83A62A4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062114: .4byte gUnknown_83A62A4
thumb_func_end sub_80620F8
thumb_func_start sub_8062118
sub_8062118: @ 8062118
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _0806215C @ =gUnknown_83A62B0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08062144
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062144
movs r0, 0x2
strb r0, [r2]
_08062144:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0806215C: .4byte gUnknown_83A62B0
thumb_func_end sub_8062118
thumb_func_start sub_8062160
sub_8062160: @ 8062160
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806217C @ =gObjectEvents
adds r0, r2
ldr r2, _08062180 @ =sub_8062184
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806217C: .4byte gObjectEvents
_08062180: .4byte sub_8062184
thumb_func_end sub_8062160
thumb_func_start sub_8062184
sub_8062184: @ 8062184
push {r4,lr}
ldr r3, _080621A0 @ =gUnknown_83A62B4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080621A0: .4byte gUnknown_83A62B4
thumb_func_end sub_8062184
thumb_func_start sub_80621A4
sub_80621A4: @ 80621A4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080621E8 @ =gUnknown_83A62C0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _080621D0
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080621D0
movs r0, 0x3
strb r0, [r2]
_080621D0:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080621E8: .4byte gUnknown_83A62C0
thumb_func_end sub_80621A4
thumb_func_start sub_80621EC
sub_80621EC: @ 80621EC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062208 @ =gObjectEvents
adds r0, r2
ldr r2, _0806220C @ =sub_8062210
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062208: .4byte gObjectEvents
_0806220C: .4byte sub_8062210
thumb_func_end sub_80621EC
thumb_func_start sub_8062210
sub_8062210: @ 8062210
push {r4,lr}
ldr r3, _0806222C @ =gUnknown_83A62C4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806222C: .4byte gUnknown_83A62C4
thumb_func_end sub_8062210
thumb_func_start sub_8062230
sub_8062230: @ 8062230
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062274 @ =gUnknown_83A62D0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _0806225C
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _0806225C
movs r0, 0x3
strb r0, [r2]
_0806225C:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062274: .4byte gUnknown_83A62D0
thumb_func_end sub_8062230
thumb_func_start sub_8062278
sub_8062278: @ 8062278
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062294 @ =gObjectEvents
adds r0, r2
ldr r2, _08062298 @ =sub_806229C
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062294: .4byte gObjectEvents
_08062298: .4byte sub_806229C
thumb_func_end sub_8062278
thumb_func_start sub_806229C
sub_806229C: @ 806229C
push {r4,lr}
ldr r3, _080622B8 @ =gUnknown_83A62D4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080622B8: .4byte gUnknown_83A62D4
thumb_func_end sub_806229C
thumb_func_start sub_80622BC
sub_80622BC: @ 80622BC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062300 @ =gUnknown_83A62E0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _080622E8
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080622E8
movs r0, 0x2
strb r0, [r2]
_080622E8:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062300: .4byte gUnknown_83A62E0
thumb_func_end sub_80622BC
thumb_func_start sub_8062304
sub_8062304: @ 8062304
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062320 @ =gObjectEvents
adds r0, r2
ldr r2, _08062324 @ =sub_8062328
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062320: .4byte gObjectEvents
_08062324: .4byte sub_8062328
thumb_func_end sub_8062304
thumb_func_start sub_8062328
sub_8062328: @ 8062328
push {r4,lr}
ldr r3, _08062344 @ =gUnknown_83A62E4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062344: .4byte gUnknown_83A62E4
thumb_func_end sub_8062328
thumb_func_start sub_8062348
sub_8062348: @ 8062348
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _0806238C @ =gUnknown_83A62F0
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x1
bne _08062374
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062374
movs r0, 0x2
strb r0, [r2]
_08062374:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0806238C: .4byte gUnknown_83A62F0
thumb_func_end sub_8062348
thumb_func_start sub_8062390
sub_8062390: @ 8062390
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080623AC @ =gObjectEvents
adds r0, r2
ldr r2, _080623B0 @ =sub_80623B4
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080623AC: .4byte gObjectEvents
_080623B0: .4byte sub_80623B4
thumb_func_end sub_8062390
thumb_func_start sub_80623B4
sub_80623B4: @ 80623B4
push {r4,lr}
ldr r3, _080623D0 @ =gUnknown_83A62F4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080623D0: .4byte gUnknown_83A62F4
thumb_func_end sub_80623B4
thumb_func_start sub_80623D4
sub_80623D4: @ 80623D4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062418 @ =gUnknown_83A6300
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08062400
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062400
movs r0, 0x3
strb r0, [r2]
_08062400:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062418: .4byte gUnknown_83A6300
thumb_func_end sub_80623D4
thumb_func_start sub_806241C
sub_806241C: @ 806241C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062438 @ =gObjectEvents
adds r0, r2
ldr r2, _0806243C @ =sub_8062440
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062438: .4byte gObjectEvents
_0806243C: .4byte sub_8062440
thumb_func_end sub_806241C
thumb_func_start sub_8062440
sub_8062440: @ 8062440
push {r4,lr}
ldr r3, _0806245C @ =gUnknown_83A6304
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806245C: .4byte gUnknown_83A6304
thumb_func_end sub_8062440
thumb_func_start sub_8062460
sub_8062460: @ 8062460
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080624A4 @ =gUnknown_83A6310
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _0806248C
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _0806248C
movs r0, 0x3
strb r0, [r2]
_0806248C:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080624A4: .4byte gUnknown_83A6310
thumb_func_end sub_8062460
thumb_func_start sub_80624A8
sub_80624A8: @ 80624A8
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080624C4 @ =gObjectEvents
adds r0, r2
ldr r2, _080624C8 @ =sub_80624CC
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080624C4: .4byte gObjectEvents
_080624C8: .4byte sub_80624CC
thumb_func_end sub_80624A8
thumb_func_start sub_80624CC
sub_80624CC: @ 80624CC
push {r4,lr}
ldr r3, _080624E8 @ =gUnknown_83A6314
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080624E8: .4byte gUnknown_83A6314
thumb_func_end sub_80624CC
thumb_func_start sub_80624EC
sub_80624EC: @ 80624EC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062530 @ =gUnknown_83A6320
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08062518
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062518
movs r0, 0x3
strb r0, [r2]
_08062518:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062530: .4byte gUnknown_83A6320
thumb_func_end sub_80624EC
thumb_func_start sub_8062534
sub_8062534: @ 8062534
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062550 @ =gObjectEvents
adds r0, r2
ldr r2, _08062554 @ =sub_8062558
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062550: .4byte gObjectEvents
_08062554: .4byte sub_8062558
thumb_func_end sub_8062534
thumb_func_start sub_8062558
sub_8062558: @ 8062558
push {r4,lr}
ldr r3, _08062574 @ =gUnknown_83A6324
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062574: .4byte gUnknown_83A6324
thumb_func_end sub_8062558
thumb_func_start sub_8062578
sub_8062578: @ 8062578
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080625BC @ =gUnknown_83A6330
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _080625A4
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080625A4
movs r0, 0x3
strb r0, [r2]
_080625A4:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080625BC: .4byte gUnknown_83A6330
thumb_func_end sub_8062578
thumb_func_start sub_80625C0
sub_80625C0: @ 80625C0
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080625DC @ =gObjectEvents
adds r0, r2
ldr r2, _080625E0 @ =sub_80625E4
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080625DC: .4byte gObjectEvents
_080625E0: .4byte sub_80625E4
thumb_func_end sub_80625C0
thumb_func_start sub_80625E4
sub_80625E4: @ 80625E4
push {r4,lr}
ldr r3, _08062600 @ =gUnknown_83A6334
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062600: .4byte gUnknown_83A6334
thumb_func_end sub_80625E4
thumb_func_start sub_8062604
sub_8062604: @ 8062604
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062648 @ =gUnknown_83A6340
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08062630
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062630
movs r0, 0x3
strb r0, [r2]
_08062630:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062648: .4byte gUnknown_83A6340
thumb_func_end sub_8062604
thumb_func_start sub_806264C
sub_806264C: @ 806264C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062668 @ =gObjectEvents
adds r0, r2
ldr r2, _0806266C @ =sub_8062670
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062668: .4byte gObjectEvents
_0806266C: .4byte sub_8062670
thumb_func_end sub_806264C
thumb_func_start sub_8062670
sub_8062670: @ 8062670
push {r4,lr}
ldr r3, _0806268C @ =gUnknown_83A6344
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806268C: .4byte gUnknown_83A6344
thumb_func_end sub_8062670
thumb_func_start sub_8062690
sub_8062690: @ 8062690
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080626D4 @ =gUnknown_83A6350
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _080626BC
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080626BC
movs r0, 0x3
strb r0, [r2]
_080626BC:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080626D4: .4byte gUnknown_83A6350
thumb_func_end sub_8062690
thumb_func_start sub_80626D8
sub_80626D8: @ 80626D8
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080626F4 @ =gObjectEvents
adds r0, r2
ldr r2, _080626F8 @ =sub_80626FC
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080626F4: .4byte gObjectEvents
_080626F8: .4byte sub_80626FC
thumb_func_end sub_80626D8
thumb_func_start sub_80626FC
sub_80626FC: @ 80626FC
push {r4,lr}
ldr r3, _08062718 @ =gUnknown_83A6354
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062718: .4byte gUnknown_83A6354
thumb_func_end sub_80626FC
thumb_func_start sub_806271C
sub_806271C: @ 806271C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062760 @ =gUnknown_83A6360
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08062748
movs r0, 0xE
ldrsh r1, [r4, r0]
movs r3, 0x12
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062748
movs r0, 0x3
strb r0, [r2]
_08062748:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062760: .4byte gUnknown_83A6360
thumb_func_end sub_806271C
thumb_func_start sub_8062764
sub_8062764: @ 8062764
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062780 @ =gObjectEvents
adds r0, r2
ldr r2, _08062784 @ =sub_8062788
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062780: .4byte gObjectEvents
_08062784: .4byte sub_8062788
thumb_func_end sub_8062764
thumb_func_start sub_8062788
sub_8062788: @ 8062788
push {r4,lr}
ldr r3, _080627A4 @ =gUnknown_83A6364
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080627A4: .4byte gUnknown_83A6364
thumb_func_end sub_8062788
thumb_func_start sub_80627A8
sub_80627A8: @ 80627A8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080627EC @ =gUnknown_83A6370
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _080627D4
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _080627D4
movs r0, 0x3
strb r0, [r2]
_080627D4:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080627EC: .4byte gUnknown_83A6370
thumb_func_end sub_80627A8
thumb_func_start sub_80627F0
sub_80627F0: @ 80627F0
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806280C @ =gObjectEvents
adds r0, r2
ldr r2, _08062810 @ =sub_8062814
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806280C: .4byte gObjectEvents
_08062810: .4byte sub_8062814
thumb_func_end sub_80627F0
thumb_func_start sub_8062814
sub_8062814: @ 8062814
push {r4,lr}
ldr r3, _08062830 @ =gUnknown_83A6374
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062830: .4byte gUnknown_83A6374
thumb_func_end sub_8062814
thumb_func_start sub_8062834
sub_8062834: @ 8062834
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _08062878 @ =gUnknown_83A6380
mov r0, sp
movs r2, 0x4
bl memcpy
adds r2, r4, 0
adds r2, 0x21
ldrb r0, [r2]
cmp r0, 0x2
bne _08062860
movs r0, 0xC
ldrsh r1, [r4, r0]
movs r3, 0x10
ldrsh r0, [r4, r3]
cmp r1, r0
bne _08062860
movs r0, 0x3
strb r0, [r2]
_08062860:
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl MoveObjectEventInNextDirectionInSequence
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062878: .4byte gUnknown_83A6380
thumb_func_end sub_8062834
thumb_func_start sub_806287C
sub_806287C: @ 806287C
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062898 @ =gObjectEvents
adds r0, r2
ldr r2, _0806289C @ =sub_80628A0
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062898: .4byte gObjectEvents
_0806289C: .4byte sub_80628A0
thumb_func_end sub_806287C
thumb_func_start sub_80628A0
sub_80628A0: @ 80628A0
push {r4,lr}
ldr r3, _080628BC @ =gUnknown_83A6384
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080628BC: .4byte gUnknown_83A6384
thumb_func_end sub_80628A0
thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
adds r4, 0x21
ldrb r0, [r4]
cmp r0, 0
bne _080628D8
bl GetPlayerFacingDirection
strb r0, [r4]
_080628D8:
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3
thumb_func_start sub_80628E4
sub_80628E4: @ 80628E4
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
ldr r2, _08062908 @ =gObjectEvents
ldr r3, _0806290C @ =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x1C]
cmp r0, 0xFF
beq _08062904
ldrb r0, [r3, 0x3]
cmp r0, 0x2
bne _08062910
_08062904:
movs r0, 0
b _08062938
.align 2, 0
_08062908: .4byte gObjectEvents
_0806290C: .4byte gPlayerAvatar
_08062910:
ldr r5, _08062940 @ =gUnknown_83A6390
bl player_get_x22
adds r4, r0, 0
lsls r4, 24
lsrs r4, 22
adds r4, r5
bl player_get_direction_upper_nybble
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
ldr r4, [r4]
adds r0, r6, 0
adds r1, r7, 0
movs r3, 0
bl _call_via_r4
lsls r0, 24
lsrs r0, 24
_08062938:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062940: .4byte gUnknown_83A6390
thumb_func_end sub_80628E4
thumb_func_start sub_8062944
sub_8062944: @ 8062944
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08062962
ldrb r0, [r4]
movs r1, 0x3
negs r1, r1
ands r1, r0
strb r1, [r4]
movs r0, 0x1
strh r0, [r5, 0x30]
_08062962:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8062944
thumb_func_start sub_806296C
sub_806296C: @ 806296C
movs r0, 0
bx lr
thumb_func_end sub_806296C
thumb_func_start sub_8062970
sub_8062970: @ 8062970
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
ldr r1, _080629B4 @ =gInitialMovementTypeFacingDirections
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 GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080629B4: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8062970
thumb_func_start sub_80629B8
sub_80629B8: @ 80629B8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062A6C @ =gInitialMovementTypeFacingDirections
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 ObjectEventMoveDestCoords
adds r0, r6, 0
bl GetWalkNormalMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062A3E
mov r1, r8
cmp r1, 0
beq _08062A52
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062A52
_08062A3E:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062A52:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062A6C: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_80629B8
thumb_func_start sub_8062A70
sub_8062A70: @ 8062A70
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062B24 @ =gInitialMovementTypeFacingDirections
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 ObjectEventMoveDestCoords
adds r0, r6, 0
bl sub_8063FB0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062AF6
mov r1, r8
cmp r1, 0
beq _08062B0A
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062B0A
_08062AF6:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062B0A:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062B24: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8062A70
thumb_func_start sub_8062B28
sub_8062B28: @ 8062B28
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062BDC @ =gInitialMovementTypeFacingDirections
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 ObjectEventMoveDestCoords
adds r0, r6, 0
bl sub_8064034
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062BAE
mov r1, r8
cmp r1, 0
beq _08062BC2
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062BC2
_08062BAE:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062BC2:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062BDC: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8062B28
thumb_func_start sub_8062BE0
sub_8062BE0: @ 8062BE0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062C94 @ =gInitialMovementTypeFacingDirections
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 ObjectEventMoveDestCoords
adds r0, r6, 0
bl sub_8064060
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062C66
mov r1, r8
cmp r1, 0
beq _08062C7A
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062C7A
_08062C66:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062C7A:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062C94: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8062BE0
thumb_func_start cph_IM_DIFFERENT
cph_IM_DIFFERENT: @ 8062C98
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
ldr r1, _08062CDC @ =gInitialMovementTypeFacingDirections
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 GetJumpInPlaceMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r5, 0x30]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08062CDC: .4byte gInitialMovementTypeFacingDirections
thumb_func_end cph_IM_DIFFERENT
thumb_func_start sub_8062CE0
sub_8062CE0: @ 8062CE0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062D94 @ =gInitialMovementTypeFacingDirections
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 ObjectEventMoveDestCoords
adds r0, r6, 0
bl sub_8064194
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062D66
mov r1, r8
cmp r1, 0
beq _08062D7A
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062D7A
_08062D66:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062D7A:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062D94: .4byte gInitialMovementTypeFacingDirections
thumb_func_end sub_8062CE0
thumb_func_start oac_hopping
oac_hopping: @ 8062D98
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r4, r0, 0
adds r7, r1, 0
mov r8, r3
lsls r2, 24
lsrs r6, r2, 24
ldr r1, _08062E5C @ =gInitialMovementTypeFacingDirections
ldrb r0, [r4, 0x6]
adds r0, r1
ldrb r0, [r0]
adds r1, r4, 0
adds r1, 0x21
ldrb r1, [r1]
adds r2, r6, 0
bl state_to_direction
adds r6, r0, 0
ldrh r1, [r4, 0x10]
add r0, sp, 0x4
strh r1, [r0]
ldrh r0, [r4, 0x12]
mov r5, sp
adds r5, 0x6
strh r0, [r5]
movs r0, 0x2
str r0, [sp]
adds r0, r6, 0
add r1, sp, 0x4
adds r2, r5, 0
movs r3, 0x2
bl sub_8063A6C
adds r0, r6, 0
bl GetJumpLedgeAnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
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 GetCollisionAtCoords
lsls r0, 24
cmp r0, 0
bne _08062E2C
mov r1, r8
cmp r1, 0
beq _08062E40
add r0, sp, 0x4
movs r2, 0
ldrsh r0, [r0, r2]
movs r2, 0
ldrsh r1, [r5, r2]
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl _call_via_r8
lsls r0, 24
cmp r0, 0
bne _08062E40
_08062E2C:
adds r0, r6, 0
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r7, 0
bl ObjectEventSetSingleMovement
_08062E40:
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
movs r0, 0x2
strh r0, [r7, 0x30]
movs r0, 0x1
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062E5C: .4byte gInitialMovementTypeFacingDirections
thumb_func_end oac_hopping
thumb_func_start sub_8062E60
sub_8062E60: @ 8062E60
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _08062E7C @ =gObjectEvents
adds r0, r2
ldr r2, _08062E80 @ =sub_8062E84
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_08062E7C: .4byte gObjectEvents
_08062E80: .4byte sub_8062E84
thumb_func_end sub_8062E60
thumb_func_start sub_8062E84
sub_8062E84: @ 8062E84
push {r4,lr}
ldr r3, _08062EA0 @ =gUnknown_83A63BC
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08062EA0: .4byte gUnknown_83A63BC
thumb_func_end sub_8062E84
thumb_func_start mss_08062EA4
mss_08062EA4: @ 8062EA4
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
ldr r2, _08062EC8 @ =gObjectEvents
ldr r3, _08062ECC @ =gPlayerAvatar
ldrb r1, [r3, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x1C]
cmp r0, 0xFF
beq _08062EC4
ldrb r0, [r3, 0x3]
cmp r0, 0x2
bne _08062ED0
_08062EC4:
movs r0, 0
b _08062EF8
.align 2, 0
_08062EC8: .4byte gObjectEvents
_08062ECC: .4byte gPlayerAvatar
_08062ED0:
ldr r5, _08062F00 @ =gUnknown_83A6390
bl player_get_x22
adds r4, r0, 0
lsls r4, 24
lsrs r4, 22
adds r4, r5
bl player_get_direction_upper_nybble
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
ldr r3, _08062F04 @ =MetatileBehavior_IsTallGrass
ldr r4, [r4]
adds r0, r6, 0
adds r1, r7, 0
bl _call_via_r4
lsls r0, 24
lsrs r0, 24
_08062EF8:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08062F00: .4byte gUnknown_83A6390
_08062F04: .4byte MetatileBehavior_IsTallGrass
thumb_func_end mss_08062EA4
thumb_func_start ObjectEventCB_TreeDisguise
ObjectEventCB_TreeDisguise: @ 8062F08
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _08062F6C @ =gObjectEvents
adds r4, r1, r0
adds r6, r4, 0
adds r6, 0x21
ldrb r0, [r6]
cmp r0, 0
beq _08062F30
cmp r0, 0x1
bne _08062F50
movs r1, 0x3C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08062F50
_08062F30:
ldr r1, _08062F70 @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
adds r0, r4, 0
bl ObjectEventGetLocalIdAndMap
movs r0, 0x1C
bl FieldEffectStart
strb r0, [r4, 0x1A]
movs r0, 0x1
strb r0, [r6]
ldrh r0, [r5, 0x3C]
adds r0, 0x1
strh r0, [r5, 0x3C]
_08062F50:
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08062F6C @ =gObjectEvents
adds r0, r1
ldr r2, _08062F74 @ =sub_8062F78
adds r1, r5, 0
bl ObjectEventStep
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08062F6C: .4byte gObjectEvents
_08062F70: .4byte gFieldEffectArguments
_08062F74: .4byte sub_8062F78
thumb_func_end ObjectEventCB_TreeDisguise
thumb_func_start sub_8062F78
sub_8062F78: @ 8062F78
push {lr}
bl npc_reset
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8062F78
thumb_func_start ObjectEventCB_MountainDisguise
ObjectEventCB_MountainDisguise: @ 8062F84
push {r4-r6,lr}
adds r5, r0, 0
movs r1, 0x2E
ldrsh r0, [r5, r1]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _08062FE8 @ =gObjectEvents
adds r4, r1, r0
adds r6, r4, 0
adds r6, 0x21
ldrb r0, [r6]
cmp r0, 0
beq _08062FAC
cmp r0, 0x1
bne _08062FCC
movs r1, 0x3C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08062FCC
_08062FAC:
ldr r1, _08062FEC @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
adds r0, r4, 0
bl ObjectEventGetLocalIdAndMap
movs r0, 0x1D
bl FieldEffectStart
strb r0, [r4, 0x1A]
movs r0, 0x1
strb r0, [r6]
ldrh r0, [r5, 0x3C]
adds r0, 0x1
strh r0, [r5, 0x3C]
_08062FCC:
movs r0, 0x2E
ldrsh r1, [r5, r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08062FE8 @ =gObjectEvents
adds r0, r1
ldr r2, _08062FF0 @ =sub_8062F78
adds r1, r5, 0
bl ObjectEventStep
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08062FE8: .4byte gObjectEvents
_08062FEC: .4byte gFieldEffectArguments
_08062FF0: .4byte sub_8062F78
thumb_func_end ObjectEventCB_MountainDisguise
thumb_func_start ObjectEventCB_Hidden1
ObjectEventCB_Hidden1: @ 8062FF4
push {r4,lr}
adds r3, r0, 0
movs r1, 0x3C
ldrsh r0, [r3, r1]
ldr r4, _08063050 @ =gObjectEvents
cmp r0, 0
bne _08063034
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x3]
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x3]
adds r2, r3, 0
adds r2, 0x42
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
ldrb r0, [r3, 0x5]
movs r1, 0xC
orrs r0, r1
strb r0, [r3, 0x5]
ldrh r0, [r3, 0x3C]
adds r0, 0x1
strh r0, [r3, 0x3C]
_08063034:
movs r0, 0x2E
ldrsh r1, [r3, r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r2, _08063054 @ =sub_8063058
adds r1, r3, 0
bl ObjectEventStep
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08063050: .4byte gObjectEvents
_08063054: .4byte sub_8063058
thumb_func_end ObjectEventCB_Hidden1
thumb_func_start sub_8063058
sub_8063058: @ 8063058
push {r4,lr}
ldr r3, _08063074 @ =gUnknown_83A63C8
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063074: .4byte gUnknown_83A63C8
thumb_func_end sub_8063058
thumb_func_start sub_8063078
sub_8063078: @ 8063078
push {lr}
bl npc_reset
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8063078
thumb_func_start sub_8063084
sub_8063084: @ 8063084
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08063096
movs r0, 0
strh r0, [r4, 0x30]
_08063096:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8063084
thumb_func_start sub_80630A0
sub_80630A0: @ 80630A0
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080630BC @ =gObjectEvents
adds r0, r2
ldr r2, _080630C0 @ =sub_80630C4
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080630BC: .4byte gObjectEvents
_080630C0: .4byte sub_80630C4
thumb_func_end sub_80630A0
thumb_func_start sub_80630C4
sub_80630C4: @ 80630C4
push {r4,lr}
ldr r3, _080630E0 @ =gUnknown_83A63CC
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080630E0: .4byte gUnknown_83A63CC
thumb_func_end sub_80630C4
thumb_func_start sub_80630E4
sub_80630E4: @ 80630E4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetStepInPlaceDelay16AnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80630E4
thumb_func_start sub_8063110
sub_8063110: @ 8063110
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806312C @ =gObjectEvents
adds r0, r2
ldr r2, _08063130 @ =sub_8063134
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806312C: .4byte gObjectEvents
_08063130: .4byte sub_8063134
thumb_func_end sub_8063110
thumb_func_start sub_8063134
sub_8063134: @ 8063134
push {r4,lr}
ldr r3, _08063150 @ =gUnknown_83A63D4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063150: .4byte gUnknown_83A63D4
thumb_func_end sub_8063134
thumb_func_start sub_8063154
sub_8063154: @ 8063154
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8064270
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8063154
thumb_func_start sub_8063180
sub_8063180: @ 8063180
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806319C @ =gObjectEvents
adds r0, r2
ldr r2, _080631A0 @ =sub_80631A4
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806319C: .4byte gObjectEvents
_080631A0: .4byte sub_80631A4
thumb_func_end sub_8063180
thumb_func_start sub_80631A4
sub_80631A4: @ 80631A4
push {r4,lr}
ldr r3, _080631C0 @ =gUnknown_83A63DC
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080631C0: .4byte gUnknown_83A63DC
thumb_func_end sub_80631A4
thumb_func_start sub_80631C4
sub_80631C4: @ 80631C4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetStepInPlaceDelay4AnimId
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80631C4
thumb_func_start sub_80631F0
sub_80631F0: @ 80631F0
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _0806320C @ =gObjectEvents
adds r0, r2
ldr r2, _08063210 @ =sub_8063214
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_0806320C: .4byte gObjectEvents
_08063210: .4byte sub_8063214
thumb_func_end sub_80631F0
thumb_func_start sub_8063214
sub_8063214: @ 8063214
push {r4,lr}
ldr r3, _08063230 @ =gUnknown_83A63E4
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063230: .4byte gUnknown_83A63E4
thumb_func_end sub_8063214
thumb_func_start sub_8063234
sub_8063234: @ 8063234
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl npc_reset
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl GetFaceDirectionMovementAction
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSingleMovement
ldrb r0, [r4, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x1
strh r0, [r5, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8063234
thumb_func_start sub_8063268
sub_8063268: @ 8063268
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
bne _0806327A
movs r0, 0
b _08063280
_0806327A:
movs r0, 0x2
strh r0, [r4, 0x30]
movs r0, 0x1
_08063280:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8063268
thumb_func_start sub_8063288
sub_8063288: @ 8063288
ldrb r2, [r0]
movs r1, 0x3
negs r1, r1
ands r1, r2
strb r1, [r0]
movs r0, 0
bx lr
thumb_func_end sub_8063288
thumb_func_start sub_8063298
sub_8063298: @ 8063298
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080632B4 @ =gObjectEvents
adds r0, r2
ldr r2, _080632B8 @ =sub_8063304
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080632B4: .4byte gObjectEvents
_080632B8: .4byte sub_8063304
thumb_func_end sub_8063298
thumb_func_start sub_80632BC
sub_80632BC: @ 80632BC
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080632D8 @ =gObjectEvents
adds r0, r2
ldr r2, _080632DC @ =sub_8063324
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080632D8: .4byte gObjectEvents
_080632DC: .4byte sub_8063324
thumb_func_end sub_80632BC
thumb_func_start sub_80632E0
sub_80632E0: @ 80632E0
push {lr}
adds r1, r0, 0
movs r0, 0x2E
ldrsh r2, [r1, r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r2, _080632FC @ =gObjectEvents
adds r0, r2
ldr r2, _08063300 @ =sub_8063344
bl ObjectEventStep
pop {r0}
bx r0
.align 2, 0
_080632FC: .4byte gObjectEvents
_08063300: .4byte sub_8063344
thumb_func_end sub_80632E0
thumb_func_start sub_8063304
sub_8063304: @ 8063304
push {r4,lr}
ldr r3, _08063320 @ =gUnknown_83A63F0
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063320: .4byte gUnknown_83A63F0
thumb_func_end sub_8063304
thumb_func_start sub_8063324
sub_8063324: @ 8063324
push {r4,lr}
ldr r3, _08063340 @ =gUnknown_83A63FC
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063340: .4byte gUnknown_83A63FC
thumb_func_end sub_8063324
thumb_func_start sub_8063344
sub_8063344: @ 8063344
push {r4,lr}
ldr r3, _08063360 @ =gUnknown_83A6404
movs r4, 0x30
ldrsh r2, [r1, r4]
lsls r2, 2
adds r2, r3
ldr r2, [r2]
bl _call_via_r2
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063360: .4byte gUnknown_83A6404
thumb_func_end sub_8063344
thumb_func_start sub_8063364
sub_8063364: @ 8063364
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl npc_reset
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x98
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r4, 0x30]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8063364
thumb_func_start sub_8063384
sub_8063384: @ 8063384
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
bne _08063396
movs r0, 0
b _0806339C
_08063396:
movs r0, 0x2
strh r0, [r4, 0x30]
movs r0, 0x1
_0806339C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8063384
thumb_func_start sub_80633A4
sub_80633A4: @ 80633A4
ldrb r2, [r0]
movs r1, 0x3
negs r1, r1
ands r1, r2
strb r1, [r0]
movs r0, 0
bx lr
thumb_func_end sub_80633A4
thumb_func_start sub_80633B4
sub_80633B4: @ 80633B4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl npc_reset
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x99
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r4, 0x30]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80633B4
thumb_func_start sub_80633D4
sub_80633D4: @ 80633D4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl npc_reset
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x9A
bl ObjectEventSetSingleMovement
movs r0, 0x1
strh r0, [r4, 0x30]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80633D4
thumb_func_start sub_80633F4
sub_80633F4: @ 80633F4
push {r4,lr}
adds r4, r1, 0
bl ObjectEventExecSingleMovementAction
lsls r0, 24
cmp r0, 0
beq _08063406
movs r0, 0
strh r0, [r4, 0x30]
_08063406:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80633F4
thumb_func_start npc_reset
npc_reset: @ 8063410
ldrb r3, [r0]
movs r2, 0x3
negs r2, r2
ands r2, r3
movs r3, 0x41
negs r3, r3
ands r2, r3
movs r3, 0x7F
ands r2, r3
strb r2, [r0]
movs r2, 0xFF
strb r2, [r0, 0x1C]
movs r0, 0
strh r0, [r1, 0x30]
bx lr
thumb_func_end npc_reset
thumb_func_start ObjectEventDirectionToImageAnimId
ObjectEventDirectionToImageAnimId: @ 8063430
lsls r0, 24
lsrs r0, 24
ldr r1, _0806343C @ =gUnknown_83A640C
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806343C: .4byte gUnknown_83A640C
thumb_func_end ObjectEventDirectionToImageAnimId
thumb_func_start get_go_image_anim_num
get_go_image_anim_num: @ 8063440
lsls r0, 24
lsrs r0, 24
ldr r1, _0806344C @ =gUnknown_83A6415
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806344C: .4byte gUnknown_83A6415
thumb_func_end get_go_image_anim_num
thumb_func_start get_go_fast_image_anim_num
get_go_fast_image_anim_num: @ 8063450
lsls r0, 24
lsrs r0, 24
ldr r1, _0806345C @ =gUnknown_83A641E
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806345C: .4byte gUnknown_83A641E
thumb_func_end get_go_fast_image_anim_num
thumb_func_start get_go_faster_image_anim_num
get_go_faster_image_anim_num: @ 8063460
lsls r0, 24
lsrs r0, 24
ldr r1, _0806346C @ =gUnknown_83A6427
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806346C: .4byte gUnknown_83A6427
thumb_func_end get_go_faster_image_anim_num
thumb_func_start MovementActionFunc_x03_4
MovementActionFunc_x03_4: @ 8063470
lsls r0, 24
lsrs r0, 24
ldr r1, _0806347C @ =gUnknown_83A6430
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806347C: .4byte gUnknown_83A6430
thumb_func_end MovementActionFunc_x03_4
thumb_func_start sub_8063480
sub_8063480: @ 8063480
lsls r0, 24
lsrs r0, 24
ldr r1, _0806348C @ =gUnknown_83A6439
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806348C: .4byte gUnknown_83A6439
thumb_func_end sub_8063480
thumb_func_start sub_8063490
sub_8063490: @ 8063490
lsls r0, 24
lsrs r0, 24
ldr r1, _0806349C @ =gUnknown_83A6442
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806349C: .4byte gUnknown_83A6442
thumb_func_end sub_8063490
thumb_func_start sub_80634A0
sub_80634A0: @ 80634A0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634AC @ =gUnknown_83A644B
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634AC: .4byte gUnknown_83A644B
thumb_func_end sub_80634A0
thumb_func_start sub_80634B0
sub_80634B0: @ 80634B0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634BC @ =gUnknown_83A6454
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634BC: .4byte gUnknown_83A6454
thumb_func_end sub_80634B0
thumb_func_start sub_80634C0
sub_80634C0: @ 80634C0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634CC @ =gUnknown_83A645D
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634CC: .4byte gUnknown_83A645D
thumb_func_end sub_80634C0
thumb_func_start sub_80634D0
sub_80634D0: @ 80634D0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634DC @ =gUnknown_83A6466
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634DC: .4byte gUnknown_83A6466
thumb_func_end sub_80634D0
thumb_func_start sub_80634E0
sub_80634E0: @ 80634E0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634EC @ =gUnknown_83A646F
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634EC: .4byte gUnknown_83A646F
thumb_func_end sub_80634E0
thumb_func_start sub_80634F0
sub_80634F0: @ 80634F0
lsls r0, 24
lsrs r0, 24
ldr r1, _080634FC @ =gUnknown_83A6478
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080634FC: .4byte gUnknown_83A6478
thumb_func_end sub_80634F0
thumb_func_start sub_8063500
sub_8063500: @ 8063500
lsls r0, 24
lsrs r0, 24
ldr r1, _0806350C @ =gUnknown_83A6481
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806350C: .4byte gUnknown_83A6481
thumb_func_end sub_8063500
thumb_func_start sub_8063510
sub_8063510: @ 8063510
lsls r0, 24
lsrs r0, 24
ldr r1, _0806351C @ =gUnknown_83A648A
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806351C: .4byte gUnknown_83A648A
thumb_func_end sub_8063510
thumb_func_start get_run_image_anim_num
get_run_image_anim_num: @ 8063520
lsls r0, 24
lsrs r0, 24
ldr r1, _0806352C @ =gUnknown_83A6493
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0806352C: .4byte gUnknown_83A6493
thumb_func_end get_run_image_anim_num
thumb_func_start sub_8063530
sub_8063530: @ 8063530
push {lr}
adds r2, r0, 0
ldr r1, _08063538 @ =gUnknown_83A3698
b _08063548
.align 2, 0
_08063538: .4byte gUnknown_83A3698
_0806353C:
ldr r0, [r1]
cmp r0, r2
bne _08063546
adds r0, r1, 0
b _08063550
_08063546:
adds r1, 0x8
_08063548:
ldr r0, [r1]
cmp r0, 0
bne _0806353C
movs r0, 0
_08063550:
pop {r1}
bx r1
thumb_func_end sub_8063530
thumb_func_start npc_apply_anim_looping
npc_apply_anim_looping: @ 8063554
push {r4,lr}
adds r4, r1, 0
lsls r2, 24
lsrs r2, 24
ldrb r0, [r0, 0x1]
lsls r0, 27
cmp r0, 0
blt _08063596
adds r0, r4, 0
adds r0, 0x2A
strb r2, [r0]
ldr r0, [r4, 0x8]
bl sub_8063530
adds r1, r4, 0
adds r1, 0x2B
cmp r0, 0
beq _0806358E
ldrb r2, [r1]
ldrb r3, [r0, 0x4]
cmp r2, r3
bne _08063584
ldrb r0, [r0, 0x7]
b _0806358C
_08063584:
ldrb r3, [r0, 0x5]
cmp r2, r3
bne _0806358E
ldrb r0, [r0, 0x6]
_0806358C:
strb r0, [r1]
_0806358E:
ldrb r1, [r1]
adds r0, r4, 0
bl SeekSpriteAnim
_08063596:
pop {r4}
pop {r0}
bx r0
thumb_func_end npc_apply_anim_looping
thumb_func_start obj_npc_animation_step
obj_npc_animation_step: @ 806359C
push {r4,lr}
adds r4, r1, 0
lsls r2, 24
lsrs r2, 24
ldrb r0, [r0, 0x1]
lsls r0, 27
cmp r0, 0
blt _080635D4
adds r0, r4, 0
adds r0, 0x2A
strb r2, [r0]
ldr r0, [r4, 0x8]
bl sub_8063530
adds r2, r0, 0
cmp r2, 0
beq _080635D4
ldrb r1, [r2, 0x5]
adds r0, r4, 0
adds r0, 0x2B
ldrb r0, [r0]
ldrb r3, [r2, 0x4]
cmp r0, r3
bhi _080635CE
ldrb r1, [r2, 0x4]
_080635CE:
adds r0, r4, 0
bl SeekSpriteAnim
_080635D4:
pop {r4}
pop {r0}
bx r0
thumb_func_end obj_npc_animation_step
thumb_func_start sub_80635DC
sub_80635DC: @ 80635DC
push {lr}
lsls r1, 16
lsrs r1, 16
lsls r3, 16
lsrs r3, 16
lsls r0, 16
asrs r0, 16
lsls r2, 16
asrs r2, 16
cmp r0, r2
ble _080635F6
movs r0, 0x3
b _0806360C
_080635F6:
cmp r0, r2
bge _080635FE
movs r0, 0x4
b _0806360C
_080635FE:
lsls r1, 16
lsls r0, r3, 16
cmp r1, r0
bgt _0806360A
movs r0, 0x1
b _0806360C
_0806360A:
movs r0, 0x2
_0806360C:
pop {r1}
bx r1
thumb_func_end sub_80635DC
thumb_func_start SetTrainerMovementType
SetTrainerMovementType: @ 8063610
push {r4,lr}
mov r12, r0
lsls r1, 24
lsrs r1, 24
movs r3, 0
strb r1, [r0, 0x6]
adds r0, 0x21
strb r3, [r0]
adds r0, 0x1
strb r3, [r0]
ldr r4, _08063654 @ =gSprites
mov r0, r12
ldrb r2, [r0, 0x4]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r2, r4, 0
adds r2, 0x1C
adds r0, r2
ldr r2, _08063658 @ =gMovementTypeCallbacks
lsls r1, 2
adds r1, r2
ldr r1, [r1]
str r1, [r0]
mov r0, r12
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r3, [r0, 0x30]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08063654: .4byte gSprites
_08063658: .4byte gMovementTypeCallbacks
thumb_func_end SetTrainerMovementType
thumb_func_start GetTrainerFacingDirectionMovementType
GetTrainerFacingDirectionMovementType: @ 806365C
lsls r0, 24
lsrs r0, 24
ldr r1, _08063668 @ =gUnknown_83A649C
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_08063668: .4byte gUnknown_83A649C
thumb_func_end GetTrainerFacingDirectionMovementType
thumb_func_start npc_block_way__next_tile
npc_block_way__next_tile: @ 806366C
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
lsls r5, r1, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
adds r3, r5, 0
bl GetCollisionAtCoords
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end npc_block_way__next_tile
thumb_func_start GetCollisionAtCoords
GetCollisionAtCoords: @ 80636AC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
lsls r1, 16
lsls r2, 16
lsls r3, 24
lsrs r7, r3, 24
mov r8, r7
lsrs r0, r1, 16
mov r9, r0
asrs r5, r1, 16
lsrs r0, r2, 16
mov r10, r0
asrs r4, r2, 16
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl IsCoordOutsideObjectEventMovementRect
lsls r0, 24
cmp r0, 0
beq _080636E2
movs r0, 0x1
b _08063762
_080636E2:
adds r0, r5, 0
adds r1, r4, 0
bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _08063724
adds r0, r5, 0
adds r1, r4, 0
bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08063724
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
adds r3, r7, 0
bl IsMetatileDirectionallyImpassable
lsls r0, 24
cmp r0, 0
bne _08063724
ldrb r0, [r6, 0x1]
lsrs r0, 7
cmp r0, 0
beq _08063728
mov r0, r8
bl CanCameraMoveInDirection
cmp r0, 0
bne _08063728
_08063724:
movs r0, 0x2
b _08063762
_08063728:
ldrb r0, [r6, 0xB]
lsls r0, 28
lsrs r0, 28
mov r2, r9
lsls r1, r2, 16
asrs r5, r1, 16
mov r2, r10
lsls r1, r2, 16
asrs r4, r1, 16
adds r1, r5, 0
adds r2, r4, 0
bl IsZCoordMismatchAt
lsls r0, 24
cmp r0, 0
beq _0806374C
movs r0, 0x3
b _08063762
_0806374C:
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl CheckForCollisionBetweenObjectEvents
lsls r0, 24
cmp r0, 0
bne _08063760
movs r0, 0
b _08063762
_08063760:
movs r0, 0x4
_08063762:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetCollisionAtCoords
thumb_func_start GetCollisionFlagsAtCoords
GetCollisionFlagsAtCoords: @ 8063770
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r0, 0
lsls r1, 16
lsls r2, 16
lsls r3, 24
lsrs r3, 24
mov r8, r3
lsrs r0, r1, 16
mov r9, r0
asrs r6, r1, 16
lsrs r0, r2, 16
mov r10, r0
asrs r5, r2, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl IsCoordOutsideObjectEventMovementRect
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
adds r0, r6, 0
adds r1, r5, 0
bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _080637E8
adds r0, r6, 0
adds r1, r5, 0
bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _080637E8
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
mov r3, r8
bl IsMetatileDirectionallyImpassable
lsls r0, 24
cmp r0, 0
bne _080637E8
ldrb r0, [r7, 0x1]
lsrs r0, 7
cmp r0, 0
beq _080637EC
mov r0, r8
bl CanCameraMoveInDirection
cmp r0, 0
bne _080637EC
_080637E8:
movs r0, 0x2
orrs r4, r0
_080637EC:
ldrb r0, [r7, 0xB]
lsls r0, 28
lsrs r0, 28
mov r2, r9
lsls r1, r2, 16
asrs r6, r1, 16
mov r2, r10
lsls r1, r2, 16
asrs r5, r1, 16
adds r1, r6, 0
adds r2, r5, 0
bl IsZCoordMismatchAt
lsls r0, 24
cmp r0, 0
beq _08063814
movs r0, 0x4
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_08063814:
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl CheckForCollisionBetweenObjectEvents
lsls r0, 24
cmp r0, 0
beq _0806382C
movs r0, 0x8
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_0806382C:
adds r0, r4, 0
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GetCollisionFlagsAtCoords
thumb_func_start IsCoordOutsideObjectEventMovementRect
IsCoordOutsideObjectEventMovementRect: @ 806383C
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 16
lsrs r3, r1, 16
lsls r2, 16
lsrs r5, r2, 16
ldrb r1, [r4, 0x19]
movs r0, 0xF
ands r0, r1
cmp r0, 0
beq _08063874
lsls r1, 28
lsrs r2, r1, 28
ldrh r0, [r4, 0xC]
subs r2, r0, r2
lsrs r1, 28
adds r0, r1
lsls r0, 16
lsrs r1, r0, 16
lsls r2, 16
lsls r0, r3, 16
asrs r3, r0, 16
cmp r2, r0
bgt _080638A0
lsls r0, r1, 16
asrs r0, 16
cmp r0, r3
blt _080638A0
_08063874:
ldrb r1, [r4, 0x19]
movs r0, 0xF0
ands r0, r1
cmp r0, 0
beq _080638A4
lsls r1, 24
lsrs r2, r1, 28
ldrh r0, [r4, 0xE]
subs r2, r0, r2
lsrs r1, 28
adds r0, r1
lsls r0, 16
lsrs r1, r0, 16
lsls r2, 16
lsls r0, r5, 16
asrs r3, r0, 16
cmp r2, r0
bgt _080638A0
lsls r0, r1, 16
asrs r0, 16
cmp r0, r3
bge _080638A4
_080638A0:
movs r0, 0x1
b _080638A6
_080638A4:
movs r0, 0
_080638A6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end IsCoordOutsideObjectEventMovementRect
thumb_func_start IsMetatileDirectionallyImpassable
IsMetatileDirectionallyImpassable: @ 80638AC
push {r4-r7,lr}
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r7, r2, 16
lsls r3, 24
ldr r1, _080638F4 @ =gUnknown_83A64A8
lsrs r3, 22
subs r5, r3, 0x4
adds r1, r5, r1
ldrb r0, [r0, 0x1E]
ldr r1, [r1]
bl _call_via_r1
lsls r0, 24
cmp r0, 0
bne _080638EE
ldr r4, _080638F8 @ =gUnknown_83A64B8
adds r4, r5, r4
lsls r0, r6, 16
asrs r0, 16
lsls r1, r7, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
ldr r1, [r4]
bl _call_via_r1
lsls r0, 24
cmp r0, 0
beq _080638FC
_080638EE:
movs r0, 0x1
b _080638FE
.align 2, 0
_080638F4: .4byte gUnknown_83A64A8
_080638F8: .4byte gUnknown_83A64B8
_080638FC:
movs r0, 0
_080638FE:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end IsMetatileDirectionallyImpassable
thumb_func_start CheckForCollisionBetweenObjectEvents
CheckForCollisionBetweenObjectEvents: @ 8063904
push {r4-r7,lr}
adds r6, r0, 0
lsls r1, 16
lsrs r7, r1, 16
movs r4, 0
lsls r2, 16
asrs r5, r2, 16
_08063912:
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
ldr r1, _08063968 @ =gObjectEvents
adds r2, r0, r1
ldrb r0, [r2]
lsls r0, 31
cmp r0, 0
beq _0806396C
cmp r2, r6
beq _0806396C
movs r0, 0x10
ldrsh r1, [r2, r0]
lsls r0, r7, 16
asrs r3, r0, 16
cmp r1, r3
bne _0806393C
movs r1, 0x12
ldrsh r0, [r2, r1]
cmp r0, r5
beq _0806394C
_0806393C:
movs r1, 0x14
ldrsh r0, [r2, r1]
cmp r0, r3
bne _0806396C
movs r1, 0x16
ldrsh r0, [r2, r1]
cmp r0, r5
bne _0806396C
_0806394C:
ldrb r0, [r6, 0xB]
lsls r0, 28
lsrs r0, 28
ldrb r1, [r2, 0xB]
lsls r1, 28
lsrs r1, 28
bl AreZCoordsCompatible
lsls r0, 24
cmp r0, 0
beq _0806396C
movs r0, 0x1
b _08063978
.align 2, 0
_08063968: .4byte gObjectEvents
_0806396C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _08063912
movs r0, 0
_08063978:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CheckForCollisionBetweenObjectEvents
thumb_func_start IsBerryTreeSparkling
IsBerryTreeSparkling: @ 8063980
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _080639CC
ldr r3, _080639C4 @ =gSprites
ldr r2, _080639C8 @ =gObjectEvents
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x3C]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080639CC
movs r0, 0x1
b _080639CE
.align 2, 0
_080639C4: .4byte gSprites
_080639C8: .4byte gObjectEvents
_080639CC:
movs r0, 0
_080639CE:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end IsBerryTreeSparkling
thumb_func_start sub_80639D4
sub_80639D4: @ 80639D4
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08063A12
ldr r3, _08063A18 @ =gSprites
ldr r2, _08063A1C @ =gObjectEvents
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r2, [r1, 0x3C]
movs r0, 0x4
orrs r0, r2
strh r0, [r1, 0x3C]
_08063A12:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08063A18: .4byte gSprites
_08063A1C: .4byte gObjectEvents
thumb_func_end sub_80639D4
thumb_func_start MoveCoords
MoveCoords: @ 8063A20
push {r4,lr}
lsls r0, 24
ldr r3, _08063A40 @ =gUnknown_83A64C8
lsrs r0, 22
adds r0, r3
ldrh r3, [r0]
ldrh r4, [r1]
adds r3, r4
strh r3, [r1]
ldrh r0, [r0, 0x2]
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08063A40: .4byte gUnknown_83A64C8
thumb_func_end MoveCoords
thumb_func_start sub_8063A44
sub_8063A44: @ 8063A44
push {r4,lr}
lsls r0, 24
ldr r3, _08063A68 @ =gUnknown_83A64C8
lsrs r0, 22
adds r0, r3
ldrh r3, [r0]
lsls r3, 4
ldrh r4, [r1]
adds r3, r4
strh r3, [r1]
ldrh r0, [r0, 0x2]
lsls r0, 4
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08063A68: .4byte gUnknown_83A64C8
thumb_func_end sub_8063A44
thumb_func_start sub_8063A6C
sub_8063A6C: @ 8063A6C
push {r4-r7,lr}
adds r4, r1, 0
ldr r1, [sp, 0x14]
lsls r0, 24
lsls r3, 16
lsrs r3, 16
adds r7, r3, 0
lsls r1, 16
lsrs r6, r1, 16
mov r12, r6
ldr r1, _08063AD0 @ =gUnknown_83A64C8
lsrs r0, 22
adds r5, r0, r1
movs r0, 0
ldrsh r1, [r5, r0]
cmp r1, 0
ble _08063A98
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r4]
adds r0, r3
strh r0, [r4]
_08063A98:
cmp r1, 0
bge _08063AA6
ldrh r1, [r4]
lsls r0, r7, 16
asrs r0, 16
subs r1, r0
strh r1, [r4]
_08063AA6:
movs r0, 0x2
ldrsh r1, [r5, r0]
cmp r1, 0
ble _08063AB8
lsls r0, r6, 16
asrs r0, 16
ldrh r3, [r2]
adds r0, r3
strh r0, [r2]
_08063AB8:
cmp r1, 0
bge _08063AC8
ldrh r1, [r2]
mov r3, r12
lsls r0, r3, 16
asrs r0, 16
subs r1, r0
strh r1, [r2]
_08063AC8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08063AD0: .4byte gUnknown_83A64C8
thumb_func_end sub_8063A6C
thumb_func_start sub_8063AD4
sub_8063AD4: @ 8063AD4
push {r4,r5,lr}
ldr r5, _08063B10 @ =gSaveBlock1Ptr
ldr r4, [r5]
ldrh r4, [r4]
lsls r0, 16
asrs r0, 16
subs r0, r4
lsls r0, 4
strh r0, [r2]
ldr r0, [r5]
ldrh r0, [r0, 0x2]
lsls r1, 16
asrs r1, 16
subs r1, r0
lsls r1, 4
strh r1, [r3]
ldr r1, _08063B14 @ =gTotalCameraPixelOffsetX
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r1
strh r0, [r2]
ldr r1, _08063B18 @ =gTotalCameraPixelOffsetY
ldrh r0, [r3]
ldrh r1, [r1]
subs r0, r1
strh r0, [r3]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08063B10: .4byte gSaveBlock1Ptr
_08063B14: .4byte gTotalCameraPixelOffsetX
_08063B18: .4byte gTotalCameraPixelOffsetY
thumb_func_end sub_8063AD4
thumb_func_start SetSpritePosToMapCoords
SetSpritePosToMapCoords: @ 8063B1C
push {r4-r7,lr}
adds r7, r2, 0
mov r12, r3
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 16
lsrs r6, r1, 16
ldr r0, _08063BB0 @ =gTotalCameraPixelOffsetX
ldrh r0, [r0]
negs r0, r0
ldr r1, _08063BB4 @ =gUnknown_3005050
ldr r2, [r1, 0x10]
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
ldr r0, _08063BB8 @ =gTotalCameraPixelOffsetY
ldrh r0, [r0]
negs r0, r0
ldr r1, [r1, 0x14]
subs r0, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r2, 0
ble _08063B56
lsls r0, r3, 16
movs r3, 0x80
lsls r3, 13
adds r0, r3
lsrs r3, r0, 16
_08063B56:
cmp r2, 0
bge _08063B62
lsls r0, r3, 16
ldr r2, _08063BBC @ =0xfff00000
adds r0, r2
lsrs r3, r0, 16
_08063B62:
cmp r1, 0
ble _08063B70
lsls r0, r4, 16
movs r2, 0x80
lsls r2, 13
adds r0, r2
lsrs r4, r0, 16
_08063B70:
cmp r1, 0
bge _08063B7C
lsls r0, r4, 16
ldr r1, _08063BBC @ =0xfff00000
adds r0, r1
lsrs r4, r0, 16
_08063B7C:
ldr r2, _08063BC0 @ =gSaveBlock1Ptr
ldr r0, [r2]
ldrh r1, [r0]
lsls r0, r5, 16
asrs r0, 16
subs r0, r1
lsls r0, 4
lsls r1, r3, 16
asrs r1, 16
adds r1, r0
strh r1, [r7]
ldr r0, [r2]
ldrh r1, [r0, 0x2]
lsls r0, r6, 16
asrs r0, 16
subs r0, r1
lsls r0, 4
lsls r1, r4, 16
asrs r1, 16
adds r1, r0
mov r2, r12
strh r1, [r2]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08063BB0: .4byte gTotalCameraPixelOffsetX
_08063BB4: .4byte gUnknown_3005050
_08063BB8: .4byte gTotalCameraPixelOffsetY
_08063BBC: .4byte 0xfff00000
_08063BC0: .4byte gSaveBlock1Ptr
thumb_func_end SetSpritePosToMapCoords
thumb_func_start sub_8063BC4
sub_8063BC4: @ 8063BC4
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
mov r8, r1
adds r4, r2, 0
adds r5, r3, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
movs r1, 0
ldrsh r0, [r6, r1]
mov r2, r8
movs r3, 0
ldrsh r1, [r2, r3]
adds r2, r6, 0
mov r3, r8
bl SetSpritePosToMapCoords
lsls r4, 16
asrs r4, 16
ldrh r0, [r6]
adds r4, r0
strh r4, [r6]
lsls r5, 16
asrs r5, 16
mov r1, r8
ldrh r1, [r1]
adds r5, r1
mov r2, r8
strh r5, [r2]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8063BC4
thumb_func_start GetObjectEventMovingCameraOffset
GetObjectEventMovingCameraOffset: @ 8063C10
push {lr}
adds r2, r0, 0
movs r0, 0
strh r0, [r2]
strh r0, [r1]
ldr r3, _08063C4C @ =gUnknown_3005050
ldr r0, [r3, 0x10]
cmp r0, 0
ble _08063C26
movs r0, 0x1
strh r0, [r2]
_08063C26:
ldr r0, [r3, 0x10]
cmp r0, 0
bge _08063C32
ldrh r0, [r2]
subs r0, 0x1
strh r0, [r2]
_08063C32:
ldr r2, [r3, 0x14]
cmp r2, 0
ble _08063C3E
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08063C3E:
cmp r2, 0
bge _08063C48
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
_08063C48:
pop {r0}
bx r0
.align 2, 0
_08063C4C: .4byte gUnknown_3005050
thumb_func_end GetObjectEventMovingCameraOffset
thumb_func_start ObjectEventMoveDestCoords
ObjectEventMoveDestCoords: @ 8063C50
push {r4,lr}
lsls r1, 24
lsrs r1, 24
ldrh r4, [r0, 0x10]
strh r4, [r2]
ldrh r0, [r0, 0x12]
strh r0, [r3]
adds r0, r1, 0
adds r1, r2, 0
adds r2, r3, 0
bl MoveCoords
pop {r4}
pop {r0}
bx r0
thumb_func_end ObjectEventMoveDestCoords
thumb_func_start ObjectEventIsMovementOverridden
ObjectEventIsMovementOverridden: @ 8063C70
push {lr}
ldrb r1, [r0]
movs r0, 0x42
ands r0, r1
cmp r0, 0
bne _08063C80
movs r0, 0
b _08063C82
_08063C80:
movs r0, 0x1
_08063C82:
pop {r1}
bx r1
thumb_func_end ObjectEventIsMovementOverridden
thumb_func_start ObjectEventIsSpecialAnimActive
ObjectEventIsSpecialAnimActive: @ 8063C88
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
lsls r0, 25
cmp r0, 0
bge _08063C9E
ldrb r0, [r1, 0x1C]
cmp r0, 0xFF
beq _08063C9E
movs r0, 0x1
b _08063CA0
_08063C9E:
movs r0, 0
_08063CA0:
pop {r1}
bx r1
thumb_func_end ObjectEventIsSpecialAnimActive
thumb_func_start ObjectEventSetHeldMovement
ObjectEventSetHeldMovement: @ 8063CA4
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
bl sub_8112CAC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08063CC8
adds r0, r4, 0
bl ObjectEventIsMovementOverridden
lsls r0, 24
cmp r0, 0
beq _08063CCE
movs r0, 0x1
b _08063CF4
_08063CC8:
adds r0, r4, 0
bl ObjectEventClearAnimIfSpecialAnimActive
_08063CCE:
adds r0, r4, 0
bl UnfreezeObjectEvent
movs r3, 0
strb r5, [r4, 0x1C]
ldrb r0, [r4]
movs r1, 0x40
orrs r0, r1
movs r1, 0x7F
ands r0, r1
strb r0, [r4]
ldr r2, _08063CFC @ =gSprites
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r3, [r0, 0x32]
movs r0, 0
_08063CF4:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08063CFC: .4byte gSprites
thumb_func_end ObjectEventSetHeldMovement
thumb_func_start ObjectEventForceSetSpecialAnim
ObjectEventForceSetSpecialAnim: @ 8063D00
push {r4,r5,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
bl ObjectEventClearAnimIfSpecialAnimActive
adds r0, r5, 0
adds r1, r4, 0
bl ObjectEventSetHeldMovement
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end ObjectEventForceSetSpecialAnim
thumb_func_start ObjectEventClearAnimIfSpecialAnimActive
ObjectEventClearAnimIfSpecialAnimActive: @ 8063D1C
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
lsls r0, 25
cmp r0, 0
bge _08063D2E
adds r0, r1, 0
bl ObjectEventClearAnim
_08063D2E:
pop {r0}
bx r0
thumb_func_end ObjectEventClearAnimIfSpecialAnimActive
thumb_func_start ObjectEventClearAnim
ObjectEventClearAnim: @ 8063D34
movs r1, 0xFF
strb r1, [r0, 0x1C]
ldrb r2, [r0]
movs r1, 0x41
negs r1, r1
ands r1, r2
movs r2, 0x7F
ands r1, r2
strb r1, [r0]
ldr r3, _08063D64 @ =gSprites
ldrb r2, [r0, 0x4]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r3
movs r2, 0
strh r2, [r1, 0x30]
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r2, [r0, 0x32]
bx lr
.align 2, 0
_08063D64: .4byte gSprites
thumb_func_end ObjectEventClearAnim
thumb_func_start ObjectEventCheckHeldMovementStatus
ObjectEventCheckHeldMovementStatus: @ 8063D68
push {lr}
ldrb r1, [r0]
lsls r0, r1, 25
cmp r0, 0
blt _08063D76
movs r0, 0x10
b _08063D78
_08063D76:
lsrs r0, r1, 7
_08063D78:
pop {r1}
bx r1
thumb_func_end ObjectEventCheckHeldMovementStatus
thumb_func_start ObjectEventClearHeldMovementIfFinished
ObjectEventClearHeldMovementIfFinished: @ 8063D7C
push {r4,r5,lr}
adds r5, r0, 0
bl ObjectEventCheckHeldMovementStatus
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08063D96
cmp r4, 0x10
beq _08063D96
adds r0, r5, 0
bl ObjectEventClearAnimIfSpecialAnimActive
_08063D96:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end ObjectEventClearHeldMovementIfFinished
thumb_func_start ObjectEventGetSpecialAnim
ObjectEventGetSpecialAnim: @ 8063DA0
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
lsls r0, 25
cmp r0, 0
blt _08063DB0
movs r0, 0xFF
b _08063DB2
_08063DB0:
ldrb r0, [r1, 0x1C]
_08063DB2:
pop {r1}
bx r1
thumb_func_end ObjectEventGetSpecialAnim
thumb_func_start ObjectEventStep
ObjectEventStep: @ 8063DB8
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
bl DoGroundEffects_OnSpawn
adds r0, r4, 0
adds r1, r5, 0
bl sub_80679C8
adds r0, r4, 0
bl ObjectEventIsSpecialAnimActive
lsls r0, 24
cmp r0, 0
beq _08063DE2
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventExecSpecialAnim
b _08063DF8
_08063DE2:
ldrb r0, [r4, 0x1]
lsls r0, 31
cmp r0, 0
bne _08063DF8
_08063DEA:
adds r0, r4, 0
adds r1, r5, 0
bl _call_via_r6
lsls r0, 24
cmp r0, 0
bne _08063DEA
_08063DF8:
adds r0, r4, 0
adds r1, r5, 0
bl DoGroundEffects_OnBeginStep
adds r0, r4, 0
adds r1, r5, 0
bl DoGroundEffects_OnFinishStep
adds r0, r4, 0
adds r1, r5, 0
bl npc_obj_transfer_image_anim_pause_flag
adds r0, r4, 0
adds r1, r5, 0
bl sub_80679F8
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventUpdateSubpriority
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ObjectEventStep
thumb_func_start sub_8063E28
sub_8063E28: @ 8063E28
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl DoGroundEffects_OnSpawn
adds r0, r4, 0
adds r1, r5, 0
bl sub_80679C8
adds r0, r4, 0
bl ObjectEventIsSpecialAnimActive
lsls r0, 24
cmp r0, 0
beq _08063E5C
adds r0, r5, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _08063E5C
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventExecHeldMovementAction
_08063E5C:
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsIce_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08063E78
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsUnknownMovement48
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08063E80
_08063E78:
ldrb r0, [r4, 0x1]
movs r1, 0x4
orrs r0, r1
b _08063E88
_08063E80:
ldrb r1, [r4, 0x1]
movs r0, 0x5
negs r0, r0
ands r0, r1
_08063E88:
strb r0, [r4, 0x1]
adds r0, r4, 0
adds r1, r5, 0
bl DoGroundEffects_OnBeginStep
adds r0, r4, 0
adds r1, r5, 0
bl DoGroundEffects_OnFinishStep
adds r0, r4, 0
adds r1, r5, 0
bl npc_obj_transfer_image_anim_pause_flag
adds r0, r4, 0
adds r1, r5, 0
bl sub_80679F8
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventUpdateSubpriority
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8063E28
thumb_func_start GetFaceDirectionMovementAction
GetFaceDirectionMovementAction: @ 8063EB8
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063EE0 @ =gUnknown_83A64EC
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063ED0
movs r4, 0
_08063ED0:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063EE0: .4byte gUnknown_83A64EC
thumb_func_end GetFaceDirectionMovementAction
thumb_func_start sub_8063EE4
sub_8063EE4: @ 8063EE4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063F0C @ =gUnknown_83A64F1
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063EFC
movs r4, 0
_08063EFC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063F0C: .4byte gUnknown_83A64F1
thumb_func_end sub_8063EE4
thumb_func_start sub_8063F10
sub_8063F10: @ 8063F10
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bls _08063F1C
movs r1, 0
_08063F1C:
ldr r0, _08063F28 @ =gUnknown_83A64F6
adds r0, r1, r0
ldrb r0, [r0]
pop {r1}
bx r1
.align 2, 0
_08063F28: .4byte gUnknown_83A64F6
thumb_func_end sub_8063F10
thumb_func_start sub_8063F2C
sub_8063F2C: @ 8063F2C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063F54 @ =gUnknown_83A64FB
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063F44
movs r4, 0
_08063F44:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063F54: .4byte gUnknown_83A64FB
thumb_func_end sub_8063F2C
thumb_func_start sub_8063F58
sub_8063F58: @ 8063F58
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063F80 @ =gUnknown_83A6500
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063F70
movs r4, 0
_08063F70:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063F80: .4byte gUnknown_83A6500
thumb_func_end sub_8063F58
thumb_func_start GetWalkNormalMovementAction
GetWalkNormalMovementAction: @ 8063F84
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063FAC @ =gUnknown_83A6505
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063F9C
movs r4, 0
_08063F9C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063FAC: .4byte gUnknown_83A6505
thumb_func_end GetWalkNormalMovementAction
thumb_func_start sub_8063FB0
sub_8063FB0: @ 8063FB0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08063FD8 @ =gUnknown_83A650A
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063FC8
movs r4, 0
_08063FC8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08063FD8: .4byte gUnknown_83A650A
thumb_func_end sub_8063FB0
thumb_func_start sub_8063FDC
sub_8063FDC: @ 8063FDC
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064004 @ =gUnknown_83A650F
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08063FF4
movs r4, 0
_08063FF4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064004: .4byte gUnknown_83A650F
thumb_func_end sub_8063FDC
thumb_func_start sub_8064008
sub_8064008: @ 8064008
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064030 @ =gUnknown_83A6514
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064020
movs r4, 0
_08064020:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064030: .4byte gUnknown_83A6514
thumb_func_end sub_8064008
thumb_func_start sub_8064034
sub_8064034: @ 8064034
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0806405C @ =gUnknown_83A6519
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0806404C
movs r4, 0
_0806404C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806405C: .4byte gUnknown_83A6519
thumb_func_end sub_8064034
thumb_func_start sub_8064060
sub_8064060: @ 8064060
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064088 @ =gUnknown_83A651E
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064078
movs r4, 0
_08064078:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064088: .4byte gUnknown_83A651E
thumb_func_end sub_8064060
thumb_func_start sub_806408C
sub_806408C: @ 806408C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080640B4 @ =gUnknown_83A6523
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080640A4
movs r4, 0
_080640A4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080640B4: .4byte gUnknown_83A6523
thumb_func_end sub_806408C
thumb_func_start sub_80640B8
sub_80640B8: @ 80640B8
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080640E0 @ =gUnknown_83A6528
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080640D0
movs r4, 0
_080640D0:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080640E0: .4byte gUnknown_83A6528
thumb_func_end sub_80640B8
thumb_func_start sub_80640E4
sub_80640E4: @ 80640E4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0806410C @ =gUnknown_83A652D
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080640FC
movs r4, 0
_080640FC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806410C: .4byte gUnknown_83A652D
thumb_func_end sub_80640E4
thumb_func_start GetJumpLedgeAnimId
GetJumpLedgeAnimId: @ 8064110
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064138 @ =gUnknown_83A6532
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064128
movs r4, 0
_08064128:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064138: .4byte gUnknown_83A6532
thumb_func_end GetJumpLedgeAnimId
thumb_func_start GetJumpInPlaceMovementAction
GetJumpInPlaceMovementAction: @ 806413C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064164 @ =gUnknown_83A6537
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064154
movs r4, 0
_08064154:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064164: .4byte gUnknown_83A6537
thumb_func_end GetJumpInPlaceMovementAction
thumb_func_start sub_8064168
sub_8064168: @ 8064168
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064190 @ =gUnknown_83A653C
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064180
movs r4, 0
_08064180:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064190: .4byte gUnknown_83A653C
thumb_func_end sub_8064168
thumb_func_start sub_8064194
sub_8064194: @ 8064194
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080641BC @ =gUnknown_83A6541
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080641AC
movs r4, 0
_080641AC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080641BC: .4byte gUnknown_83A6541
thumb_func_end sub_8064194
thumb_func_start sub_80641C0
sub_80641C0: @ 80641C0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080641E8 @ =gUnknown_83A6546
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080641D8
movs r4, 0
_080641D8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080641E8: .4byte gUnknown_83A6546
thumb_func_end sub_80641C0
thumb_func_start sub_80641EC
sub_80641EC: @ 80641EC
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064214 @ =gUnknown_83A654B
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064204
movs r4, 0
_08064204:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064214: .4byte gUnknown_83A654B
thumb_func_end sub_80641EC
thumb_func_start GetStepInPlaceDelay32AnimId
GetStepInPlaceDelay32AnimId: @ 8064218
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064240 @ =gUnknown_83A6550
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064230
movs r4, 0
_08064230:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064240: .4byte gUnknown_83A6550
thumb_func_end GetStepInPlaceDelay32AnimId
thumb_func_start GetStepInPlaceDelay16AnimId
GetStepInPlaceDelay16AnimId: @ 8064244
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0806426C @ =gUnknown_83A6555
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0806425C
movs r4, 0
_0806425C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806426C: .4byte gUnknown_83A6555
thumb_func_end GetStepInPlaceDelay16AnimId
thumb_func_start sub_8064270
sub_8064270: @ 8064270
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064298 @ =gUnknown_83A655A
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064288
movs r4, 0
_08064288:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064298: .4byte gUnknown_83A655A
thumb_func_end sub_8064270
thumb_func_start GetStepInPlaceDelay4AnimId
GetStepInPlaceDelay4AnimId: @ 806429C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080642C4 @ =gUnknown_83A655F
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080642B4
movs r4, 0
_080642B4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080642C4: .4byte gUnknown_83A655F
thumb_func_end GetStepInPlaceDelay4AnimId
thumb_func_start ObjectEventFaceOppositeDirection
ObjectEventFaceOppositeDirection: @ 80642C8
push {r4,lr}
adds r4, r0, 0
lsls r0, r1, 24
lsrs r0, 24
bl GetOppositeDirection
lsls r0, 24
lsrs r0, 24
bl GetFaceDirectionMovementAction
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetHeldMovement
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end ObjectEventFaceOppositeDirection
thumb_func_start sub_80642F4
sub_80642F4: @ 80642F4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0806431C @ =gUnknown_83A6564
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0806430C
movs r4, 0
_0806430C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806431C: .4byte gUnknown_83A6564
thumb_func_end sub_80642F4
thumb_func_start sub_8064320
sub_8064320: @ 8064320
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064348 @ =gUnknown_83A6569
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064338
movs r4, 0
_08064338:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064348: .4byte gUnknown_83A6569
thumb_func_end sub_8064320
thumb_func_start sub_806434C
sub_806434C: @ 806434C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064374 @ =gUnknown_83A656E
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064364
movs r4, 0
_08064364:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064374: .4byte gUnknown_83A656E
thumb_func_end sub_806434C
thumb_func_start sub_8064378
sub_8064378: @ 8064378
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080643A0 @ =gUnknown_83A6573
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064390
movs r4, 0
_08064390:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080643A0: .4byte gUnknown_83A6573
thumb_func_end sub_8064378
thumb_func_start sub_80643A4
sub_80643A4: @ 80643A4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080643CC @ =gUnknown_83A6578
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080643BC
movs r4, 0
_080643BC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080643CC: .4byte gUnknown_83A6578
thumb_func_end sub_80643A4
thumb_func_start sub_80643D0
sub_80643D0: @ 80643D0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080643F8 @ =gUnknown_83A657D
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080643E8
movs r4, 0
_080643E8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080643F8: .4byte gUnknown_83A657D
thumb_func_end sub_80643D0
thumb_func_start sub_80643FC
sub_80643FC: @ 80643FC
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064424 @ =gUnknown_83A6582
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064414
movs r4, 0
_08064414:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064424: .4byte gUnknown_83A6582
thumb_func_end sub_80643FC
thumb_func_start sub_8064428
sub_8064428: @ 8064428
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08064450 @ =gUnknown_83A6587
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08064440
movs r4, 0
_08064440:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064450: .4byte gUnknown_83A6587
thumb_func_end sub_8064428
thumb_func_start sub_8064454
sub_8064454: @ 8064454
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0806447C @ =gUnknown_83A658C
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0806446C
movs r4, 0
_0806446C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0806447C: .4byte gUnknown_83A658C
thumb_func_end sub_8064454
thumb_func_start GetOppositeDirection
GetOppositeDirection: @ 8064480
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080644A4 @ =gUnknown_83A6591
mov r0, sp
movs r2, 0x8
bl memcpy
subs r1, r4, 0x1
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0x7
bhi _080644A8
mov r2, sp
adds r0, r2, r1
ldrb r0, [r0]
b _080644AA
.align 2, 0
_080644A4: .4byte gUnknown_83A6591
_080644A8:
adds r0, r4, 0
_080644AA:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end GetOppositeDirection
thumb_func_start zffu_offset_calc
zffu_offset_calc: @ 80644B4
lsls r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, _080644C8 @ =gUnknown_83A6599
lsrs r0, 22
subs r0, 0x5
adds r1, r0
adds r1, r2
ldrb r0, [r1]
bx lr
.align 2, 0
_080644C8: .4byte gUnknown_83A6599
thumb_func_end zffu_offset_calc
thumb_func_start state_to_direction
state_to_direction: @ 80644CC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r1, 24
adds r0, r1, 0
lsls r2, 24
lsrs r2, 24
cmp r1, 0
beq _080644EC
cmp r2, 0
beq _080644EC
cmp r1, 0x4
bhi _080644EC
cmp r2, 0x4
bls _080644F0
_080644EC:
movs r0, 0
b _08064502
_080644F0:
adds r1, r2, 0
bl zffu_offset_calc
ldr r2, _08064508 @ =gUnknown_83A65A9
lsls r1, r4, 2
subs r1, 0x5
adds r0, r1
adds r0, r2
ldrb r0, [r0]
_08064502:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08064508: .4byte gUnknown_83A65A9
thumb_func_end state_to_direction
thumb_func_start ObjectEventExecSpecialAnim
ObjectEventExecSpecialAnim: @ 806450C
push {r4,lr}
adds r4, r0, 0
ldr r2, _08064540 @ =sMovementActionFuncs
ldrb r0, [r4, 0x1C]
lsls r0, 2
adds r0, r2
movs r3, 0x32
ldrsh r2, [r1, r3]
ldr r0, [r0]
lsls r2, 2
adds r2, r0
ldr r2, [r2]
adds r0, r4, 0
bl _call_via_r2
lsls r0, 24
cmp r0, 0
beq _08064538
ldrb r0, [r4]
movs r1, 0x80
orrs r0, r1
strb r0, [r4]
_08064538:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08064540: .4byte sMovementActionFuncs
thumb_func_end ObjectEventExecSpecialAnim
thumb_func_start ObjectEventExecHeldMovementAction
ObjectEventExecHeldMovementAction: @ 8064544
push {r4,lr}
adds r4, r0, 0
ldr r2, _08064584 @ =sMovementActionFuncs
ldrb r0, [r4, 0x1C]
lsls r0, 2
adds r0, r2
movs r3, 0x32
ldrsh r2, [r1, r3]
ldr r0, [r0]
lsls r2, 2
adds r2, r0
ldr r2, [r2]
adds r0, r4, 0
bl _call_via_r2
lsls r0, 24
cmp r0, 0
beq _0806457C
ldrb r0, [r4]
movs r1, 0x80
orrs r0, r1
strb r0, [r4]
ldrb r0, [r4, 0x5]
cmp r0, 0x61
bne _0806457C
adds r0, r4, 0
bl sub_806DE28
_0806457C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08064584: .4byte sMovementActionFuncs
thumb_func_end ObjectEventExecHeldMovementAction
thumb_func_start ObjectEventExecSingleMovementAction
ObjectEventExecSingleMovementAction: @ 8064588
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _080645B4 @ =sMovementActionFuncs
ldrb r0, [r4, 0x1C]
lsls r0, 2
adds r0, r1
movs r2, 0x32
ldrsh r1, [r5, r2]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldr r2, [r1]
adds r0, r4, 0
adds r1, r5, 0
bl _call_via_r2
lsls r0, 24
cmp r0, 0
bne _080645B8
movs r0, 0
b _080645C2
.align 2, 0
_080645B4: .4byte sMovementActionFuncs
_080645B8:
movs r0, 0xFF
strb r0, [r4, 0x1C]
movs r0, 0
strh r0, [r5, 0x32]
movs r0, 0x1
_080645C2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end ObjectEventExecSingleMovementAction
thumb_func_start ObjectEventSetSingleMovement
ObjectEventSetSingleMovement: @ 80645C8
push {r4,lr}
adds r3, r0, 0
lsls r2, 24
lsrs r4, r2, 24
movs r0, 0
strb r4, [r3, 0x1C]
strh r0, [r1, 0x32]
ldr r0, _080645F0 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0x2
bne _080645EA
ldrb r0, [r3, 0x8]
ldrb r1, [r3, 0x9]
ldrb r2, [r3, 0xA]
adds r3, r4, 0
bl sub_81124EC
_080645EA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080645F0: .4byte gUnknown_3005E88
thumb_func_end ObjectEventSetSingleMovement
thumb_func_start FaceDirection
FaceDirection: @ 80645F4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r1, r2, 24
lsrs r1, 24
bl ObjectEventSetDirection
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl obj_npc_animation_step
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r5, 0x32]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end FaceDirection
thumb_func_start MovementActionFunc_x00_0
MovementActionFunc_x00_0: @ 8064638
push {lr}
movs r2, 0x1
bl FaceDirection
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x00_0
thumb_func_start MovementActionFunc_x01_0
MovementActionFunc_x01_0: @ 8064648
push {lr}
movs r2, 0x2
bl FaceDirection
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x01_0
thumb_func_start MovementActionFunc_x02_0
MovementActionFunc_x02_0: @ 8064658
push {lr}
movs r2, 0x3
bl FaceDirection
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x02_0
thumb_func_start MovementActionFunc_x03_0
MovementActionFunc_x03_0: @ 8064668
push {lr}
movs r2, 0x4
bl FaceDirection
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x03_0
thumb_func_start sub_8064678
sub_8064678: @ 8064678
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x4
mov r8, r0
mov r9, r1
adds r4, r2, 0
adds r6, r3, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
ldrh r1, [r0, 0x10]
mov r0, sp
strh r1, [r0]
mov r1, r8
ldrh r0, [r1, 0x12]
mov r5, sp
adds r5, 0x2
strh r0, [r5]
mov r0, r8
adds r1, r4, 0
bl ObjectEventSetDirection
adds r0, r4, 0
mov r1, sp
adds r2, r5, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r5, r0]
mov r0, r8
bl npc_coords_shift
mov r0, r9
adds r1, r4, 0
adds r2, r6, 0
bl oamt_npc_ministep_reset
mov r2, r9
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
mov r1, r8
ldrb r0, [r1]
movs r1, 0x4
orrs r0, r1
mov r2, r8
strb r0, [r2]
movs r0, 0x1
mov r1, r9
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8064678
thumb_func_start do_go_anim
do_go_anim: @ 80646FC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r5, r0, 0
mov r8, r1
adds r4, r3, 0
lsls r2, 24
lsrs r2, 24
lsls r4, 24
lsrs r4, 24
mov r1, sp
ldr r0, _08064754 @ =gUnknown_83A6884
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
ldm r0!, {r3,r6}
stm r1!, {r3,r6}
adds r0, r5, 0
mov r1, r8
adds r3, r4, 0
bl sub_8064678
lsls r4, 2
mov r7, sp
adds r1, r7, r4
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
ldr r1, [r1]
bl _call_via_r1
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
mov r1, r8
bl npc_apply_anim_looping
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08064754: .4byte gUnknown_83A6884
thumb_func_end do_go_anim
thumb_func_start do_run_anim
do_run_anim: @ 8064758
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
movs r3, 0x1
bl sub_8064678
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_run_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end do_run_anim
thumb_func_start npc_obj_ministep_stop_on_arrival
npc_obj_ministep_stop_on_arrival: @ 8064788
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl obj_npc_ministep
lsls r0, 24
cmp r0, 0
bne _0806479E
movs r0, 0
b _080647BA
_0806479E:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_080647BA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end npc_obj_ministep_stop_on_arrival
thumb_func_start sub_80647C0
sub_80647C0: @ 80647C0
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
lsls r5, r2, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl ObjectEventSetDirection
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
bl npc_coords_shift
mov r0, r8
adds r1, r5, 0
bl sub_8068BBC
mov r2, r8
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
strb r0, [r6]
movs r0, 0x1
mov r1, r8
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80647C0
thumb_func_start sub_8064830
sub_8064830: @ 8064830
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
bl sub_80647C0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8064830
thumb_func_start an_walk_any_2
an_walk_any_2: @ 806485C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_8068BCC
lsls r0, 24
cmp r0, 0
bne _08064872
movs r0, 0
b _0806488E
_08064872:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_0806488E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end an_walk_any_2
thumb_func_start sub_8064894
sub_8064894: @ 8064894
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
lsls r5, r2, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl ObjectEventSetDirection
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
bl npc_coords_shift
mov r0, r8
adds r1, r5, 0
bl sub_8068C58
mov r2, r8
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
strb r0, [r6]
movs r0, 0x1
mov r1, r8
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8064894
thumb_func_start sub_8064904
sub_8064904: @ 8064904
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
bl sub_8064894
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8064904
thumb_func_start sub_8064930
sub_8064930: @ 8064930
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_8068C68
lsls r0, 24
cmp r0, 0
bne _08064946
movs r0, 0
b _08064962
_08064946:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_08064962:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8064930
thumb_func_start MovementActionFunc_x9B_0
MovementActionFunc_x9B_0: @ 8064968
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8064904
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x9B_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9B_0
thumb_func_start MovementActionFunc_x9B_1
MovementActionFunc_x9B_1: @ 8064988
push {r4,lr}
adds r4, r1, 0
bl sub_8064930
lsls r0, 24
cmp r0, 0
bne _0806499A
movs r0, 0
b _080649A0
_0806499A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080649A0:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9B_1
thumb_func_start MovementActionFunc_x9C_0
MovementActionFunc_x9C_0: @ 80649A8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8064904
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x9C_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9C_0
thumb_func_start MovementActionFunc_x9C_1
MovementActionFunc_x9C_1: @ 80649C8
push {r4,lr}
adds r4, r1, 0
bl sub_8064930
lsls r0, 24
cmp r0, 0
bne _080649DA
movs r0, 0
b _080649E0
_080649DA:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080649E0:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9C_1
thumb_func_start MovementActionFunc_x9D_0
MovementActionFunc_x9D_0: @ 80649E8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8064904
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x9D_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9D_0
thumb_func_start MovementActionFunc_x9D_1
MovementActionFunc_x9D_1: @ 8064A08
push {r4,lr}
adds r4, r1, 0
bl sub_8064930
lsls r0, 24
cmp r0, 0
bne _08064A1A
movs r0, 0
b _08064A20
_08064A1A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064A20:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9D_1
thumb_func_start MovementActionFunc_x9E_0
MovementActionFunc_x9E_0: @ 8064A28
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8064904
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x9E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9E_0
thumb_func_start MovementActionFunc_x9E_1
MovementActionFunc_x9E_1: @ 8064A48
push {r4,lr}
adds r4, r1, 0
bl sub_8064930
lsls r0, 24
cmp r0, 0
bne _08064A5A
movs r0, 0
b _08064A60
_08064A5A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064A60:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9E_1
thumb_func_start MovementActionFunc_x08_0
MovementActionFunc_x08_0: @ 8064A68
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8064830
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x08_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x08_0
thumb_func_start MovementActionFunc_x08_1
MovementActionFunc_x08_1: @ 8064A88
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08064A9A
movs r0, 0
b _08064AA0
_08064A9A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064AA0:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x08_1
thumb_func_start MovementActionFunc_x09_0
MovementActionFunc_x09_0: @ 8064AA8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8064830
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x09_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x09_0
thumb_func_start MovementActionFunc_x09_1
MovementActionFunc_x09_1: @ 8064AC8
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08064ADA
movs r0, 0
b _08064AE0
_08064ADA:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064AE0:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x09_1
thumb_func_start MovementActionFunc_x0A_0
MovementActionFunc_x0A_0: @ 8064AE8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8064830
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0A_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0A_0
thumb_func_start MovementActionFunc_x0A_1
MovementActionFunc_x0A_1: @ 8064B08
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08064B1A
movs r0, 0
b _08064B20
_08064B1A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064B20:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0A_1
thumb_func_start MovementActionFunc_x0B_0
MovementActionFunc_x0B_0: @ 8064B28
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8064830
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0B_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0B_0
thumb_func_start MovementActionFunc_x0B_1
MovementActionFunc_x0B_1: @ 8064B48
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08064B5A
movs r0, 0
b _08064B60
_08064B5A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064B60:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0B_1
thumb_func_start sub_8064B68
sub_8064B68: @ 8064B68
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
lsls r5, r2, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl ObjectEventSetDirection
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
bl npc_coords_shift
mov r0, r8
adds r1, r5, 0
bl sub_8068C08
mov r2, r8
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
strb r0, [r6]
movs r0, 0x1
mov r1, r8
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8064B68
thumb_func_start sub_8064BD8
sub_8064BD8: @ 8064BD8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
bl sub_8064B68
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8064BD8
thumb_func_start sub_8064C04
sub_8064C04: @ 8064C04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_8068C18
lsls r0, 24
cmp r0, 0
bne _08064C1A
movs r0, 0
b _08064C36
_08064C1A:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_08064C36:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8064C04
thumb_func_start MovementActionFunc_x0D_0
MovementActionFunc_x0D_0: @ 8064C3C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8064BD8
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0D_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0D_0
thumb_func_start MovementActionFunc_x0D_1
MovementActionFunc_x0D_1: @ 8064C5C
push {r4,lr}
adds r4, r1, 0
bl sub_8064C04
lsls r0, 24
cmp r0, 0
bne _08064C6E
movs r0, 0
b _08064C74
_08064C6E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064C74:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0D_1
thumb_func_start MovementActionFunc_x0C_0
MovementActionFunc_x0C_0: @ 8064C7C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8064BD8
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0C_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0C_0
thumb_func_start MovementActionFunc_x0C_1
MovementActionFunc_x0C_1: @ 8064C9C
push {r4,lr}
adds r4, r1, 0
bl sub_8064C04
lsls r0, 24
cmp r0, 0
bne _08064CAE
movs r0, 0
b _08064CB4
_08064CAE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064CB4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0C_1
thumb_func_start MovementActionFunc_x0E_0
MovementActionFunc_x0E_0: @ 8064CBC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8064BD8
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0E_0
thumb_func_start MovementActionFunc_x0E_1
MovementActionFunc_x0E_1: @ 8064CDC
push {r4,lr}
adds r4, r1, 0
bl sub_8064C04
lsls r0, 24
cmp r0, 0
bne _08064CEE
movs r0, 0
b _08064CF4
_08064CEE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064CF4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0E_1
thumb_func_start MovementActionFunc_x0F_0
MovementActionFunc_x0F_0: @ 8064CFC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8064BD8
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x0F_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0F_0
thumb_func_start MovementActionFunc_x0F_1
MovementActionFunc_x0F_1: @ 8064D1C
push {r4,lr}
adds r4, r1, 0
bl sub_8064C04
lsls r0, 24
cmp r0, 0
bne _08064D2E
movs r0, 0
b _08064D34
_08064D2E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064D34:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x0F_1
thumb_func_start MovementActionFunc_x10_0
MovementActionFunc_x10_0: @ 8064D3C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x10_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x10_0
thumb_func_start MovementActionFunc_x10_1
MovementActionFunc_x10_1: @ 8064D5C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08064D6E
movs r0, 0
b _08064D74
_08064D6E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064D74:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x10_1
thumb_func_start MovementActionFunc_x11_0
MovementActionFunc_x11_0: @ 8064D7C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x11_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x11_0
thumb_func_start MovementActionFunc_x11_1
MovementActionFunc_x11_1: @ 8064D9C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08064DAE
movs r0, 0
b _08064DB4
_08064DAE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064DB4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x11_1
thumb_func_start MovementActionFunc_x12_0
MovementActionFunc_x12_0: @ 8064DBC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x12_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x12_0
thumb_func_start MovementActionFunc_x12_1
MovementActionFunc_x12_1: @ 8064DDC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08064DEE
movs r0, 0
b _08064DF4
_08064DEE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064DF4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x12_1
thumb_func_start MovementActionFunc_x13_0
MovementActionFunc_x13_0: @ 8064DFC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x13_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x13_0
thumb_func_start MovementActionFunc_x13_1
MovementActionFunc_x13_1: @ 8064E1C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08064E2E
movs r0, 0
b _08064E34
_08064E2E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08064E34:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x13_1
thumb_func_start sub_8064E3C
sub_8064E3C: @ 8064E3C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r7, r0, 0
mov r10, r1
adds r4, r2, 0
mov r8, r3
ldr r0, [sp, 0x30]
lsls r4, 24
lsrs r4, 24
mov r1, r8
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r1, _08064EF4 @ =gUnknown_83A6958
add r0, sp, 0x4
movs r2, 0x6
bl memcpy
add r5, sp, 0xC
movs r0, 0
strh r0, [r5]
mov r6, sp
adds r6, 0xE
strh r0, [r6]
adds r0, r7, 0
adds r1, r4, 0
bl ObjectEventSetDirection
mov r1, r8
lsls r0, r1, 1
add r0, sp
adds r0, 0x4
movs r1, 0
ldrsh r3, [r0, r1]
str r3, [sp]
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8063A6C
ldrh r1, [r5]
ldrh r0, [r7, 0x10]
adds r1, r0
lsls r1, 16
asrs r1, 16
ldrh r2, [r6]
ldrh r0, [r7, 0x12]
adds r2, r0
lsls r2, 16
asrs r2, 16
adds r0, r7, 0
bl npc_coords_shift
mov r0, r10
adds r1, r4, 0
mov r2, r8
mov r3, r9
bl sub_8068D1C
movs r0, 0x1
mov r1, r10
strh r0, [r1, 0x32]
movs r0, 0x2C
add r10, r0
mov r0, r10
ldrb r1, [r0]
movs r0, 0x41
negs r0, r0
ands r0, r1
mov r1, r10
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0x4
orrs r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r7]
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08064EF4: .4byte gUnknown_83A6958
thumb_func_end sub_8064E3C
thumb_func_start maybe_shadow_1
maybe_shadow_1: @ 8064EF8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [sp, 0x10]
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r0, 24
lsrs r0, 24
str r0, [sp]
adds r0, r4, 0
bl sub_8064E3C
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
adds r0, r4, 0
bl DoShadowFieldEffect
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end maybe_shadow_1
thumb_func_start sub_8064F3C
sub_8064F3C: @ 8064F3C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r6, r0, 0
adds r7, r1, 0
adds r4, r2, 0
ldr r1, _08064FC8 @ =gUnknown_83A695E
add r0, sp, 0x4
movs r2, 0x6
bl memcpy
adds r0, r7, 0
bl _call_via_r4
lsls r0, 24
lsrs r0, 24
mov r8, r0
cmp r0, 0x1
bne _08064FCC
movs r1, 0x36
ldrsh r0, [r7, r1]
lsls r0, 1
add r0, sp
adds r0, 0x4
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _08064FCC
add r4, sp, 0xC
movs r0, 0
strh r0, [r4]
mov r5, sp
adds r5, 0xE
strh r0, [r5]
ldrb r0, [r6, 0x18]
lsrs r0, 4
movs r2, 0x36
ldrsh r1, [r7, r2]
lsls r1, 1
add r1, sp
adds r1, 0x4
movs r2, 0
ldrsh r3, [r1, r2]
str r3, [sp]
adds r1, r4, 0
adds r2, r5, 0
bl sub_8063A6C
ldrh r1, [r4]
ldrh r0, [r6, 0x10]
adds r1, r0
lsls r1, 16
asrs r1, 16
ldrh r2, [r5]
ldrh r0, [r6, 0x12]
adds r2, r0
lsls r2, 16
asrs r2, 16
adds r0, r6, 0
bl npc_coords_shift
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r6]
b _08064FF0
.align 2, 0
_08064FC8: .4byte gUnknown_83A695E
_08064FCC:
mov r1, r8
cmp r1, 0xFF
bne _08064FF0
adds r0, r6, 0
bl npc_coords_shift_still
ldrb r0, [r6]
movs r1, 0x8
orrs r0, r1
movs r1, 0x20
orrs r0, r1
strb r0, [r6]
adds r2, r7, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
_08064FF0:
mov r0, r8
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8064F3C
thumb_func_start sub_8065000
sub_8065000: @ 8065000
push {lr}
ldr r2, _08065010 @ =sub_8068D3C
bl sub_8064F3C
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_08065010: .4byte sub_8068D3C
thumb_func_end sub_8065000
thumb_func_start sub_8065014
sub_8065014: @ 8065014
push {lr}
ldr r2, _08065024 @ =sub_8068DC4
bl sub_8064F3C
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_08065024: .4byte sub_8068DC4
thumb_func_end sub_8065014
thumb_func_start sub_8065028
sub_8065028: @ 8065028
push {lr}
bl sub_8065000
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _0806503A
movs r0, 0
b _0806503C
_0806503A:
movs r0, 0x1
_0806503C:
pop {r1}
bx r1
thumb_func_end sub_8065028
thumb_func_start sub_8065040
sub_8065040: @ 8065040
push {lr}
bl sub_8065014
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _08065052
movs r0, 0
b _08065054
_08065052:
movs r0, 0x1
_08065054:
pop {r1}
bx r1
thumb_func_end sub_8065040
thumb_func_start sub_8065058
sub_8065058: @ 8065058
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065000
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08065072
cmp r0, 0xFF
bne _0806509E
movs r0, 0x1
b _080650A0
_08065072:
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetOppositeDirection
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl ObjectEventSetDirection
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl obj_npc_animation_step
_0806509E:
movs r0, 0
_080650A0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8065058
thumb_func_start MovementActionFunc_x14_0
MovementActionFunc_x14_0: @ 80650A8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x14_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x14_0
thumb_func_start MovementActionFunc_x14_1
MovementActionFunc_x14_1: @ 80650D4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080650E8
movs r0, 0
b _080650F8
_080650E8:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080650F8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x14_1
thumb_func_start MovementActionFunc_x15_0
MovementActionFunc_x15_0: @ 8065100
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x15_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x15_0
thumb_func_start MovementActionFunc_x15_1
MovementActionFunc_x15_1: @ 806512C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08065140
movs r0, 0
b _08065150
_08065140:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08065150:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x15_1
thumb_func_start MovementActionFunc_x16_0
MovementActionFunc_x16_0: @ 8065158
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x16_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x16_0
thumb_func_start MovementActionFunc_x16_1
MovementActionFunc_x16_1: @ 8065184
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08065198
movs r0, 0
b _080651A8
_08065198:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080651A8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x16_1
thumb_func_start MovementActionFunc_x17_0
MovementActionFunc_x17_0: @ 80651B0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x17_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x17_0
thumb_func_start MovementActionFunc_x17_1
MovementActionFunc_x17_1: @ 80651DC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080651F0
movs r0, 0
b _08065200
_080651F0:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08065200:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x17_1
thumb_func_start sub_8065208
sub_8065208: @ 8065208
movs r2, 0x1
strh r2, [r0, 0x32]
strh r1, [r0, 0x34]
bx lr
thumb_func_end sub_8065208
thumb_func_start MovementActionFunc_x18_1
MovementActionFunc_x18_1: @ 8065210
push {lr}
ldrh r0, [r1, 0x34]
subs r0, 0x1
strh r0, [r1, 0x34]
lsls r0, 16
cmp r0, 0
beq _08065222
movs r0, 0
b _08065228
_08065222:
movs r0, 0x2
strh r0, [r1, 0x32]
movs r0, 0x1
_08065228:
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x18_1
thumb_func_start MovementActionFunc_x18_0
MovementActionFunc_x18_0: @ 806522C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
bl sub_8065208
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x18_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x18_0
thumb_func_start MovementActionFunc_x19_0
MovementActionFunc_x19_0: @ 806524C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x2
bl sub_8065208
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x18_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x19_0
thumb_func_start MovementActionFunc_x1A_0
MovementActionFunc_x1A_0: @ 806526C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x4
bl sub_8065208
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x18_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1A_0
thumb_func_start MovementActionFunc_x1B_0
MovementActionFunc_x1B_0: @ 806528C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x8
bl sub_8065208
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x18_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1B_0
thumb_func_start MovementActionFunc_x1C_0
MovementActionFunc_x1C_0: @ 80652AC
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x10
bl sub_8065208
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x18_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1C_0
thumb_func_start MovementActionFunc_x1D_0
MovementActionFunc_x1D_0: @ 80652CC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x1D_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1D_0
thumb_func_start MovementActionFunc_x1D_1
MovementActionFunc_x1D_1: @ 80652EC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080652FE
movs r0, 0
b _08065304
_080652FE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065304:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1D_1
thumb_func_start MovementActionFunc_x1E_0
MovementActionFunc_x1E_0: @ 806530C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x1E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1E_0
thumb_func_start MovementActionFunc_x1E_1
MovementActionFunc_x1E_1: @ 806532C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806533E
movs r0, 0
b _08065344
_0806533E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065344:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1E_1
thumb_func_start MovementActionFunc_x1F_0
MovementActionFunc_x1F_0: @ 806534C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x1F_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1F_0
thumb_func_start MovementActionFunc_x1F_1
MovementActionFunc_x1F_1: @ 806536C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806537E
movs r0, 0
b _08065384
_0806537E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065384:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x1F_1
thumb_func_start MovementActionFunc_x20_0
MovementActionFunc_x20_0: @ 806538C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x20_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x20_0
thumb_func_start MovementActionFunc_x20_1
MovementActionFunc_x20_1: @ 80653AC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080653BE
movs r0, 0
b _080653C4
_080653BE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080653C4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x20_1
thumb_func_start sub_80653CC
sub_80653CC: @ 80653CC
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
bl obj_npc_ministep
lsls r0, 24
cmp r0, 0
bne _080653E0
movs r0, 0
b _080653F0
_080653E0:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
movs r0, 0x1
_080653F0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80653CC
thumb_func_start MovementActionFunc_xA0_0
MovementActionFunc_xA0_0: @ 80653F8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r1, [r4, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x1
beq _0806541A
movs r0, 0x1
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_0806541A:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8064678
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA0_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA0_0
thumb_func_start MovementActionFunc_xA0_1
MovementActionFunc_xA0_1: @ 8065438
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl AnimateSprite
adds r0, r4, 0
adds r1, r5, 0
bl sub_80653CC
lsls r0, 24
cmp r0, 0
bne _08065456
movs r0, 0
b _0806545C
_08065456:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806545C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA0_1
thumb_func_start MovementActionFunc_xA1_0
MovementActionFunc_xA1_0: @ 8065464
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r1, [r4, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x2
beq _08065486
movs r0, 0x2
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_08065486:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x1
bl sub_8064678
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA1_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA1_0
thumb_func_start MovementActionFunc_xA1_1
MovementActionFunc_xA1_1: @ 80654A4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl AnimateSprite
adds r0, r4, 0
adds r1, r5, 0
bl sub_80653CC
lsls r0, 24
cmp r0, 0
bne _080654C2
movs r0, 0
b _080654C8
_080654C2:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080654C8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA1_1
thumb_func_start MovementActionFunc_xA2_0
MovementActionFunc_xA2_0: @ 80654D0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r1, [r4, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x3
beq _080654F2
movs r0, 0x3
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_080654F2:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8064678
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA2_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA2_0
thumb_func_start MovementActionFunc_xA2_1
MovementActionFunc_xA2_1: @ 8065510
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl AnimateSprite
adds r0, r4, 0
adds r1, r5, 0
bl sub_80653CC
lsls r0, 24
cmp r0, 0
bne _0806552E
movs r0, 0
b _08065534
_0806552E:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08065534:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA2_1
thumb_func_start MovementActionFunc_xA3_0
MovementActionFunc_xA3_0: @ 806553C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r1, [r4, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x4
beq _0806555E
movs r0, 0x4
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
_0806555E:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
movs r3, 0x1
bl sub_8064678
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA3_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA3_0
thumb_func_start MovementActionFunc_xA3_1
MovementActionFunc_xA3_1: @ 806557C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl AnimateSprite
adds r0, r4, 0
adds r1, r5, 0
bl sub_80653CC
lsls r0, 24
cmp r0, 0
bne _0806559A
movs r0, 0
b _080655A0
_0806559A:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080655A0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA3_1
thumb_func_start sub_80655A8
sub_80655A8: @ 80655A8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r1, r2, 24
lsrs r1, 24
bl ObjectEventSetDirection
adds r0, r4, 0
bl npc_coords_shift_still
adds r2, r5, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r5, 0x32]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80655A8
thumb_func_start MovementActionFunc_x04_0
MovementActionFunc_x04_0: @ 80655D4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x1
beq _080655F6
movs r0, 0x1
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_080655F6:
adds r0, r4, 0
bl AnimateSprite
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_80655A8
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x04_0
thumb_func_start MovementActionFunc_x05_0
MovementActionFunc_x05_0: @ 8065610
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x2
beq _08065632
movs r0, 0x2
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_08065632:
adds r0, r4, 0
bl AnimateSprite
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x2
bl sub_80655A8
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x05_0
thumb_func_start MovementActionFunc_x06_0
MovementActionFunc_x06_0: @ 806564C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x3
beq _0806566E
movs r0, 0x3
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_0806566E:
adds r0, r4, 0
bl AnimateSprite
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x3
bl sub_80655A8
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x06_0
thumb_func_start MovementActionFunc_x07_0
MovementActionFunc_x07_0: @ 8065688
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x18]
movs r0, 0xF
ands r0, r1
cmp r0, 0x4
beq _080656AA
movs r0, 0x4
bl ObjectEventDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
_080656AA:
adds r0, r4, 0
bl AnimateSprite
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x4
bl sub_80655A8
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x07_0
thumb_func_start sub_80656C4
sub_80656C4: @ 80656C4
push {r4-r6,lr}
mov r6, r8
push {r6}
mov r8, r0
adds r6, r1, 0
adds r1, r2, 0
adds r4, r3, 0
ldr r5, [sp, 0x14]
lsls r1, 24
lsrs r1, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 16
lsrs r5, 16
bl ObjectEventSetDirection
mov r0, r8
adds r1, r6, 0
adds r2, r4, 0
bl npc_apply_anim_looping
adds r2, r6, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r6, 0x32]
strh r5, [r6, 0x34]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80656C4
thumb_func_start MovementActionFunc_x25_1
MovementActionFunc_x25_1: @ 806570C
push {lr}
ldrh r0, [r1, 0x34]
subs r0, 0x1
strh r0, [r1, 0x34]
lsls r0, 16
cmp r0, 0
beq _0806571E
movs r0, 0
b _08065730
_0806571E:
movs r0, 0x2
strh r0, [r1, 0x32]
adds r2, r1, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_08065730:
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x25_1
thumb_func_start MovementActionFunc_x21_1
MovementActionFunc_x21_1: @ 8065734
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrh r1, [r4, 0x34]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0806575E
adds r3, r4, 0
adds r3, 0x2C
ldrb r2, [r3]
lsls r1, r2, 26
lsrs r1, 26
adds r1, 0x1
movs r0, 0x3F
ands r1, r0
movs r0, 0x40
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0806575E:
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x21_1
thumb_func_start MovementActionFunc_x21_0
MovementActionFunc_x21_0: @ 8065770
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x20
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x21_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x21_0
thumb_func_start MovementActionFunc_x22_0
MovementActionFunc_x22_0: @ 80657A8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x20
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x21_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x22_0
thumb_func_start MovementActionFunc_x23_0
MovementActionFunc_x23_0: @ 80657E0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x20
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x21_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x23_0
thumb_func_start MovementActionFunc_x24_0
MovementActionFunc_x24_0: @ 8065818
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x20
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x21_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x24_0
thumb_func_start MovementActionFunc_x25_0
MovementActionFunc_x25_0: @ 8065850
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x10
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x25_0
thumb_func_start MovementActionFunc_x26_0
MovementActionFunc_x26_0: @ 8065888
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x10
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x26_0
thumb_func_start MovementActionFunc_x27_0
MovementActionFunc_x27_0: @ 80658C0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x10
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x27_0
thumb_func_start MovementActionFunc_x28_0
MovementActionFunc_x28_0: @ 80658F8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl get_go_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x10
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x28_0
thumb_func_start MovementActionFunc_x29_0
MovementActionFunc_x29_0: @ 8065930
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl get_go_fast_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x29_0
thumb_func_start MovementActionFunc_x2A_0
MovementActionFunc_x2A_0: @ 8065968
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl get_go_fast_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2A_0
thumb_func_start MovementActionFunc_x2B_0
MovementActionFunc_x2B_0: @ 80659A0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl get_go_fast_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2B_0
thumb_func_start MovementActionFunc_x2C_0
MovementActionFunc_x2C_0: @ 80659D8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl get_go_fast_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2C_0
thumb_func_start MovementActionFunc_x2D_0
MovementActionFunc_x2D_0: @ 8065A10
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl get_go_faster_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x4
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2D_0
thumb_func_start MovementActionFunc_x2E_0
MovementActionFunc_x2E_0: @ 8065A48
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl get_go_faster_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x4
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2E_0
thumb_func_start MovementActionFunc_x2F_0
MovementActionFunc_x2F_0: @ 8065A80
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl get_go_faster_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x4
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x2F_0
thumb_func_start MovementActionFunc_x30_0
MovementActionFunc_x30_0: @ 8065AB8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl get_go_faster_image_anim_num
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x4
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x30_0
thumb_func_start MovementActionFunc_x31_0
MovementActionFunc_x31_0: @ 8065AF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x31_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x31_0
thumb_func_start MovementActionFunc_x31_1
MovementActionFunc_x31_1: @ 8065B10
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065B22
movs r0, 0
b _08065B28
_08065B22:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065B28:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x31_1
thumb_func_start MovementActionFunc_x32_0
MovementActionFunc_x32_0: @ 8065B30
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x32_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x32_0
thumb_func_start MovementActionFunc_x32_1
MovementActionFunc_x32_1: @ 8065B50
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065B62
movs r0, 0
b _08065B68
_08065B62:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065B68:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x32_1
thumb_func_start MovementActionFunc_x33_0
MovementActionFunc_x33_0: @ 8065B70
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x33_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x33_0
thumb_func_start MovementActionFunc_x33_1
MovementActionFunc_x33_1: @ 8065B90
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065BA2
movs r0, 0
b _08065BA8
_08065BA2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065BA8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x33_1
thumb_func_start MovementActionFunc_x34_0
MovementActionFunc_x34_0: @ 8065BB0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x34_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x34_0
thumb_func_start MovementActionFunc_x34_1
MovementActionFunc_x34_1: @ 8065BD0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065BE2
movs r0, 0
b _08065BE8
_08065BE2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065BE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x34_1
thumb_func_start MovementActionFunc_x35_0
MovementActionFunc_x35_0: @ 8065BF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x35_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x35_0
thumb_func_start MovementActionFunc_x35_1
MovementActionFunc_x35_1: @ 8065C10
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065C22
movs r0, 0
b _08065C28
_08065C22:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065C28:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x35_1
thumb_func_start MovementActionFunc_x36_0
MovementActionFunc_x36_0: @ 8065C30
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x36_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x36_0
thumb_func_start MovementActionFunc_x36_1
MovementActionFunc_x36_1: @ 8065C50
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065C62
movs r0, 0
b _08065C68
_08065C62:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065C68:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x36_1
thumb_func_start MovementActionFunc_x37_0
MovementActionFunc_x37_0: @ 8065C70
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x37_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x37_0
thumb_func_start MovementActionFunc_x37_1
MovementActionFunc_x37_1: @ 8065C90
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065CA2
movs r0, 0
b _08065CA8
_08065CA2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065CA8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x37_1
thumb_func_start MovementActionFunc_x38_0
MovementActionFunc_x38_0: @ 8065CB0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x38_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x38_0
thumb_func_start MovementActionFunc_x38_1
MovementActionFunc_x38_1: @ 8065CD0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065CE2
movs r0, 0
b _08065CE8
_08065CE2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065CE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x38_1
thumb_func_start MovementActionFunc_x39_0
MovementActionFunc_x39_0: @ 8065CF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x39_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x39_0
thumb_func_start MovementActionFunc_x39_1
MovementActionFunc_x39_1: @ 8065D10
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065D22
movs r0, 0
b _08065D28
_08065D22:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065D28:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x39_1
thumb_func_start MovementActionFunc_x3A_0
MovementActionFunc_x3A_0: @ 8065D30
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3A_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3A_0
thumb_func_start MovementActionFunc_x3A_1
MovementActionFunc_x3A_1: @ 8065D50
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065D62
movs r0, 0
b _08065D68
_08065D62:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065D68:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3A_1
thumb_func_start MovementActionFunc_x3B_0
MovementActionFunc_x3B_0: @ 8065D70
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3B_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3B_0
thumb_func_start MovementActionFunc_x3B_1
MovementActionFunc_x3B_1: @ 8065D90
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065DA2
movs r0, 0
b _08065DA8
_08065DA2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065DA8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3B_1
thumb_func_start MovementActionFunc_x3C_0
MovementActionFunc_x3C_0: @ 8065DB0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3C_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3C_0
thumb_func_start MovementActionFunc_x3C_1
MovementActionFunc_x3C_1: @ 8065DD0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065DE2
movs r0, 0
b _08065DE8
_08065DE2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065DE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3C_1
thumb_func_start do_run_south_anim
do_run_south_anim: @ 8065DF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3D_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_south_anim
thumb_func_start MovementActionFunc_x3D_1
MovementActionFunc_x3D_1: @ 8065E10
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065E22
movs r0, 0
b _08065E28
_08065E22:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065E28:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3D_1
thumb_func_start do_run_north_anim
do_run_north_anim: @ 8065E30
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_north_anim
thumb_func_start MovementActionFunc_x3E_1
MovementActionFunc_x3E_1: @ 8065E50
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065E62
movs r0, 0
b _08065E68
_08065E62:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065E68:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3E_1
thumb_func_start do_run_west_anim
do_run_west_anim: @ 8065E70
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x3F_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_west_anim
thumb_func_start MovementActionFunc_x3F_1
MovementActionFunc_x3F_1: @ 8065E90
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065EA2
movs r0, 0
b _08065EA8
_08065EA2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065EA8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x3F_1
thumb_func_start do_run_east_anim
do_run_east_anim: @ 8065EB0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x40_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_east_anim
thumb_func_start MovementActionFunc_x40_1
MovementActionFunc_x40_1: @ 8065ED0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08065EE2
movs r0, 0
b _08065EE8
_08065EE2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065EE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x40_1
thumb_func_start sub_8065EF0
sub_8065EF0: @ 8065EF0
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
lsls r5, r2, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl ObjectEventSetDirection
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
bl npc_coords_shift
mov r0, r8
adds r1, r5, 0
bl sub_8068CA4
mov r2, r8
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
strb r0, [r6]
movs r0, 0x1
mov r1, r8
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8065EF0
thumb_func_start sub_8065F60
sub_8065F60: @ 8065F60
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
bl sub_8065EF0
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_run_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8065F60
thumb_func_start sub_8065F8C
sub_8065F8C: @ 8065F8C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_8068CB4
lsls r0, 24
cmp r0, 0
bne _08065FA2
movs r0, 0
b _08065FBE
_08065FA2:
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4]
movs r1, 0x8
orrs r0, r1
strb r0, [r4]
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
_08065FBE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8065F8C
thumb_func_start MovementActionFunc_x41_0
MovementActionFunc_x41_0: @ 8065FC4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8065F60
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x41_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x41_0
thumb_func_start MovementActionFunc_x41_1
MovementActionFunc_x41_1: @ 8065FE4
push {r4,lr}
adds r4, r1, 0
bl sub_8065F8C
lsls r0, 24
cmp r0, 0
bne _08065FF6
movs r0, 0
b _08065FFC
_08065FF6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08065FFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x41_1
thumb_func_start MovementActionFunc_x42_0
MovementActionFunc_x42_0: @ 8066004
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8065F60
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x42_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x42_0
thumb_func_start MovementActionFunc_x42_1
MovementActionFunc_x42_1: @ 8066024
push {r4,lr}
adds r4, r1, 0
bl sub_8065F8C
lsls r0, 24
cmp r0, 0
bne _08066036
movs r0, 0
b _0806603C
_08066036:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0806603C:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x42_1
thumb_func_start MovementActionFunc_x43_0
MovementActionFunc_x43_0: @ 8066044
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8065F60
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x43_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x43_0
thumb_func_start MovementActionFunc_x43_1
MovementActionFunc_x43_1: @ 8066064
push {r4,lr}
adds r4, r1, 0
bl sub_8065F8C
lsls r0, 24
cmp r0, 0
bne _08066076
movs r0, 0
b _0806607C
_08066076:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0806607C:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x43_1
thumb_func_start MovementActionFunc_x44_0
MovementActionFunc_x44_0: @ 8066084
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8065F60
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x44_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x44_0
thumb_func_start MovementActionFunc_x44_1
MovementActionFunc_x44_1: @ 80660A4
push {r4,lr}
adds r4, r1, 0
bl sub_8065F8C
lsls r0, 24
cmp r0, 0
bne _080660B6
movs r0, 0
b _080660BC
_080660B6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080660BC:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x44_1
thumb_func_start npc_set_direction_and_anim__an_proceed
npc_set_direction_and_anim__an_proceed: @ 80660C4
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
adds r1, r3, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
movs r2, 0
bl obj_anim_image_set_and_seek
adds r0, r6, 0
adds r1, r4, 0
bl ObjectEventSetDirection
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 MovementActionFunc_x45_0
MovementActionFunc_x45_0: @ 80660F0
push {lr}
ldrb r2, [r0, 0x18]
lsrs r2, 4
adds r3, r1, 0
adds r3, 0x2A
ldrb r3, [r3]
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x45_0
thumb_func_start MovementActionFunc_x45_1
MovementActionFunc_x45_1: @ 8066108
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl SpriteAnimEnded
lsls r0, 24
cmp r0, 0
bne _0806611C
movs r0, 0
b _08066122
_0806611C:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066122:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x45_1
thumb_func_start sub_8066128
sub_8066128: @ 8066128
push {r4,r5,lr}
sub sp, 0x4
adds r5, r1, 0
lsls r4, r2, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
adds r1, r5, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_8064E3C
adds r0, r4, 0
bl sub_8063480
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8066128
thumb_func_start MovementActionFunc_x46_0
MovementActionFunc_x46_0: @ 806615C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x46_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x46_0
thumb_func_start MovementActionFunc_x46_1
MovementActionFunc_x46_1: @ 806617C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _08066190
movs r0, 0
b _0806619E
_08066190:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_0806619E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x46_1
thumb_func_start MovementActionFunc_x47_0
MovementActionFunc_x47_0: @ 80661A4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x47_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x47_0
thumb_func_start MovementActionFunc_x47_1
MovementActionFunc_x47_1: @ 80661C4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _080661D8
movs r0, 0
b _080661E6
_080661D8:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_080661E6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x47_1
thumb_func_start MovementActionFunc_x48_0
MovementActionFunc_x48_0: @ 80661EC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x48_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x48_0
thumb_func_start MovementActionFunc_x48_1
MovementActionFunc_x48_1: @ 806620C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _08066220
movs r0, 0
b _0806622E
_08066220:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_0806622E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x48_1
thumb_func_start MovementActionFunc_x49_0
MovementActionFunc_x49_0: @ 8066234
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x49_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x49_0
thumb_func_start MovementActionFunc_x49_1
MovementActionFunc_x49_1: @ 8066254
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _08066268
movs r0, 0
b _08066276
_08066268:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_08066276:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x49_1
thumb_func_start MovementActionFunc_xA6_0
MovementActionFunc_xA6_0: @ 806627C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA6_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA6_0
thumb_func_start MovementActionFunc_xA6_1
MovementActionFunc_xA6_1: @ 806629C
push {r4,lr}
adds r4, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _080662AE
movs r0, 0
b _080662B4
_080662AE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080662B4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA6_1
thumb_func_start MovementActionFunc_xA7_0
MovementActionFunc_xA7_0: @ 80662BC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA7_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA7_0
thumb_func_start MovementActionFunc_xA7_1
MovementActionFunc_xA7_1: @ 80662DC
push {r4,lr}
adds r4, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _080662EE
movs r0, 0
b _080662F4
_080662EE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080662F4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA7_1
thumb_func_start MovementActionFunc_xA8_0
MovementActionFunc_xA8_0: @ 80662FC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA8_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA8_0
thumb_func_start MovementActionFunc_xA8_1
MovementActionFunc_xA8_1: @ 806631C
push {r4,lr}
adds r4, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _0806632E
movs r0, 0
b _08066334
_0806632E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066334:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA8_1
thumb_func_start MovementActionFunc_xA9_0
MovementActionFunc_xA9_0: @ 806633C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8066128
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_xA9_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA9_0
thumb_func_start MovementActionFunc_xA9_1
MovementActionFunc_xA9_1: @ 806635C
push {r4,lr}
adds r4, r1, 0
bl sub_8065040
lsls r0, 24
cmp r0, 0
bne _0806636E
movs r0, 0
b _08066374
_0806636E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066374:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA9_1
thumb_func_start MovementActionFunc_x4A_0
MovementActionFunc_x4A_0: @ 806637C
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0xFF
movs r1, 0
movs r2, 0
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _080663C6
movs r1, 0x10
ldrsh r0, [r5, r1]
movs r2, 0x12
ldrsh r1, [r5, r2]
ldr r4, _080663D4 @ =gObjectEvents
mov r2, sp
ldrb r2, [r2]
lsls r3, r2, 3
adds r3, r2
lsls r3, 2
adds r3, r4
movs r4, 0x10
ldrsh r2, [r3, r4]
movs r4, 0x12
ldrsh r3, [r3, r4]
bl sub_80635DC
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r6, 0
bl FaceDirection
_080663C6:
movs r0, 0x1
strh r0, [r6, 0x32]
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080663D4: .4byte gObjectEvents
thumb_func_end MovementActionFunc_x4A_0
thumb_func_start MovementActionFunc_x4B_0
MovementActionFunc_x4B_0: @ 80663D8
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0xFF
movs r1, 0
movs r2, 0
mov r3, sp
bl TryGetObjectEventIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _0806642A
movs r1, 0x10
ldrsh r0, [r5, r1]
movs r2, 0x12
ldrsh r1, [r5, r2]
ldr r4, _08066438 @ =gObjectEvents
mov r2, sp
ldrb r2, [r2]
lsls r3, r2, 3
adds r3, r2
lsls r3, 2
adds r3, r4
movs r4, 0x10
ldrsh r2, [r3, r4]
movs r4, 0x12
ldrsh r3, [r3, r4]
bl sub_80635DC
lsls r0, 24
lsrs r0, 24
bl GetOppositeDirection
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r6, 0
bl FaceDirection
_0806642A:
movs r0, 0x1
strh r0, [r6, 0x32]
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08066438: .4byte gObjectEvents
thumb_func_end MovementActionFunc_x4B_0
thumb_func_start MovementActionFunc_x4C_0
MovementActionFunc_x4C_0: @ 806643C
ldrb r2, [r0, 0x1]
movs r3, 0x2
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x4C_0
thumb_func_start MovementActionFunc_x4D_0
MovementActionFunc_x4D_0: @ 806644C
ldrb r3, [r0, 0x1]
movs r2, 0x3
negs r2, r2
ands r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x4D_0
thumb_func_start MovementActionFunc_x4E_0
MovementActionFunc_x4E_0: @ 806645C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x4E_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x4E_0
thumb_func_start MovementActionFunc_x4E_1
MovementActionFunc_x4E_1: @ 8066488
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _0806649C
movs r0, 0
b _080664AC
_0806649C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080664AC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x4E_1
thumb_func_start MovementActionFunc_x4F_0
MovementActionFunc_x4F_0: @ 80664B4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x4F_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x4F_0
thumb_func_start MovementActionFunc_x4F_1
MovementActionFunc_x4F_1: @ 80664E0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080664F4
movs r0, 0
b _08066504
_080664F4:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066504:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x4F_1
thumb_func_start MovementActionFunc_x50_0
MovementActionFunc_x50_0: @ 806650C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x50_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x50_0
thumb_func_start MovementActionFunc_x50_1
MovementActionFunc_x50_1: @ 8066538
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _0806654C
movs r0, 0
b _0806655C
_0806654C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806655C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x50_1
thumb_func_start MovementActionFunc_x51_0
MovementActionFunc_x51_0: @ 8066564
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x51_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x51_0
thumb_func_start MovementActionFunc_x51_1
MovementActionFunc_x51_1: @ 8066590
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080665A4
movs r0, 0
b _080665B4
_080665A4:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080665B4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x51_1
thumb_func_start MovementActionFunc_x52_0
MovementActionFunc_x52_0: @ 80665BC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x52_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x52_0
thumb_func_start MovementActionFunc_x52_1
MovementActionFunc_x52_1: @ 80665E8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080665FC
movs r0, 0
b _0806660C
_080665FC:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806660C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x52_1
thumb_func_start MovementActionFunc_x53_0
MovementActionFunc_x53_0: @ 8066614
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x53_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x53_0
thumb_func_start MovementActionFunc_x53_1
MovementActionFunc_x53_1: @ 8066640
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08066654
movs r0, 0
b _08066664
_08066654:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066664:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x53_1
thumb_func_start MovementActionFunc_x54_0
MovementActionFunc_x54_0: @ 806666C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x54_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x54_0
thumb_func_start MovementActionFunc_x54_1
MovementActionFunc_x54_1: @ 8066698
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080666AC
movs r0, 0
b _080666BC
_080666AC:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080666BC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x54_1
thumb_func_start MovementActionFunc_x55_0
MovementActionFunc_x55_0: @ 80666C4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x55_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x55_0
thumb_func_start MovementActionFunc_x55_1
MovementActionFunc_x55_1: @ 80666F0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08066704
movs r0, 0
b _08066714
_08066704:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066714:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x55_1
thumb_func_start MovementActionFunc_x56_0
MovementActionFunc_x56_0: @ 806671C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x56_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x56_0
thumb_func_start MovementActionFunc_x56_1
MovementActionFunc_x56_1: @ 8066748
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065058
lsls r0, 24
cmp r0, 0
bne _0806675C
movs r0, 0
b _0806676C
_0806675C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806676C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x56_1
thumb_func_start MovementActionFunc_x57_0
MovementActionFunc_x57_0: @ 8066774
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x57_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x57_0
thumb_func_start MovementActionFunc_x57_1
MovementActionFunc_x57_1: @ 80667A0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065058
lsls r0, 24
cmp r0, 0
bne _080667B4
movs r0, 0
b _080667C4
_080667B4:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080667C4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x57_1
thumb_func_start MovementActionFunc_x58_0
MovementActionFunc_x58_0: @ 80667CC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x58_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x58_0
thumb_func_start MovementActionFunc_x58_1
MovementActionFunc_x58_1: @ 80667F8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065058
lsls r0, 24
cmp r0, 0
bne _0806680C
movs r0, 0
b _0806681C
_0806680C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806681C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x58_1
thumb_func_start MovementActionFunc_x59_0
MovementActionFunc_x59_0: @ 8066824
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x59_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x59_0
thumb_func_start MovementActionFunc_x59_1
MovementActionFunc_x59_1: @ 8066850
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065058
lsls r0, 24
cmp r0, 0
bne _08066864
movs r0, 0
b _08066874
_08066864:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066874:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x59_1
thumb_func_start MovementActionFunc_x5A_0
MovementActionFunc_x5A_0: @ 806687C
push {lr}
ldr r3, _08066890 @ =gInitialMovementTypeFacingDirections
ldrb r2, [r0, 0x6]
adds r2, r3
ldrb r2, [r2]
bl FaceDirection
movs r0, 0x1
pop {r1}
bx r1
.align 2, 0
_08066890: .4byte gInitialMovementTypeFacingDirections
thumb_func_end MovementActionFunc_x5A_0
thumb_func_start MovementActionFunc_x5B_0
MovementActionFunc_x5B_0: @ 8066894
push {lr}
movs r2, 0x1
movs r3, 0x14
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x5B_0
thumb_func_start MovementActionFunc_x5C_0
MovementActionFunc_x5C_0: @ 80668A4
ldrb r3, [r0, 0x3]
movs r2, 0x3
negs r2, r2
ands r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x5C_0
thumb_func_start MovementActionFunc_x5D_0
MovementActionFunc_x5D_0: @ 80668B4
ldrb r2, [r0, 0x3]
movs r3, 0x2
orrs r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x5D_0
thumb_func_start MovementActionFunc_x5E_0
MovementActionFunc_x5E_0: @ 80668C4
ldrb r2, [r0, 0x1]
movs r3, 0x10
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x5E_0
thumb_func_start MovementActionFunc_x5F_0
MovementActionFunc_x5F_0: @ 80668D4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
bl GetObjectEventGraphicsInfo
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 MovementActionFunc_x5F_0
thumb_func_start MovementActionFunc_x60_0
MovementActionFunc_x60_0: @ 8066900
ldrb r2, [r0, 0x1]
movs r3, 0x20
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x60_0
thumb_func_start MovementActionFunc_x61_0
MovementActionFunc_x61_0: @ 8066910
ldrb r3, [r0, 0x1]
movs r2, 0x21
negs r2, r2
ands r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x61_0
thumb_func_start do_exclamation_mark_bubble_1
do_exclamation_mark_bubble_1: @ 8066920
push {r4,lr}
adds r4, r1, 0
ldr r1, _08066940 @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl ObjectEventGetLocalIdAndMap
movs r0, 0 @ FLDEFF_EXCLAMATION_MARK_ICON
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08066940: .4byte gFieldEffectArguments
thumb_func_end do_exclamation_mark_bubble_1
thumb_func_start do_exclamation_mark_bubble_2
do_exclamation_mark_bubble_2: @ 8066944
push {r4,lr}
adds r4, r1, 0
ldr r1, _08066964 @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl ObjectEventGetLocalIdAndMap
movs r0, 0x21 @ FLDEFF_QUESTION_MARK_ICON
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08066964: .4byte gFieldEffectArguments
thumb_func_end do_exclamation_mark_bubble_2
thumb_func_start do_x_bubble
do_x_bubble: @ 8066968
push {r4,lr}
adds r4, r1, 0
ldr r1, _08066988 @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl ObjectEventGetLocalIdAndMap
movs r0, 0x2E @ FLDEFF_X_ICON
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08066988: .4byte gFieldEffectArguments
thumb_func_end do_x_bubble
thumb_func_start do_double_excl_bubble
do_double_excl_bubble: @ 806698C
push {r4,lr}
adds r4, r1, 0
ldr r1, _080669AC @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl ObjectEventGetLocalIdAndMap
movs r0, 0x42 @ FLDEFF_DOUBLE_EXCL_MARK_ICON
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080669AC: .4byte gFieldEffectArguments
thumb_func_end do_double_excl_bubble
thumb_func_start do_smile_bubble
do_smile_bubble: @ 80669B0
push {r4,lr}
adds r4, r1, 0
ldr r1, _080669D0 @ =gFieldEffectArguments
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl ObjectEventGetLocalIdAndMap
movs r0, 0x40 @ FLDEFF_SMILEY_FACE_ICON
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080669D0: .4byte gFieldEffectArguments
thumb_func_end do_smile_bubble
thumb_func_start MovementActionFunc_x67_0
MovementActionFunc_x67_0: @ 80669D4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x6]
cmp r0, 0x3F
bne _080669EA
adds r0, r4, 0
bl MovementAction_RevealTrainer_RunTrainerSeeFuncList
movs r0, 0
b _08066A12
_080669EA:
subs r0, 0x39
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08066A0C
adds r0, r4, 0
bl sub_80DCBB8
movs r0, 0x1
strh r0, [r5, 0x32]
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x67_1
lsls r0, 24
lsrs r0, 24
b _08066A12
_08066A0C:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066A12:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x67_0
thumb_func_start MovementActionFunc_x67_1
MovementActionFunc_x67_1: @ 8066A18
push {r4,lr}
adds r4, r1, 0
bl sub_80DCBE0
lsls r0, 24
cmp r0, 0
bne _08066A2A
movs r0, 0
b _08066A30
_08066A2A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066A30:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x67_1
thumb_func_start MovementActionFunc_x68_0
MovementActionFunc_x68_0: @ 8066A38
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl obj_anim_image_set_and_seek
movs r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x68_0
thumb_func_start MovementActionFunc_x68_1
MovementActionFunc_x68_1: @ 8066A54
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl SpriteAnimEnded
lsls r0, 24
cmp r0, 0
beq _08066A70
adds r0, r4, 0
movs r1, 0x20
bl SetObjectEventStepTimer
movs r0, 0x2
strh r0, [r4, 0x32]
_08066A70:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x68_1
thumb_func_start MovementActionFunc_x68_2
MovementActionFunc_x68_2: @ 8066A78
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r2, [r4, 0x1]
lsls r1, r2, 26
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 5
subs r0, 0x22
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
beq _08066AAA
ldrb r0, [r4, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x3
strh r0, [r5, 0x32]
_08066AAA:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x68_2
thumb_func_start MovementActionFunc_x69_0
MovementActionFunc_x69_0: @ 8066AB4
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl obj_anim_image_set_and_seek
movs r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x69_0
thumb_func_start MovementActionFunc_x69_1
MovementActionFunc_x69_1: @ 8066AD0
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl SpriteAnimEnded
lsls r0, 24
cmp r0, 0
beq _08066AEC
adds r0, r4, 0
movs r1, 0x20
bl SetObjectEventStepTimer
movs r0, 0x2
strh r0, [r4, 0x32]
_08066AEC:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x69_1
thumb_func_start MovementActionFunc_x69_2
MovementActionFunc_x69_2: @ 8066AF4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r2, [r4, 0x1]
lsls r1, r2, 26
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 5
subs r0, 0x22
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r5, 0
bl RunObjectEventStepTimer
lsls r0, 24
cmp r0, 0
beq _08066B26
ldrb r0, [r4, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x3
strh r0, [r5, 0x32]
_08066B26:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x69_2
thumb_func_start MovementActionFunc_x6A_0
MovementActionFunc_x6A_0: @ 8066B30
ldrb r2, [r0, 0x3]
movs r3, 0x4
orrs r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x6A_0
thumb_func_start MovementActionFunc_x6B_0
MovementActionFunc_x6B_0: @ 8066B40
ldrb r3, [r0, 0x3]
movs r2, 0x5
negs r2, r2
ands r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end MovementActionFunc_x6B_0
thumb_func_start MovementActionFunc_x6C_0
MovementActionFunc_x6C_0: @ 8066B50
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r4, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r4, 0
bl InitSpriteAffineAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
adds r4, 0x42
ldrb r1, [r4]
movs r0, 0x3F
ands r0, r1
strb r0, [r4]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6C_0
thumb_func_start MovementActionFunc_x6D_0
MovementActionFunc_x6D_0: @ 8066B80
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r0, [r4, 0x1]
movs r1, 0x4
negs r1, r1
ands r1, r0
strb r1, [r4, 0x1]
lsrs r1, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
movs r3, 0
adds r0, r4, 0
bl CalcCenterToCornerVec
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6D_0
thumb_func_start MovementActionFunc_x6E_0
MovementActionFunc_x6E_0: @ 8066BB0
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x1
bl sub_8064830
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x6E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6E_0
thumb_func_start MovementActionFunc_x6E_1
MovementActionFunc_x6E_1: @ 8066BE4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08066BF6
movs r0, 0
b _08066C08
_08066BF6:
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066C08:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6E_1
thumb_func_start MovementActionFunc_x6F_0
MovementActionFunc_x6F_0: @ 8066C10
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x1
bl sub_8064830
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x1
bl ChangeSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl MovementActionFunc_x6F_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6F_0
thumb_func_start MovementActionFunc_x6F_1
MovementActionFunc_x6F_1: @ 8066C44
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08066C56
movs r0, 0
b _08066C68
_08066C56:
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08066C68:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x6F_1
thumb_func_start sub_8066C70
sub_8066C70: @ 8066C70
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
lsls r4, r2, 24
lsrs r4, 24
adds r1, r4, 0
bl ObjectEventSetDirection
adds r0, r5, 0
bl npc_coords_shift_still
adds r0, r4, 0
bl sub_80634E0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r6, 0
bl obj_npc_animation_step
adds r2, r6, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r6, 0x32]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8066C70
thumb_func_start MovementActionFunc_x70_0
MovementActionFunc_x70_0: @ 8066CB0
push {lr}
movs r2, 0x1
bl sub_8066C70
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x70_0
thumb_func_start MovementActionFunc_x71_0
MovementActionFunc_x71_0: @ 8066CC0
push {lr}
movs r2, 0x2
bl sub_8066C70
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x71_0
thumb_func_start MovementActionFunc_x72_0
MovementActionFunc_x72_0: @ 8066CD0
push {lr}
movs r2, 0x3
bl sub_8066C70
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x72_0
thumb_func_start MovementActionFunc_x73_0
MovementActionFunc_x73_0: @ 8066CE0
push {lr}
movs r2, 0x4
bl sub_8066C70
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x73_0
thumb_func_start MovementActionFunc_x74_0
MovementActionFunc_x74_0: @ 8066CF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_8063490
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x74_0
thumb_func_start MovementActionFunc_x75_0
MovementActionFunc_x75_0: @ 8066D14
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_8063490
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x75_0
thumb_func_start MovementActionFunc_x76_0
MovementActionFunc_x76_0: @ 8066D38
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_8063490
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x76_0
thumb_func_start MovementActionFunc_x77_0
MovementActionFunc_x77_0: @ 8066D5C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_8063490
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x77_0
thumb_func_start MovementActionFunc_x78_0
MovementActionFunc_x78_0: @ 8066D80
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80634B0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x78_0
thumb_func_start MovementActionFunc_x79_0
MovementActionFunc_x79_0: @ 8066DA4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80634B0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x79_0
thumb_func_start MovementActionFunc_x7A_0
MovementActionFunc_x7A_0: @ 8066DC8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80634B0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7A_0
thumb_func_start MovementActionFunc_x7B_0
MovementActionFunc_x7B_0: @ 8066DEC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80634B0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7B_0
thumb_func_start MovementActionFunc_x7B_3
MovementActionFunc_x7B_3: @ 8066E10
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80634D0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7B_3
thumb_func_start MovementActionFunc_x7B_6
MovementActionFunc_x7B_6: @ 8066E34
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80634D0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7B_6
thumb_func_start MovementActionFunc_x7B_9
MovementActionFunc_x7B_9: @ 8066E58
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80634D0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7B_9
thumb_func_start MovementActionFunc_x7B_12
MovementActionFunc_x7B_12: @ 8066E7C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80634D0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7B_12
thumb_func_start sub_8066EA0
sub_8066EA0: @ 8066EA0
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
ldr r0, [sp, 0x14]
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
lsls r0, 24
lsrs r0, 24
str r0, [sp]
adds r0, r6, 0
adds r2, r4, 0
bl sub_8064E3C
adds r0, r4, 0
bl sub_8063490
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnimIfDifferent
adds r0, r6, 0
bl DoShadowFieldEffect
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8066EA0
thumb_func_start MovementActionFunc_x7C_0
MovementActionFunc_x7C_0: @ 8066EE4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x7C_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7C_0
thumb_func_start MovementActionFunc_x7C_1
MovementActionFunc_x7C_1: @ 8066F10
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08066F24
movs r0, 0
b _08066F34
_08066F24:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066F34:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7C_1
thumb_func_start MovementActionFunc_x7D_0
MovementActionFunc_x7D_0: @ 8066F3C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x7D_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7D_0
thumb_func_start MovementActionFunc_x7D_1
MovementActionFunc_x7D_1: @ 8066F68
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08066F7C
movs r0, 0
b _08066F8C
_08066F7C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066F8C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7D_1
thumb_func_start MovementActionFunc_x7E_0
MovementActionFunc_x7E_0: @ 8066F94
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x7E_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7E_0
thumb_func_start MovementActionFunc_x7E_1
MovementActionFunc_x7E_1: @ 8066FC0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08066FD4
movs r0, 0
b _08066FE4
_08066FD4:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08066FE4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7E_1
thumb_func_start MovementActionFunc_x7F_0
MovementActionFunc_x7F_0: @ 8066FEC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x7F_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7F_0
thumb_func_start MovementActionFunc_x7F_1
MovementActionFunc_x7F_1: @ 8067018
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _0806702C
movs r0, 0
b _0806703C
_0806702C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806703C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x7F_1
thumb_func_start MovementActionFunc_x80_0
MovementActionFunc_x80_0: @ 8067044
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x80_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x80_0
thumb_func_start MovementActionFunc_x80_1
MovementActionFunc_x80_1: @ 8067070
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08067084
movs r0, 0
b _08067094
_08067084:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08067094:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x80_1
thumb_func_start MovementActionFunc_x81_0
MovementActionFunc_x81_0: @ 806709C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x1
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x81_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x81_0
thumb_func_start MovementActionFunc_x81_1
MovementActionFunc_x81_1: @ 80670C8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080670DC
movs r0, 0
b _080670EC
_080670DC:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080670EC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x81_1
thumb_func_start MovementActionFunc_x82_0
MovementActionFunc_x82_0: @ 80670F4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x82_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x82_0
thumb_func_start MovementActionFunc_x82_1
MovementActionFunc_x82_1: @ 8067120
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08067134
movs r0, 0
b _08067144
_08067134:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08067144:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x82_1
thumb_func_start MovementActionFunc_x83_0
MovementActionFunc_x83_0: @ 806714C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x1
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x83_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x83_0
thumb_func_start MovementActionFunc_x83_1
MovementActionFunc_x83_1: @ 8067178
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _0806718C
movs r0, 0
b _0806719C
_0806718C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806719C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x83_1
thumb_func_start MovementActionFunc_x84_0
MovementActionFunc_x84_0: @ 80671A4
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x84_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x84_0
thumb_func_start MovementActionFunc_x84_1
MovementActionFunc_x84_1: @ 80671D0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080671E4
movs r0, 0
b _080671F4
_080671E4:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080671F4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x84_1
thumb_func_start MovementActionFunc_x85_0
MovementActionFunc_x85_0: @ 80671FC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x2
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x85_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x85_0
thumb_func_start MovementActionFunc_x85_1
MovementActionFunc_x85_1: @ 8067228
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _0806723C
movs r0, 0
b _0806724C
_0806723C:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_0806724C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x85_1
thumb_func_start MovementActionFunc_x86_0
MovementActionFunc_x86_0: @ 8067254
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x2
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x86_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x86_0
thumb_func_start MovementActionFunc_x86_1
MovementActionFunc_x86_1: @ 8067280
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _08067294
movs r0, 0
b _080672A4
_08067294:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080672A4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x86_1
thumb_func_start MovementActionFunc_x87_0
MovementActionFunc_x87_0: @ 80672AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x2
bl sub_8066EA0
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x87_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x87_0
thumb_func_start MovementActionFunc_x87_1
MovementActionFunc_x87_1: @ 80672D8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8065028
lsls r0, 24
cmp r0, 0
bne _080672EC
movs r0, 0
b _080672FC
_080672EC:
ldrb r0, [r4, 0x2]
movs r1, 0x41
negs r1, r1
ands r1, r0
strb r1, [r4, 0x2]
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_080672FC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x87_1
thumb_func_start MovementActionFunc_x88_0
MovementActionFunc_x88_0: @ 8067304
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80634E0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x88_0
thumb_func_start MovementActionFunc_x89_0
MovementActionFunc_x89_0: @ 806733C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80634E0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x89_0
thumb_func_start MovementActionFunc_x8A_0
MovementActionFunc_x8A_0: @ 8067374
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80634E0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8A_0
thumb_func_start MovementActionFunc_x8B_0
MovementActionFunc_x8B_0: @ 80673AC
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80634E0
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x8
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80656C4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x25_1
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8B_0
thumb_func_start sub_80673E4
sub_80673E4: @ 80673E4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
bl sub_8064678
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_8063490
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl StartSpriteAnim
adds r0, r4, 0
movs r1, 0
bl SeekSpriteAnim
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80673E4
thumb_func_start MovementActionFunc_x8C_0
MovementActionFunc_x8C_0: @ 806741C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_80673E4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x8C_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8C_0
thumb_func_start MovementActionFunc_x8C_1
MovementActionFunc_x8C_1: @ 806743C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806744E
movs r0, 0
b _08067454
_0806744E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067454:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8C_1
thumb_func_start MovementActionFunc_x8D_0
MovementActionFunc_x8D_0: @ 806745C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_80673E4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x8D_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8D_0
thumb_func_start MovementActionFunc_x8D_1
MovementActionFunc_x8D_1: @ 806747C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806748E
movs r0, 0
b _08067494
_0806748E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067494:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8D_1
thumb_func_start MovementActionFunc_x8E_0
MovementActionFunc_x8E_0: @ 806749C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_80673E4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x8E_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8E_0
thumb_func_start MovementActionFunc_x8E_1
MovementActionFunc_x8E_1: @ 80674BC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080674CE
movs r0, 0
b _080674D4
_080674CE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080674D4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8E_1
thumb_func_start MovementActionFunc_x8F_0
MovementActionFunc_x8F_0: @ 80674DC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_80673E4
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x8F_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8F_0
thumb_func_start MovementActionFunc_x8F_1
MovementActionFunc_x8F_1: @ 80674FC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806750E
movs r0, 0
b _08067514
_0806750E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067514:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x8F_1
thumb_func_start sub_806751C
sub_806751C: @ 806751C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
bl sub_8064678
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80634E0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_806751C
thumb_func_start MovementActionFunc_x90_0
MovementActionFunc_x90_0: @ 806754C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_806751C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x90_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x90_0
thumb_func_start MovementActionFunc_x90_1
MovementActionFunc_x90_1: @ 806756C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806757E
movs r0, 0
b _08067584
_0806757E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067584:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x90_1
thumb_func_start MovementActionFunc_x91_0
MovementActionFunc_x91_0: @ 806758C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_806751C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x91_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x91_0
thumb_func_start MovementActionFunc_x91_1
MovementActionFunc_x91_1: @ 80675AC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080675BE
movs r0, 0
b _080675C4
_080675BE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080675C4:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x91_1
thumb_func_start MovementActionFunc_x92_0
MovementActionFunc_x92_0: @ 80675CC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_806751C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x92_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x92_0
thumb_func_start MovementActionFunc_x92_1
MovementActionFunc_x92_1: @ 80675EC
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080675FE
movs r0, 0
b _08067604
_080675FE:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067604:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x92_1
thumb_func_start MovementActionFunc_x93_0
MovementActionFunc_x93_0: @ 806760C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_806751C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x93_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x93_0
thumb_func_start MovementActionFunc_x93_1
MovementActionFunc_x93_1: @ 806762C
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0806763E
movs r0, 0
b _08067644
_0806763E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08067644:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x93_1
thumb_func_start sub_806764C
sub_806764C: @ 806764C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
bl sub_8064678
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80634C0
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl npc_apply_anim_looping
adds r0, r5, 0
movs r1, 0
bl SeekSpriteAnim
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_806764C
thumb_func_start MovementActionFunc_x94_0
MovementActionFunc_x94_0: @ 8067684
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_806764C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x94_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x94_0
thumb_func_start MovementActionFunc_x94_1
MovementActionFunc_x94_1: @ 80676A4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080676B6
movs r0, 0
b _080676BC
_080676B6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080676BC:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x94_1
thumb_func_start MovementActionFunc_x95_0
MovementActionFunc_x95_0: @ 80676C4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_806764C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x95_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x95_0
thumb_func_start MovementActionFunc_x95_1
MovementActionFunc_x95_1: @ 80676E4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080676F6
movs r0, 0
b _080676FC
_080676F6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080676FC:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x95_1
thumb_func_start MovementActionFunc_x96_0
MovementActionFunc_x96_0: @ 8067704
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_806764C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x96_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x96_0
thumb_func_start MovementActionFunc_x96_1
MovementActionFunc_x96_1: @ 8067724
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08067736
movs r0, 0
b _0806773C
_08067736:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0806773C:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x96_1
thumb_func_start MovementActionFunc_x97_0
MovementActionFunc_x97_0: @ 8067744
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_806764C
adds r0, r4, 0
adds r1, r5, 0
bl MovementActionFunc_x97_1
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x97_0
thumb_func_start MovementActionFunc_x97_1
MovementActionFunc_x97_1: @ 8067764
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08067776
movs r0, 0
b _0806777C
_08067776:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0806777C:
pop {r4}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x97_1
thumb_func_start MovementActionFunc_x98_0
MovementActionFunc_x98_0: @ 8067784
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x14
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r1, [r5, 0x1]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
movs r1, 0
movs r0, 0x1
strh r0, [r4, 0x32]
strh r1, [r4, 0x36]
strh r1, [r4, 0x38]
strh r1, [r4, 0x3A]
strh r1, [r4, 0x3C]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x98_0
thumb_func_start MovementActionFunc_x98_1
MovementActionFunc_x98_1: @ 80677C0
adds r1, 0x3F
ldrb r0, [r1]
lsls r0, 27
lsrs r0, 31
bx lr
thumb_func_end MovementActionFunc_x98_1
thumb_func_start MovementActionFunc_x99_1
MovementActionFunc_x99_1: @ 80677CC
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0x3C
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _08067854
cmp r1, 0x1
bgt _080677E4
cmp r1, 0
beq _080677EA
b _080678B6
_080677E4:
cmp r1, 0x2
beq _08067896
b _080678B6
_080677EA:
ldrh r0, [r4, 0x3A]
adds r0, 0xA
strh r0, [r4, 0x3A]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7F
ble _08067822
strh r1, [r4, 0x3A]
ldrh r0, [r4, 0x38]
adds r0, 0x1
strh r0, [r4, 0x38]
strh r0, [r4, 0x3C]
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r1, [r5, 0x1]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
_08067822:
ldr r1, _08067850 @ =gSineTable
movs r2, 0x3A
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 1
adds r0, r1
asrs r0, 7
negs r0, r0
strh r0, [r4, 0x26]
negs r1, r0
orrs r1, r0
lsrs r1, 31
lsls r1, 1
ldrb r2, [r5]
movs r0, 0x3
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5]
b _080678B6
.align 2, 0
_08067850: .4byte gSineTable
_08067854:
ldrh r0, [r4, 0x36]
adds r0, 0x1
movs r6, 0
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0x10
ble _0806788A
strh r6, [r4, 0x36]
adds r0, r4, 0
movs r1, 0x14
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r1, [r5, 0x1]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
strh r6, [r4, 0x3C]
b _080678B6
_0806788A:
ldrb r1, [r5]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r5]
b _080678B6
_08067896:
ldrb r1, [r5]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r5]
ldrh r0, [r4, 0x36]
adds r0, 0x1
strh r0, [r4, 0x36]
lsls r0, 16
asrs r0, 16
cmp r0, 0x50
ble _080678B6
movs r0, 0
strh r0, [r4, 0x36]
movs r0, 0x1
b _080678B8
_080678B6:
movs r0, 0
_080678B8:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x99_1
thumb_func_start MovementActionFunc_x9A_1
MovementActionFunc_x9A_1: @ 80678C0
push {r4,lr}
ldrh r2, [r1, 0x3C]
adds r2, 0x4
movs r0, 0xFF
ands r2, r0
strh r2, [r1, 0x3C]
ldr r3, _080678EC @ =gSineTable
movs r4, 0x3C
ldrsh r0, [r1, r4]
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
lsls r0, 16
asrs r0, 23
strh r0, [r1, 0x24]
movs r0, 0
cmp r2, 0
bne _080678E6
movs r0, 0x1
_080678E6:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080678EC: .4byte gSineTable
thumb_func_end MovementActionFunc_x9A_1
thumb_func_start MovementActionFunc_x9F_0
MovementActionFunc_x9F_0: @ 80678F0
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1C
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
ldrb r1, [r5, 0x1]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
movs r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end MovementActionFunc_x9F_0
thumb_func_start MovementActionFunc_x9F_1
MovementActionFunc_x9F_1: @ 8067924
adds r1, 0x3F
ldrb r0, [r1]
lsls r0, 27
lsrs r0, 31
bx lr
thumb_func_end MovementActionFunc_x9F_1
thumb_func_start MovementActionFunc_x18_2
MovementActionFunc_x18_2: @ 8067930
movs r0, 0x1
bx lr
thumb_func_end MovementActionFunc_x18_2
thumb_func_start MovementActionFunc_x00_1
MovementActionFunc_x00_1: @ 8067934
adds r1, 0x2C
ldrb r0, [r1]
movs r2, 0x40
orrs r0, r2
strb r0, [r1]
movs r0, 0x1
bx lr
thumb_func_end MovementActionFunc_x00_1
thumb_func_start MovementActionFunc_xA4_0
MovementActionFunc_xA4_0: @ 8067944
movs r0, 0
strh r0, [r1, 0x26]
ldrh r0, [r1, 0x32]
adds r0, 0x1
strh r0, [r1, 0x32]
movs r0, 0
bx lr
thumb_func_end MovementActionFunc_xA4_0
thumb_func_start MovementActionFunc_xA4_1
MovementActionFunc_xA4_1: @ 8067954
push {lr}
adds r2, r1, 0
ldrh r0, [r2, 0x26]
subs r0, 0x8
strh r0, [r2, 0x26]
lsls r0, 16
asrs r0, 16
movs r1, 0xA0
negs r1, r1
cmp r0, r1
bne _08067970
ldrh r0, [r2, 0x32]
adds r0, 0x1
strh r0, [r2, 0x32]
_08067970:
movs r0, 0
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA4_1
thumb_func_start MovementActionFunc_xA5_0
MovementActionFunc_xA5_0: @ 8067978
ldr r0, _08067988 @ =0x0000ff60
strh r0, [r1, 0x26]
ldrh r0, [r1, 0x32]
adds r0, 0x1
strh r0, [r1, 0x32]
movs r0, 0
bx lr
.align 2, 0
_08067988: .4byte 0x0000ff60
thumb_func_end MovementActionFunc_xA5_0
thumb_func_start MovementActionFunc_xA5_1
MovementActionFunc_xA5_1: @ 806798C
push {lr}
ldrh r0, [r1, 0x26]
adds r0, 0x8
strh r0, [r1, 0x26]
lsls r0, 16
cmp r0, 0
bne _080679A0
ldrh r0, [r1, 0x32]
adds r0, 0x1
strh r0, [r1, 0x32]
_080679A0:
movs r0, 0
pop {r1}
bx r1
thumb_func_end MovementActionFunc_xA5_1
thumb_func_start MovementActionFunc_xA4_2
MovementActionFunc_xA4_2: @ 80679A8
movs r0, 0x1
bx lr
thumb_func_end MovementActionFunc_xA4_2
thumb_func_start npc_obj_transfer_image_anim_pause_flag
npc_obj_transfer_image_anim_pause_flag: @ 80679AC
push {lr}
ldrb r0, [r0, 0x1]
lsls r0, 29
cmp r0, 0
bge _080679C2
adds r0, r1, 0
adds r0, 0x2C
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
_080679C2:
pop {r0}
bx r0
thumb_func_end npc_obj_transfer_image_anim_pause_flag
thumb_func_start sub_80679C8
sub_80679C8: @ 80679C8
push {r4,lr}
adds r4, r0, 0
ldrb r3, [r4, 0x1]
lsls r0, r3, 28
cmp r0, 0
bge _080679F0
adds r2, r1, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
movs r1, 0x9
negs r1, r1
ands r0, r1
strb r0, [r4, 0x1]
_080679F0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80679C8
thumb_func_start sub_80679F8
sub_80679F8: @ 80679F8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8067A10
adds r0, r4, 0
adds r1, r5, 0
bl npc_update_obj_anim_flag
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80679F8
thumb_func_start sub_8067A10
sub_8067A10: @ 8067A10
push {r4-r7,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x1]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
ldrb r0, [r5, 0x5]
bl GetObjectEventGraphicsInfo
adds r7, r0, 0
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08067A74
ldrh r1, [r4, 0x24]
ldrh r0, [r4, 0x20]
adds r1, r0
adds r0, r4, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldr r2, _08067A6C @ =gSpriteCoordOffsetX
adds r0, r1
ldrh r2, [r2]
adds r0, r2
lsls r0, 16
lsrs r3, r0, 16
ldrh r1, [r4, 0x26]
ldrh r0, [r4, 0x22]
adds r1, r0
adds r0, r4, 0
adds r0, 0x29
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
ldr r2, _08067A70 @ =gSpriteCoordOffsetY
adds r0, r1
ldrh r2, [r2]
adds r0, r2
b _08067A9C
.align 2, 0
_08067A6C: .4byte gSpriteCoordOffsetX
_08067A70: .4byte gSpriteCoordOffsetY
_08067A74:
ldrh r1, [r4, 0x24]
ldrh r0, [r4, 0x20]
adds r1, r0
adds r0, r4, 0
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r0, r1
lsls r0, 16
lsrs r3, r0, 16
ldrh r1, [r4, 0x26]
ldrh r0, [r4, 0x22]
adds r1, r0
adds r0, r4, 0
adds r0, 0x29
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r0, r1
_08067A9C:
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r7, 0x8]
adds r0, r3
lsls r0, 16
lsrs r6, r0, 16
ldrh r0, [r7, 0xA]
adds r0, r2
lsls r0, 16
lsrs r7, r0, 16
ldr r0, _08067B00 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08067B04 @ =0x00000401
ldr r4, _08067B08 @ =0x0000fff0
cmp r1, r0
bne _08067AC6
ldrb r0, [r5, 0x8]
cmp r0, 0x1
bne _08067AC6
subs r4, 0x10
_08067AC6:
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0xFF
bgt _08067AD6
lsls r1, r6, 16
lsls r0, r4, 16
cmp r1, r0
bge _08067ADE
_08067AD6:
ldrb r0, [r5, 0x1]
movs r1, 0x40
orrs r0, r1
strb r0, [r5, 0x1]
_08067ADE:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0xAF
bgt _08067AF2
lsls r0, r7, 16
asrs r0, 16
movs r1, 0x10
negs r1, r1
cmp r0, r1
bge _08067AFA
_08067AF2:
ldrb r0, [r5, 0x1]
movs r1, 0x40
orrs r0, r1
strb r0, [r5, 0x1]
_08067AFA:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08067B00: .4byte gSaveBlock1Ptr
_08067B04: .4byte 0x00000401
_08067B08: .4byte 0x0000fff0
thumb_func_end sub_8067A10
thumb_func_start npc_update_obj_anim_flag
npc_update_obj_anim_flag: @ 8067B0C
push {lr}
adds r2, r1, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r3, 0x5
negs r3, r3
ands r3, r1
strb r3, [r2]
ldrb r1, [r0, 0x1]
movs r0, 0x60
ands r0, r1
cmp r0, 0
beq _08067B2E
movs r1, 0x4
adds r0, r3, 0
orrs r0, r1
strb r0, [r2]
_08067B2E:
pop {r0}
bx r0
thumb_func_end npc_update_obj_anim_flag
thumb_func_start GetAllGroundEffectFlags_OnSpawn
GetAllGroundEffectFlags_OnSpawn: @ 8067B34
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventUpdateMetatileBehaviors
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Reflection
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_TallGrassOnSpawn
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_LongGrassOnSpawn
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_SandHeap
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShallowFlowingWater
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShortGrass
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_HotSprings
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetAllGroundEffectFlags_OnSpawn
thumb_func_start GetAllGroundEffectFlags_OnBeginStep
GetAllGroundEffectFlags_OnBeginStep: @ 8067B7C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventUpdateMetatileBehaviors
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Reflection
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_TallGrassOnBeginStep
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_LongGrassOnBeginStep
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Tracks
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_SandHeap
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShallowFlowingWater
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Puddle
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShortGrass
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_HotSprings
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetAllGroundEffectFlags_OnBeginStep
thumb_func_start GetAllGroundEffectFlags_OnFinishStep
GetAllGroundEffectFlags_OnFinishStep: @ 8067BD4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl ObjectEventUpdateMetatileBehaviors
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShallowFlowingWater
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_SandHeap
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Puddle
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Ripple
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_ShortGrass
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_HotSprings
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_Seaweed
adds r0, r4, 0
adds r1, r5, 0
bl GetGroundEffectFlags_JumpLanding
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetAllGroundEffectFlags_OnFinishStep
thumb_func_start ObjectEventUpdateMetatileBehaviors
ObjectEventUpdateMetatileBehaviors: @ 8067C24
push {r4,lr}
adds r4, r0, 0
movs r1, 0x14
ldrsh r0, [r4, r1]
movs r2, 0x16
ldrsh r1, [r4, r2]
bl MapGridGetMetatileBehaviorAt
strb r0, [r4, 0x1F]
movs r1, 0x10
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl MapGridGetMetatileBehaviorAt
strb r0, [r4, 0x1E]
pop {r4}
pop {r0}
bx r0
thumb_func_end ObjectEventUpdateMetatileBehaviors
thumb_func_start GetGroundEffectFlags_Reflection
GetGroundEffectFlags_Reflection: @ 8067C4C
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
ldr r0, _08067C90 @ =gUnknown_83A7024
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
adds r0, r4, 0
bl sub_8067F88
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _08067C94
ldrb r1, [r4, 0x2]
lsls r0, r1, 30
cmp r0, 0
blt _08067C9E
movs r0, 0x3
negs r0, r0
ands r0, r1
movs r1, 0x2
orrs r0, r1
strb r0, [r4, 0x2]
subs r0, r2, 0x1
lsls r0, 2
add r0, sp
ldr r1, [r5]
ldr r0, [r0]
orrs r1, r0
str r1, [r5]
b _08067C9E
.align 2, 0
_08067C90: .4byte gUnknown_83A7024
_08067C94:
ldrb r1, [r4, 0x2]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r4, 0x2]
_08067C9E:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_Reflection
thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn
GetGroundEffectFlags_TallGrassOnSpawn: @ 8067CA8
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsTallGrass_2
lsls r0, 24
cmp r0, 0
beq _08067CC0
ldr r0, [r4]
movs r1, 0x1
orrs r0, r1
str r0, [r4]
_08067CC0:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn
thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep
GetGroundEffectFlags_TallGrassOnBeginStep: @ 8067CC8
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsTallGrass_2
lsls r0, 24
cmp r0, 0
beq _08067CE0
ldr r0, [r4]
movs r1, 0x2
orrs r0, r1
str r0, [r4]
_08067CE0:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep
thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn
GetGroundEffectFlags_LongGrassOnSpawn: @ 8067CE8
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D00
ldr r0, [r4]
movs r1, 0x4
orrs r0, r1
str r0, [r4]
_08067D00:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn
thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep
GetGroundEffectFlags_LongGrassOnBeginStep: @ 8067D08
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D20
ldr r0, [r4]
movs r1, 0x8
orrs r0, r1
str r0, [r4]
_08067D20:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep
thumb_func_start GetGroundEffectFlags_Tracks
GetGroundEffectFlags_Tracks: @ 8067D28
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_ReturnFalse
lsls r0, 24
cmp r0, 0
beq _08067D42
ldr r0, [r5]
movs r1, 0x80
lsls r1, 1
b _08067D5E
_08067D42:
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_IsMB21OrSand
lsls r0, 24
cmp r0, 0
bne _08067D5A
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_ReturnFalse_5
lsls r0, 24
cmp r0, 0
beq _08067D62
_08067D5A:
ldr r0, [r5]
movs r1, 0x80
_08067D5E:
orrs r0, r1
str r0, [r5]
_08067D62:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_Tracks
thumb_func_start GetGroundEffectFlags_SandHeap
GetGroundEffectFlags_SandHeap: @ 8067D68
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_ReturnFalse
lsls r0, 24
cmp r0, 0
beq _08067DA6
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_ReturnFalse
lsls r0, 24
cmp r0, 0
beq _08067DA6
ldrb r1, [r4, 0x2]
lsls r0, r1, 27
cmp r0, 0
blt _08067DB0
movs r0, 0x11
negs r0, r0
ands r0, r1
movs r1, 0x10
orrs r0, r1
strb r0, [r4, 0x2]
ldr r0, [r5]
movs r1, 0x80
lsls r1, 4
orrs r0, r1
str r0, [r5]
b _08067DB0
_08067DA6:
ldrb r1, [r4, 0x2]
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r4, 0x2]
_08067DB0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_SandHeap
thumb_func_start GetGroundEffectFlags_ShallowFlowingWater
GetGroundEffectFlags_ShallowFlowingWater: @ 8067DB8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsWaterfallBottom
lsls r0, 24
cmp r0, 0
beq _08067DD6
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_IsWaterfallBottom
lsls r0, 24
cmp r0, 0
bne _08067DEE
_08067DD6:
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_ReturnFalse_10
lsls r0, 24
cmp r0, 0
beq _08067E0C
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_ReturnFalse_10
lsls r0, 24
cmp r0, 0
beq _08067E0C
_08067DEE:
ldrb r1, [r4, 0x2]
lsls r0, r1, 28
cmp r0, 0
blt _08067E16
movs r0, 0x9
negs r0, r0
ands r0, r1
movs r1, 0x8
orrs r0, r1
strb r0, [r4, 0x2]
ldr r0, [r5]
movs r1, 0x40
orrs r0, r1
str r0, [r5]
b _08067E16
_08067E0C:
ldrb r1, [r4, 0x2]
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r4, 0x2]
_08067E16:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_ShallowFlowingWater
thumb_func_start GetGroundEffectFlags_Puddle
GetGroundEffectFlags_Puddle: @ 8067E1C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsPuddle
lsls r0, 24
cmp r0, 0
beq _08067E44
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_IsPuddle
lsls r0, 24
cmp r0, 0
beq _08067E44
ldr r0, [r5]
movs r1, 0x80
lsls r1, 3
orrs r0, r1
str r0, [r5]
_08067E44:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_Puddle
thumb_func_start GetGroundEffectFlags_Ripple
GetGroundEffectFlags_Ripple: @ 8067E4C
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsPondWaterOrPuddle
lsls r0, 24
cmp r0, 0
beq _08067E66
ldr r0, [r4]
movs r1, 0x80
lsls r1, 2
orrs r0, r1
str r0, [r4]
_08067E66:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_Ripple
thumb_func_start GetGroundEffectFlags_ShortGrass
GetGroundEffectFlags_ShortGrass: @ 8067E6C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_ReturnFalse_8
lsls r0, 24
cmp r0, 0
beq _08067EAA
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_ReturnFalse_8
lsls r0, 24
cmp r0, 0
beq _08067EAA
ldrb r1, [r4, 0x2]
lsls r0, r1, 29
cmp r0, 0
blt _08067EB4
movs r0, 0x5
negs r0, r0
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r4, 0x2]
ldr r0, [r5]
movs r1, 0x80
lsls r1, 10
orrs r0, r1
str r0, [r5]
b _08067EB4
_08067EAA:
ldrb r1, [r4, 0x2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r4, 0x2]
_08067EB4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_ShortGrass
thumb_func_start GetGroundEffectFlags_HotSprings
GetGroundEffectFlags_HotSprings: @ 8067EBC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x1E]
bl MetatileBehavior_IsHotSprings
lsls r0, 24
cmp r0, 0
beq _08067EFA
ldrb r0, [r4, 0x1F]
bl MetatileBehavior_IsHotSprings
lsls r0, 24
cmp r0, 0
beq _08067EFA
ldrb r1, [r4, 0x2]
lsls r0, r1, 26
cmp r0, 0
blt _08067F04
movs r0, 0x21
negs r0, r0
ands r0, r1
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x2]
ldr r0, [r5]
movs r1, 0x80
lsls r1, 11
orrs r0, r1
str r0, [r5]
b _08067F04
_08067EFA:
ldrb r1, [r4, 0x2]
movs r0, 0x21
negs r0, r0
ands r0, r1
strb r0, [r4, 0x2]
_08067F04:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_HotSprings
thumb_func_start GetGroundEffectFlags_Seaweed
GetGroundEffectFlags_Seaweed: @ 8067F0C
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
bl MetatileBehavior_IsMB22
lsls r0, 24
cmp r0, 0
beq _08067F26
ldr r0, [r4]
movs r1, 0x80
lsls r1, 12
orrs r0, r1
str r0, [r4]
_08067F26:
pop {r4}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_Seaweed
thumb_func_start GetGroundEffectFlags_JumpLanding
GetGroundEffectFlags_JumpLanding: @ 8067F2C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
adds r6, r1, 0
ldr r0, [r7]
ldr r1, _08067F68 @ =0x02000020
ands r0, r1
cmp r0, 0x20
bne _08067F7E
movs r5, 0
ldr r0, _08067F6C @ =gUnknown_83A702C
mov r8, r0
_08067F46:
lsls r4, r5, 2
mov r0, r8
adds r1, r4, r0
ldrb r0, [r7, 0x1E]
ldr r1, [r1]
bl _call_via_r1
lsls r0, 24
cmp r0, 0
beq _08067F74
ldr r0, _08067F70 @ =gUnknown_83A7044
adds r0, r4, r0
ldr r1, [r6]
ldr r0, [r0]
orrs r1, r0
str r1, [r6]
b _08067F7E
.align 2, 0
_08067F68: .4byte 0x02000020
_08067F6C: .4byte gUnknown_83A702C
_08067F70: .4byte gUnknown_83A7044
_08067F74:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _08067F46
_08067F7E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end GetGroundEffectFlags_JumpLanding
thumb_func_start sub_8067F88
sub_8067F88: @ 8067F88
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
ldrb r0, [r5, 0x5]
bl GetObjectEventGraphicsInfo
movs r4, 0
movs r0, 0x1
mov r10, r0
_08067FA0:
movs r1, 0x10
ldrsh r0, [r5, r1]
ldrh r1, [r5, 0x12]
add r1, r10
lsls r4, 16
asrs r6, r4, 16
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
mov r9, r4
cmp r0, 0
bne _080680BA
movs r3, 0x14
ldrsh r0, [r5, r3]
ldrh r1, [r5, 0x16]
add r1, r10
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080680BA
movs r2, 0x1
lsls r0, r2, 16
asrs r1, r0, 16
mov r8, r0
cmp r2, r1
bge _080680A8
movs r0, 0x80
lsls r0, 9
asrs r7, r0, 16
_08067FFC:
ldrh r0, [r5, 0x10]
lsls r1, r2, 16
asrs r4, r1, 16
adds r0, r4, r0
lsls r0, 16
asrs r0, 16
ldrh r1, [r5, 0x12]
adds r1, r7, r1
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080680BA
ldrh r0, [r5, 0x10]
subs r0, r4
lsls r0, 16
asrs r0, 16
ldrh r1, [r5, 0x12]
adds r1, r7, r1
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080680BA
ldrh r0, [r5, 0x14]
adds r0, r4, r0
lsls r0, 16
asrs r0, 16
ldrh r1, [r5, 0x16]
adds r1, r7, r1
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080680BA
ldrh r0, [r5, 0x14]
subs r0, r4
lsls r0, 16
asrs r0, 16
ldrh r1, [r5, 0x16]
adds r1, r7, r1
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
bl GetReflectionTypeByMetatileBehavior
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080680BA
adds r0, r4, 0x1
lsls r0, 16
lsrs r2, r0, 16
asrs r0, 16
mov r3, r8
asrs r1, r3, 16
cmp r0, r1
blt _08067FFC
_080680A8:
movs r0, 0x80
lsls r0, 9
add r0, r9
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x2
bge _080680B8
b _08067FA0
_080680B8:
movs r0, 0
_080680BA:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8067F88
thumb_func_start GetReflectionTypeByMetatileBehavior
GetReflectionTypeByMetatileBehavior: @ 80680C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl MetatileBehavior_IsIce
lsls r0, 24
cmp r0, 0
beq _080680DE
movs r0, 0x1
b _080680F0
_080680DE:
adds r0, r4, 0
bl MetatileBehavior_IsReflective
lsls r0, 24
cmp r0, 0
bne _080680EE
movs r0, 0
b _080680F0
_080680EE:
movs r0, 0x2
_080680F0:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetReflectionTypeByMetatileBehavior
thumb_func_start GetLedgeJumpDirection
GetLedgeJumpDirection: @ 80680F8
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
lsls r1, 16
lsrs r1, 16
lsls r2, 24
lsrs r4, r2, 24
cmp r4, 0
beq _0806813E
cmp r4, 0x4
bls _08068114
subs r0, r4, 0x4
lsls r0, 24
lsrs r4, r0, 24
_08068114:
subs r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r3, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
ldr r2, _08068144 @ =gUnknown_83A705C
lsls r1, r4, 2
adds r1, r2
ldr r1, [r1]
bl _call_via_r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08068148
_0806813E:
movs r0, 0
b _0806814E
.align 2, 0
_08068144: .4byte gUnknown_83A705C
_08068148:
adds r0, r4, 0x1
lsls r0, 24
lsrs r0, 24
_0806814E:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetLedgeJumpDirection
thumb_func_start ObjectEventSetSpriteOamTableForLongGrass
ObjectEventSetSpriteOamTableForLongGrass: @ 8068154
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r0, [r5]
lsls r0, 27
cmp r0, 0
blt _080681A8
ldrb r0, [r5, 0x1E]
bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
ldrb r0, [r5, 0x1F]
bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
adds r4, 0x42
ldrb r1, [r4]
movs r6, 0x40
negs r6, r6
adds r0, r6, 0
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
ldrb r0, [r5, 0xB]
lsrs r0, 4
bl ZCoordToPriority
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080681A8
ldrb r0, [r4]
adds r1, r6, 0
ands r1, r0
movs r0, 0x5
orrs r1, r0
strb r1, [r4]
_080681A8:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end ObjectEventSetSpriteOamTableForLongGrass
thumb_func_start IsZCoordMismatchAt
IsZCoordMismatchAt: @ 80681B0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 16
lsrs r0, r1, 16
lsls r2, 16
lsrs r1, r2, 16
cmp r4, 0
beq _080681DE
lsls r0, 16
asrs r0, 16
lsls r1, 16
asrs r1, 16
bl MapGridGetZCoordAt
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080681DE
cmp r0, 0xF
beq _080681DE
cmp r0, r4
bne _080681E2
_080681DE:
movs r0, 0
b _080681E4
_080681E2:
movs r0, 0x1
_080681E4:
pop {r4}
pop {r1}
bx r1
thumb_func_end IsZCoordMismatchAt
thumb_func_start ObjectEventUpdateZCoordAndPriority
ObjectEventUpdateZCoordAndPriority: @ 80681EC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x3]
lsls r0, 29
cmp r0, 0
blt _0806823A
adds r0, r4, 0
bl ObjectEventUpdateZCoord
ldr r1, _08068240 @ =gUnknown_83A708C
ldrb r2, [r4, 0xB]
lsls r2, 24
lsrs r0, r2, 28
adds r0, r1
ldrb r0, [r0]
adds r4, r5, 0
adds r4, 0x42
movs r1, 0x3F
ands r1, r0
ldrb r3, [r4]
movs r0, 0x40
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r4]
ldr r0, _08068244 @ =gUnknown_83A707C
lsrs r2, 28
adds r2, r0
movs r0, 0x3
ldrb r1, [r2]
ands r1, r0
lsls r1, 2
ldrb r2, [r5, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
_0806823A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08068240: .4byte gUnknown_83A708C
_08068244: .4byte gUnknown_83A707C
thumb_func_end ObjectEventUpdateZCoordAndPriority
thumb_func_start InitObjectPriorityByZCoord
InitObjectPriorityByZCoord: @ 8068248
push {r4,lr}
lsls r1, 24
lsrs r1, 24
ldr r2, _0806828C @ =gUnknown_83A708C
adds r2, r1, r2
ldrb r2, [r2]
movs r3, 0x42
adds r3, r0
mov r12, r3
movs r3, 0x3F
ands r3, r2
mov r2, r12
ldrb r4, [r2]
movs r2, 0x40
negs r2, r2
ands r2, r4
orrs r2, r3
mov r3, r12
strb r2, [r3]
ldr r2, _08068290 @ =gUnknown_83A707C
adds r1, r2
movs r3, 0x3
ldrb r2, [r1]
ands r2, r3
lsls r2, 2
ldrb r3, [r0, 0x5]
movs r1, 0xD
negs r1, r1
ands r1, r3
orrs r1, r2
strb r1, [r0, 0x5]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0806828C: .4byte gUnknown_83A708C
_08068290: .4byte gUnknown_83A707C
thumb_func_end InitObjectPriorityByZCoord
thumb_func_start ZCoordToPriority
ZCoordToPriority: @ 8068294
lsls r0, 24
lsrs r0, 24
ldr r1, _080682A0 @ =gUnknown_83A707C
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080682A0: .4byte gUnknown_83A707C
thumb_func_end ZCoordToPriority
thumb_func_start ObjectEventUpdateZCoord
ObjectEventUpdateZCoord: @ 80682A4
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x10
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl MapGridGetZCoordAt
lsls r0, 24
lsrs r5, r0, 24
movs r1, 0x14
ldrsh r0, [r4, r1]
movs r2, 0x16
ldrsh r1, [r4, r2]
bl MapGridGetZCoordAt
lsls r0, 24
lsrs r0, 24
cmp r5, 0xF
beq _080682F2
cmp r0, 0xF
beq _080682F2
movs r3, 0xF
adds r0, r5, 0
ands r0, r3
ldrb r1, [r4, 0xB]
movs r2, 0x10
negs r2, r2
ands r2, r1
orrs r2, r0
strb r2, [r4, 0xB]
cmp r5, 0
beq _080682F2
cmp r5, 0xF
beq _080682F2
lsls r0, r5, 4
ands r2, r3
orrs r2, r0
strb r2, [r4, 0xB]
_080682F2:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end ObjectEventUpdateZCoord
thumb_func_start SetObjectSubpriorityByZCoord
SetObjectSubpriorityByZCoord: @ 80682F8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r2, 24
lsrs r2, 24
adds r3, r1, 0
adds r3, 0x29
movs r5, 0
ldrsb r5, [r3, r5]
ldrh r4, [r1, 0x22]
ldr r3, _08068338 @ =gSpriteCoordOffsetY
subs r4, r5
ldrh r3, [r3]
adds r4, r3
adds r4, 0x8
movs r3, 0xFF
ands r4, r3
lsrs r4, 4
movs r3, 0x10
subs r3, r4
lsls r3, 17
ldr r4, _0806833C @ =gUnknown_83A706C
adds r0, r4
lsrs r3, 16
ldrb r0, [r0]
adds r3, r0
adds r2, r3
adds r1, 0x43
strb r2, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08068338: .4byte gSpriteCoordOffsetY
_0806833C: .4byte gUnknown_83A706C
thumb_func_end SetObjectSubpriorityByZCoord
thumb_func_start ObjectEventUpdateSubpriority
ObjectEventUpdateSubpriority: @ 8068340
push {lr}
adds r2, r0, 0
ldrb r0, [r2, 0x3]
lsls r0, 29
cmp r0, 0
blt _08068356
ldrb r0, [r2, 0xB]
lsrs r0, 4
movs r2, 0x1
bl SetObjectSubpriorityByZCoord
_08068356:
pop {r0}
bx r0
thumb_func_end ObjectEventUpdateSubpriority
thumb_func_start AreZCoordsCompatible
AreZCoordsCompatible: @ 806835C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
cmp r0, 0
beq _08068372
cmp r1, 0
beq _08068372
cmp r0, r1
bne _08068376
_08068372:
movs r0, 0x1
b _08068378
_08068376:
movs r0, 0
_08068378:
pop {r1}
bx r1
thumb_func_end AreZCoordsCompatible
thumb_func_start GroundEffect_SpawnOnTallGrass
GroundEffect_SpawnOnTallGrass: @ 806837C
push {lr}
ldr r3, _080683C0 @ =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
movs r2, 0x12
ldrsh r1, [r0, r2]
str r1, [r3, 0x4]
ldrb r1, [r0, 0xB]
lsrs r1, 4
str r1, [r3, 0x8]
movs r1, 0x2
str r1, [r3, 0xC]
ldrb r1, [r0, 0x8]
lsls r1, 8
ldrb r2, [r0, 0x9]
orrs r1, r2
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
ldr r0, _080683C4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
ldrb r1, [r1, 0x4]
orrs r0, r1
str r0, [r3, 0x18]
movs r0, 0x1
str r0, [r3, 0x1C]
movs r0, 0x4
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_080683C0: .4byte gFieldEffectArguments
_080683C4: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_SpawnOnTallGrass
thumb_func_start GroundEffect_StepOnTallGrass
GroundEffect_StepOnTallGrass: @ 80683C8
push {lr}
ldr r3, _0806840C @ =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
movs r2, 0x12
ldrsh r1, [r0, r2]
str r1, [r3, 0x4]
ldrb r1, [r0, 0xB]
lsrs r1, 4
str r1, [r3, 0x8]
movs r1, 0x2
str r1, [r3, 0xC]
ldrb r1, [r0, 0x8]
lsls r1, 8
ldrb r2, [r0, 0x9]
orrs r1, r2
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
ldr r0, _08068410 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
ldrb r1, [r1, 0x4]
orrs r0, r1
str r0, [r3, 0x18]
movs r0, 0
str r0, [r3, 0x1C]
movs r0, 0x4
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_0806840C: .4byte gFieldEffectArguments
_08068410: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_StepOnTallGrass
thumb_func_start GroundEffect_SpawnOnLongGrass
GroundEffect_SpawnOnLongGrass: @ 8068414
push {lr}
ldr r3, _08068458 @ =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
movs r2, 0x12
ldrsh r1, [r0, r2]
str r1, [r3, 0x4]
ldrb r1, [r0, 0xB]
lsrs r1, 4
str r1, [r3, 0x8]
movs r1, 0x2
str r1, [r3, 0xC]
ldrb r1, [r0, 0x8]
lsls r1, 8
ldrb r2, [r0, 0x9]
orrs r1, r2
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
ldr r0, _0806845C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
ldrb r1, [r1, 0x4]
orrs r0, r1
str r0, [r3, 0x18]
movs r0, 0x1
str r0, [r3, 0x1C]
movs r0, 0x11
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_08068458: .4byte gFieldEffectArguments
_0806845C: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_SpawnOnLongGrass
thumb_func_start GroundEffect_StepOnLongGrass
GroundEffect_StepOnLongGrass: @ 8068460
push {lr}
ldr r3, _080684A4 @ =gFieldEffectArguments
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
movs r2, 0x12
ldrsh r1, [r0, r2]
str r1, [r3, 0x4]
ldrb r1, [r0, 0xB]
lsrs r1, 4
str r1, [r3, 0x8]
movs r1, 0x2
str r1, [r3, 0xC]
ldrb r1, [r0, 0x8]
lsls r1, 8
ldrb r2, [r0, 0x9]
orrs r1, r2
str r1, [r3, 0x10]
ldrb r0, [r0, 0xA]
str r0, [r3, 0x14]
ldr r0, _080684A8 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrb r0, [r1, 0x5]
lsls r0, 8
ldrb r1, [r1, 0x4]
orrs r0, r1
str r0, [r3, 0x18]
movs r0, 0
str r0, [r3, 0x1C]
movs r0, 0x11
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_080684A4: .4byte gFieldEffectArguments
_080684A8: .4byte gSaveBlock1Ptr
thumb_func_end GroundEffect_StepOnLongGrass
thumb_func_start GroundEffect_WaterReflection
GroundEffect_WaterReflection: @ 80684AC
push {lr}
movs r2, 0
bl SetUpReflection
pop {r0}
bx r0
thumb_func_end GroundEffect_WaterReflection
thumb_func_start GroundEffect_IceReflection
GroundEffect_IceReflection: @ 80684B8
push {lr}
movs r2, 0x1
bl SetUpReflection
pop {r0}
bx r0
thumb_func_end GroundEffect_IceReflection
thumb_func_start GroundEffect_FlowingWater
GroundEffect_FlowingWater: @ 80684C4
push {lr}
adds r1, r0, 0
movs r0, 0x22
bl oe_exec_and_other_stuff
pop {r0}
bx r0
thumb_func_end GroundEffect_FlowingWater
thumb_func_start GroundEffect_SandTracks
GroundEffect_SandTracks: @ 80684D4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
bl GetObjectEventGraphicsInfo
ldr r1, _080684FC @ =gUnknown_83A709C
ldrb r0, [r0, 0xD]
lsls r0, 2
adds r0, r1
ldr r3, [r0]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl _call_via_r3
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080684FC: .4byte gUnknown_83A709C
thumb_func_end GroundEffect_SandTracks
thumb_func_start GroundEffect_DeepSandTracks
GroundEffect_DeepSandTracks: @ 8068500
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
bl GetObjectEventGraphicsInfo
ldr r1, _08068528 @ =gUnknown_83A709C
ldrb r0, [r0, 0xD]
lsls r0, 2
adds r0, r1
ldr r3, [r0]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl _call_via_r3
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08068528: .4byte gUnknown_83A709C
thumb_func_end GroundEffect_DeepSandTracks
thumb_func_start nullsub_26
nullsub_26: @ 806852C
bx lr
thumb_func_end nullsub_26
thumb_func_start DoTracksGroundEffect_Footprints
DoTracksGroundEffect_Footprints: @ 8068530
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
lsls r4, r2, 24
lsrs r4, 24
ldr r1, _08068578 @ =gUnknown_83A70A8
mov r0, sp
movs r2, 0x4
bl memcpy
ldr r1, _0806857C @ =gFieldEffectArguments
movs r2, 0x14
ldrsh r0, [r5, r2]
str r0, [r1]
movs r2, 0x16
ldrsh r0, [r5, r2]
str r0, [r1, 0x4]
movs r0, 0x95
str r0, [r1, 0x8]
movs r0, 0x2
str r0, [r1, 0xC]
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
str r0, [r1, 0x10]
lsls r4, 1
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
bl FieldEffectStart
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08068578: .4byte gUnknown_83A70A8
_0806857C: .4byte gFieldEffectArguments
thumb_func_end DoTracksGroundEffect_Footprints
thumb_func_start DoTracksGroundEffect_BikeTireTracks
DoTracksGroundEffect_BikeTireTracks: @ 8068580
push {r4,lr}
adds r4, r0, 0
ldr r1, [r4, 0x10]
ldr r0, [r4, 0x14]
cmp r1, r0
beq _080685C2
ldr r2, _080685C8 @ =gFieldEffectArguments
movs r1, 0x14
ldrsh r0, [r4, r1]
str r0, [r2]
movs r1, 0x16
ldrsh r0, [r4, r1]
str r0, [r2, 0x4]
movs r0, 0x95
str r0, [r2, 0x8]
movs r0, 0x2
str r0, [r2, 0xC]
ldr r3, _080685CC @ =gUnknown_83A70AC
ldrb r1, [r4, 0x18]
lsls r1, 28
lsrs r1, 28
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
lsls r0, 2
subs r0, 0x5
adds r1, r0
adds r1, r3
ldrb r0, [r1]
str r0, [r2, 0x10]
movs r0, 0x23
bl FieldEffectStart
_080685C2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080685C8: .4byte gFieldEffectArguments
_080685CC: .4byte gUnknown_83A70AC
thumb_func_end DoTracksGroundEffect_BikeTireTracks
thumb_func_start GroundEffect_Ripple
GroundEffect_Ripple: @ 80685D0
push {lr}
bl DoRippleFieldEffect
pop {r0}
bx r0
thumb_func_end GroundEffect_Ripple
thumb_func_start GroundEffect_StepOnPuddle
GroundEffect_StepOnPuddle: @ 80685DC
push {lr}
adds r1, r0, 0
movs r0, 0xF
bl oe_exec_and_other_stuff
pop {r0}
bx r0
thumb_func_end GroundEffect_StepOnPuddle
thumb_func_start GroundEffect_SandHeap
GroundEffect_SandHeap: @ 80685EC
push {lr}
adds r1, r0, 0
movs r0, 0x27
bl oe_exec_and_other_stuff
pop {r0}
bx r0
thumb_func_end GroundEffect_SandHeap
thumb_func_start GroundEffect_JumpOnTallGrass
GroundEffect_JumpOnTallGrass: @ 80685FC
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
ldr r1, _08068650 @ =gFieldEffectArguments
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
movs r4, 0x12
ldrsh r0, [r5, r4]
str r0, [r1, 0x4]
ldrb r0, [r5, 0xB]
lsrs r0, 4
str r0, [r1, 0x8]
movs r0, 0x2
str r0, [r1, 0xC]
movs r0, 0xC
bl FieldEffectStart
ldrb r0, [r5, 0x8]
ldrb r1, [r5, 0x9]
ldrb r2, [r5, 0xA]
movs r7, 0x10
ldrsh r3, [r5, r7]
movs r7, 0x12
ldrsh r4, [r5, r7]
str r4, [sp]
bl FindTallGrassFieldEffectSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0x40
bne _08068646
adds r0, r5, 0
adds r1, r6, 0
bl GroundEffect_SpawnOnTallGrass
_08068646:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08068650: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_JumpOnTallGrass
thumb_func_start GroundEffect_JumpOnLongGrass
GroundEffect_JumpOnLongGrass: @ 8068654
push {lr}
ldr r2, _08068678 @ =gFieldEffectArguments
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
movs r3, 0x12
ldrsh r1, [r0, r3]
str r1, [r2, 0x4]
ldrb r0, [r0, 0xB]
lsrs r0, 4
str r0, [r2, 0x8]
movs r0, 0x2
str r0, [r2, 0xC]
movs r0, 0x12
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_08068678: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_JumpOnLongGrass
thumb_func_start GroundEffect_JumpOnShallowWater
GroundEffect_JumpOnShallowWater: @ 806867C
push {r4,lr}
ldr r3, _080686A8 @ =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
movs r4, 0x12
ldrsh r2, [r0, r4]
str r2, [r3, 0x4]
ldrb r0, [r0, 0xB]
lsrs r0, 4
str r0, [r3, 0x8]
ldrb r0, [r1, 0x5]
lsls r0, 28
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0x10
bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080686A8: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_JumpOnShallowWater
thumb_func_start GroundEffect_JumpOnWater
GroundEffect_JumpOnWater: @ 80686AC
push {r4,lr}
ldr r3, _080686D8 @ =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
movs r4, 0x12
ldrsh r2, [r0, r4]
str r2, [r3, 0x4]
ldrb r0, [r0, 0xB]
lsrs r0, 4
str r0, [r3, 0x8]
ldrb r0, [r1, 0x5]
lsls r0, 28
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0xE
bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080686D8: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_JumpOnWater
thumb_func_start GroundEffect_JumpLandingDust
GroundEffect_JumpLandingDust: @ 80686DC
push {r4,lr}
ldr r3, _08068708 @ =gFieldEffectArguments
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
movs r4, 0x12
ldrsh r2, [r0, r4]
str r2, [r3, 0x4]
ldrb r0, [r0, 0xB]
lsrs r0, 4
str r0, [r3, 0x8]
ldrb r0, [r1, 0x5]
lsls r0, 28
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0xA
bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08068708: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_JumpLandingDust
thumb_func_start GroundEffect_ShortGrass
GroundEffect_ShortGrass: @ 806870C
push {lr}
adds r1, r0, 0
movs r0, 0x29
bl oe_exec_and_other_stuff
pop {r0}
bx r0
thumb_func_end GroundEffect_ShortGrass
thumb_func_start GroundEffect_HotSprings
GroundEffect_HotSprings: @ 806871C
push {lr}
adds r1, r0, 0
movs r0, 0x2A
bl oe_exec_and_other_stuff
pop {r0}
bx r0
thumb_func_end GroundEffect_HotSprings
thumb_func_start GroundEffect_Seaweed
GroundEffect_Seaweed: @ 806872C
push {lr}
ldr r2, _08068748 @ =gFieldEffectArguments
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
movs r1, 0x12
ldrsh r0, [r0, r1]
str r0, [r2, 0x4]
movs r0, 0x35
bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
_08068748: .4byte gFieldEffectArguments
thumb_func_end GroundEffect_Seaweed
thumb_func_start DoFlaggedGroundEffects
DoFlaggedGroundEffects: @ 806874C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r7, r1, 0
adds r5, r2, 0
ldrb r0, [r6, 0x8]
cmp r0, 0x7F
bne _08068766
ldrb r0, [r6, 0x1]
lsls r0, 26
cmp r0, 0
blt _0806878E
_08068766:
movs r4, 0
ldr r0, _08068798 @ =gUnknown_83A70BC
mov r8, r0
_0806876C:
movs r0, 0x1
ands r0, r5
cmp r0, 0
beq _08068782
lsls r0, r4, 2
add r0, r8
ldr r2, [r0]
adds r0, r6, 0
adds r1, r7, 0
bl _call_via_r2
_08068782:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsrs r5, 1
cmp r4, 0x13
bls _0806876C
_0806878E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08068798: .4byte gUnknown_83A70BC
thumb_func_end DoFlaggedGroundEffects
thumb_func_start filters_out_some_ground_effects
filters_out_some_ground_effects: @ 806879C
push {lr}
adds r2, r0, 0
adds r3, r1, 0
ldrb r0, [r2]
lsls r0, 27
cmp r0, 0
bge _080687CA
ldrb r1, [r2, 0x2]
movs r0, 0x5
negs r0, r0
ands r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
adds r1, 0x8
ands r0, r1
subs r1, 0x18
ands r0, r1
strb r0, [r2, 0x2]
ldr r0, [r3]
ldr r1, _080687D0 @ =0xfff9f7bd
ands r0, r1
str r0, [r3]
_080687CA:
pop {r0}
bx r0
.align 2, 0
_080687D0: .4byte 0xfff9f7bd
thumb_func_end filters_out_some_ground_effects
thumb_func_start FilterOutStepOnPuddleGroundEffectIfJumping
FilterOutStepOnPuddleGroundEffectIfJumping: @ 80687D4
push {lr}
adds r2, r1, 0
ldrb r0, [r0]
lsls r0, 26
cmp r0, 0
bge _080687E8
ldr r0, [r2]
ldr r1, _080687EC @ =0xfffffbff
ands r0, r1
str r0, [r2]
_080687E8:
pop {r0}
bx r0
.align 2, 0
_080687EC: .4byte 0xfffffbff
thumb_func_end FilterOutStepOnPuddleGroundEffectIfJumping
thumb_func_start DoGroundEffects_OnSpawn
DoGroundEffects_OnSpawn: @ 80687F0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4]
lsls r0, 29
cmp r0, 0
bge _08068834
movs r0, 0
str r0, [sp]
adds r0, r4, 0
bl ObjectEventUpdateZCoordAndPriority
adds r0, r4, 0
mov r1, sp
bl GetAllGroundEffectFlags_OnSpawn
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSpriteOamTableForLongGrass
ldr r2, [sp]
adds r0, r4, 0
adds r1, r5, 0
bl DoFlaggedGroundEffects
ldrb r1, [r4]
movs r0, 0x5
negs r0, r0
ands r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r4]
_08068834:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end DoGroundEffects_OnSpawn
thumb_func_start DoGroundEffects_OnBeginStep
DoGroundEffects_OnBeginStep: @ 806883C
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4]
lsls r0, 29
cmp r0, 0
bge _08068888
movs r0, 0
str r0, [sp]
adds r0, r4, 0
bl ObjectEventUpdateZCoordAndPriority
adds r0, r4, 0
mov r1, sp
bl GetAllGroundEffectFlags_OnBeginStep
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSpriteOamTableForLongGrass
adds r0, r4, 0
mov r1, sp
bl filters_out_some_ground_effects
ldr r2, [sp]
adds r0, r4, 0
adds r1, r5, 0
bl DoFlaggedGroundEffects
ldrb r1, [r4]
movs r0, 0x5
negs r0, r0
ands r0, r1
movs r1, 0x11
negs r1, r1
ands r0, r1
strb r0, [r4]
_08068888:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end DoGroundEffects_OnBeginStep
thumb_func_start DoGroundEffects_OnFinishStep
DoGroundEffects_OnFinishStep: @ 8068890
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4]
lsls r0, 28
cmp r0, 0
bge _080688DC
movs r0, 0
str r0, [sp]
adds r0, r4, 0
bl ObjectEventUpdateZCoordAndPriority
adds r0, r4, 0
mov r1, sp
bl GetAllGroundEffectFlags_OnFinishStep
adds r0, r4, 0
adds r1, r5, 0
bl ObjectEventSetSpriteOamTableForLongGrass
adds r0, r4, 0
mov r1, sp
bl FilterOutStepOnPuddleGroundEffectIfJumping
ldr r2, [sp]
adds r0, r4, 0
adds r1, r5, 0
bl DoFlaggedGroundEffects
ldrb r1, [r4]
movs r0, 0x9
negs r0, r0
ands r0, r1
movs r1, 0x21
negs r1, r1
ands r0, r1
strb r0, [r4]
_080688DC:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end DoGroundEffects_OnFinishStep
.align 2, 0 @ Don't pad with nop.