pokeemerald/asm/field_map_obj.s
2017-09-16 18:24:58 -04:00

8323 lines
129 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start npc_set_running_behaviour_etc
npc_set_running_behaviour_etc: @ 8092B2C
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, =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, =gUnknown_08505438
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
.pool
thumb_func_end npc_set_running_behaviour_etc
thumb_func_start npc_running_behaviour_by_direction
npc_running_behaviour_by_direction: @ 8092B78
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_0850DB53
adds r0, r1
ldrb r0, [r0]
bx lr
.pool
thumb_func_end npc_running_behaviour_by_direction
thumb_func_start npc_block_way__next_tile
npc_block_way__next_tile: @ 8092B88
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
lsls r5, r1, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
adds r3, r5, 0
bl npc_block_way
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end npc_block_way__next_tile
thumb_func_start npc_block_way
@ u8 npc_block_way(struct npc_state *fieldObject, u16 x, u16 y, u8 direction)
npc_block_way: @ 8092BC8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
lsls r1, 16
lsls r2, 16
lsls r3, 24
lsrs r7, r3, 24
mov r8, r7
lsrs r0, r1, 16
mov r9, r0
asrs r5, r1, 16
lsrs r0, r2, 16
mov r10, r0
asrs r4, r2, 16
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl IsCoordOutsideFieldObjectMovementRect
lsls r0, 24
cmp r0, 0
beq _08092BFE
movs r0, 0x1
b _08092C7E
_08092BFE:
adds r0, r5, 0
adds r1, r4, 0
bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _08092C40
adds r0, r5, 0
adds r1, r4, 0
bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08092C40
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 _08092C40
ldrb r0, [r6, 0x1]
lsrs r0, 7
cmp r0, 0
beq _08092C44
mov r0, r8
bl CanCameraMoveInDirection
cmp r0, 0
bne _08092C44
_08092C40:
movs r0, 0x2
b _08092C7E
_08092C44:
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 _08092C68
movs r0, 0x3
b _08092C7E
_08092C68:
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl CheckForCollisionBetweenFieldObjects
lsls r0, 24
cmp r0, 0
bne _08092C7C
movs r0, 0
b _08092C7E
_08092C7C:
movs r0, 0x4
_08092C7E:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end npc_block_way
thumb_func_start sub_8092C8C
sub_8092C8C: @ 8092C8C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r0, 0
lsls r1, 16
lsls r2, 16
lsls r3, 24
lsrs r3, 24
mov r8, r3
lsrs r0, r1, 16
mov r9, r0
asrs r6, r1, 16
lsrs r0, r2, 16
mov r10, r0
asrs r5, r2, 16
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl IsCoordOutsideFieldObjectMovementRect
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
adds r0, r6, 0
adds r1, r5, 0
bl MapGridIsImpassableAt
lsls r0, 24
cmp r0, 0
bne _08092D04
adds r0, r6, 0
adds r1, r5, 0
bl GetMapBorderIdAt
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08092D04
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
mov r3, r8
bl IsMetatileDirectionallyImpassable
lsls r0, 24
cmp r0, 0
bne _08092D04
ldrb r0, [r7, 0x1]
lsrs r0, 7
cmp r0, 0
beq _08092D08
mov r0, r8
bl CanCameraMoveInDirection
cmp r0, 0
bne _08092D08
_08092D04:
movs r0, 0x2
orrs r4, r0
_08092D08:
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 _08092D30
movs r0, 0x4
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_08092D30:
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl CheckForCollisionBetweenFieldObjects
lsls r0, 24
cmp r0, 0
beq _08092D48
movs r0, 0x8
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_08092D48:
adds r0, r4, 0
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8092C8C
thumb_func_start IsCoordOutsideFieldObjectMovementRect
@ bool8 IsCoordOutsideFieldObjectMovementRect(struct npc_state *fieldObject, u16 x, u16 y)
IsCoordOutsideFieldObjectMovementRect: @ 8092D58
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 _08092D90
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 _08092DBC
lsls r0, r1, 16
asrs r0, 16
cmp r0, r3
blt _08092DBC
_08092D90:
ldrb r1, [r4, 0x19]
movs r0, 0xF0
ands r0, r1
cmp r0, 0
beq _08092DC0
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 _08092DBC
lsls r0, r1, 16
asrs r0, 16
cmp r0, r3
bge _08092DC0
_08092DBC:
movs r0, 0x1
b _08092DC2
_08092DC0:
movs r0, 0
_08092DC2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end IsCoordOutsideFieldObjectMovementRect
thumb_func_start IsMetatileDirectionallyImpassable
@ bool8 IsMetatileDirectionallyImpassable(struct npc_state *fieldObject, u16 x, u16 y, u8 direction)
IsMetatileDirectionallyImpassable: @ 8092DC8
push {r4-r7,lr}
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r7, r2, 16
lsls r3, 24
ldr r1, =gUnknown_0850DB5C
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 _08092E0A
ldr r4, =gUnknown_0850DB6C
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 _08092E18
_08092E0A:
movs r0, 0x1
b _08092E1A
.pool
_08092E18:
movs r0, 0
_08092E1A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end IsMetatileDirectionallyImpassable
thumb_func_start CheckForCollisionBetweenFieldObjects
@ bool8 CheckForCollisionBetweenFieldObjects(struct npc_state *fieldObject, u16 x, u16 y)
CheckForCollisionBetweenFieldObjects: @ 8092E20
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
_08092E2E:
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
ldr r1, =gMapObjects
adds r2, r0, r1
ldrb r0, [r2]
lsls r0, 31
cmp r0, 0
beq _08092E88
cmp r2, r6
beq _08092E88
movs r0, 0x10
ldrsh r1, [r2, r0]
lsls r0, r7, 16
asrs r3, r0, 16
cmp r1, r3
bne _08092E58
movs r1, 0x12
ldrsh r0, [r2, r1]
cmp r0, r5
beq _08092E68
_08092E58:
movs r1, 0x14
ldrsh r0, [r2, r1]
cmp r0, r3
bne _08092E88
movs r1, 0x16
ldrsh r0, [r2, r1]
cmp r0, r5
bne _08092E88
_08092E68:
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 _08092E88
movs r0, 0x1
b _08092E94
.pool
_08092E88:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _08092E2E
movs r0, 0
_08092E94:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CheckForCollisionBetweenFieldObjects
thumb_func_start sub_8092E9C
sub_8092E9C: @ 8092E9C
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetFieldObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08092EE8
ldr r3, =gSprites
ldr r2, =gMapObjects
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrh r1, [r0, 0x3C]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08092EE8
movs r0, 0x1
b _08092EEA
.pool
_08092EE8:
movs r0, 0
_08092EEA:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_8092E9C
thumb_func_start sub_8092EF0
sub_8092EF0: @ 8092EF0
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r3, sp
bl TryGetFieldObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08092F2E
ldr r3, =gSprites
ldr r2, =gMapObjects
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r2, [r1, 0x3C]
movs r0, 0x4
orrs r0, r2
strh r0, [r1, 0x3C]
_08092F2E:
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_8092EF0
thumb_func_start MoveCoords
@ void MoveCoords(u8 direction, u16 *x, u16 *y)
MoveCoords: @ 8092F3C
push {r4,lr}
lsls r0, 24
ldr r3, =gUnknown_0850DB7C
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
.pool
thumb_func_end MoveCoords
thumb_func_start sub_8092F60
sub_8092F60: @ 8092F60
push {r4,lr}
lsls r0, 24
ldr r3, =gUnknown_0850DB7C
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
.pool
thumb_func_end sub_8092F60
thumb_func_start sub_8092F88
sub_8092F88: @ 8092F88
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, =gUnknown_0850DB7C
lsrs r0, 22
adds r5, r0, r1
movs r0, 0
ldrsh r1, [r5, r0]
cmp r1, 0
ble _08092FB4
lsls r0, r3, 16
asrs r0, 16
ldrh r3, [r4]
adds r0, r3
strh r0, [r4]
_08092FB4:
cmp r1, 0
bge _08092FC2
ldrh r1, [r4]
lsls r0, r7, 16
asrs r0, 16
subs r1, r0
strh r1, [r4]
_08092FC2:
movs r0, 0x2
ldrsh r1, [r5, r0]
cmp r1, 0
ble _08092FD4
lsls r0, r6, 16
asrs r0, 16
ldrh r3, [r2]
adds r0, r3
strh r0, [r2]
_08092FD4:
cmp r1, 0
bge _08092FE4
ldrh r1, [r2]
mov r3, r12
lsls r0, r3, 16
asrs r0, 16
subs r1, r0
strh r1, [r2]
_08092FE4:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8092F88
thumb_func_start sub_8092FF0
sub_8092FF0: @ 8092FF0
push {r4,r5,lr}
ldr r5, =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, =gUnknown_03005DEC
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r1
strh r0, [r2]
ldr r1, =gUnknown_03005DE8
ldrh r0, [r3]
ldrh r1, [r1]
subs r0, r1
strh r0, [r3]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8092FF0
thumb_func_start sub_8093038
sub_8093038: @ 8093038
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, =gUnknown_03005DEC
ldrh r0, [r0]
negs r0, r0
ldr r1, =gUnknown_03005DD0
ldr r2, [r1, 0x10]
subs r0, r2
lsls r0, 16
lsrs r3, r0, 16
ldr r0, =gUnknown_03005DE8
ldrh r0, [r0]
negs r0, r0
ldr r1, [r1, 0x14]
subs r0, r1
lsls r0, 16
lsrs r4, r0, 16
cmp r2, 0
ble _08093072
lsls r0, r3, 16
movs r3, 0x80
lsls r3, 13
adds r0, r3
lsrs r3, r0, 16
_08093072:
cmp r2, 0
bge _0809307E
lsls r0, r3, 16
ldr r2, =0xfff00000
adds r0, r2
lsrs r3, r0, 16
_0809307E:
cmp r1, 0
ble _0809308C
lsls r0, r4, 16
movs r2, 0x80
lsls r2, 13
adds r0, r2
lsrs r4, r0, 16
_0809308C:
cmp r1, 0
bge _08093098
lsls r0, r4, 16
ldr r1, =0xfff00000
adds r0, r1
lsrs r4, r0, 16
_08093098:
ldr r2, =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
.pool
thumb_func_end sub_8093038
thumb_func_start sub_80930E0
sub_80930E0: @ 80930E0
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r6, r0, 0
mov r8, r1
adds r4, r2, 0
adds r5, r3, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
movs r1, 0
ldrsh r0, [r6, r1]
mov r2, r8
movs r3, 0
ldrsh r1, [r2, r3]
adds r2, r6, 0
mov r3, r8
bl sub_8093038
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_80930E0
thumb_func_start GetFieldObjectMovingCameraOffset
@ void GetFieldObjectMovingCameraOffset(s16 *x, s16 *y)
GetFieldObjectMovingCameraOffset: @ 809312C
push {lr}
adds r2, r0, 0
movs r0, 0
strh r0, [r2]
strh r0, [r1]
ldr r3, =gUnknown_03005DD0
ldr r0, [r3, 0x10]
cmp r0, 0
ble _08093142
movs r0, 0x1
strh r0, [r2]
_08093142:
ldr r0, [r3, 0x10]
cmp r0, 0
bge _0809314E
ldrh r0, [r2]
subs r0, 0x1
strh r0, [r2]
_0809314E:
ldr r2, [r3, 0x14]
cmp r2, 0
ble _0809315A
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0809315A:
cmp r2, 0
bge _08093164
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
_08093164:
pop {r0}
bx r0
.pool
thumb_func_end GetFieldObjectMovingCameraOffset
thumb_func_start FieldObjectMoveDestCoords
@ void FieldObjectMoveDestCoords(struct npc_state *fieldObject, u8 direction)
FieldObjectMoveDestCoords: @ 809316C
push {r4,lr}
lsls r1, 24
lsrs r1, 24
ldrh r4, [r0, 0x10]
strh r4, [r2]
ldrh r0, [r0, 0x12]
strh r0, [r3]
adds r0, r1, 0
adds r1, r2, 0
adds r2, r3, 0
bl MoveCoords
pop {r4}
pop {r0}
bx r0
thumb_func_end FieldObjectMoveDestCoords
thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
@ bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct npc_state *fieldObject)
FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 809318C
push {lr}
ldrb r1, [r0]
movs r0, 0x42
ands r0, r1
cmp r0, 0
bne _0809319C
movs r0, 0
b _0809319E
_0809319C:
movs r0, 0x1
_0809319E:
pop {r1}
bx r1
thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
thumb_func_start FieldObjectIsSpecialAnimActive
@ bool8 FieldObjectIsSpecialAnimActive(struct npc_state *fieldObject)
FieldObjectIsSpecialAnimActive: @ 80931A4
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
lsls r0, 25
cmp r0, 0
bge _080931BA
ldrb r0, [r1, 0x1C]
cmp r0, 0xFF
beq _080931BA
movs r0, 0x1
b _080931BC
_080931BA:
movs r0, 0
_080931BC:
pop {r1}
bx r1
thumb_func_end FieldObjectIsSpecialAnimActive
thumb_func_start FieldObjectSetSpecialAnim
@ bool8 FieldObjectSetSpecialAnim(struct npc_state *fieldObject, u8 animId)
FieldObjectSetSpecialAnim: @ 80931C0
push {r4-r6,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r5, r1, 24
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _08093200
adds r0, r4, 0
bl npc_sync_anim_pause_bits
strb r5, [r4, 0x1C]
ldrb r0, [r4]
movs r1, 0x40
orrs r0, r1
movs r1, 0x7F
ands r0, r1
strb r0, [r4]
ldr r2, =gSprites
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r6, [r0, 0x32]
movs r0, 0
b _08093202
.pool
_08093200:
movs r0, 0x1
_08093202:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end FieldObjectSetSpecialAnim
thumb_func_start FieldObjectForceSetSpecialAnim
@ void FieldObjectForceSetSpecialAnim(struct npc_state *fieldObject, u8 animId)
FieldObjectForceSetSpecialAnim: @ 8093208
push {r4,r5,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
bl FieldObjectClearAnimIfSpecialAnimActive
adds r0, r5, 0
adds r1, r4, 0
bl FieldObjectSetSpecialAnim
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end FieldObjectForceSetSpecialAnim
thumb_func_start FieldObjectClearAnimIfSpecialAnimActive
@ void FieldObjectClearAnimIfSpecialAnimActive(struct npc_state *fieldObject)
FieldObjectClearAnimIfSpecialAnimActive: @ 8093224
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
lsls r0, 25
cmp r0, 0
bge _08093236
adds r0, r1, 0
bl FieldObjectClearAnim
_08093236:
pop {r0}
bx r0
thumb_func_end FieldObjectClearAnimIfSpecialAnimActive
thumb_func_start FieldObjectClearAnim
@ void FieldObjectClearAnim(struct npc_state *fieldObject)
FieldObjectClearAnim: @ 809323C
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, =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
.pool
thumb_func_end FieldObjectClearAnim
.section .text.get_simple_go_anim_id
thumb_func_start GetSimpleGoAnimId
@ u8 GetSimpleGoAnimId(u8 direction)
GetSimpleGoAnimId: @ 809335C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBA5
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093374
movs r4, 0
_08093374:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetSimpleGoAnimId
thumb_func_start GetGoSpeed0AnimId
@ u8 GetGoSpeed0AnimId(u8 direction)
GetGoSpeed0AnimId: @ 8093388
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBAA
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080933A0
movs r4, 0
_080933A0:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetGoSpeed0AnimId
thumb_func_start GetGoSpeed1AnimId
@ u8 GetGoSpeed1AnimId(u8 direction)
GetGoSpeed1AnimId: @ 80933B4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBAF
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080933CC
movs r4, 0
_080933CC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetGoSpeed1AnimId
thumb_func_start GetGoSpeed2AnimId
@ u8 GetGoSpeed2AnimId(u8 direction)
GetGoSpeed2AnimId: @ 80933E0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBB4
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080933F8
movs r4, 0
_080933F8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetGoSpeed2AnimId
thumb_func_start GetGoSpeed3AnimId
@ u8 GetGoSpeed3AnimId(u8 direction)
GetGoSpeed3AnimId: @ 809340C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBB9
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093424
movs r4, 0
_08093424:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetGoSpeed3AnimId
thumb_func_start sub_8093438
@ u8 sub_8093438(u8 direction)
sub_8093438: @ 8093438
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBBE
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093450
movs r4, 0
_08093450:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093438
thumb_func_start GetRunAnimId
@ u8 GetRunAnimId(u8 direction)
GetRunAnimId: @ 8093464
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBC3
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0809347C
movs r4, 0
_0809347C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetRunAnimId
thumb_func_start GetJumpLedgeAnimId
@ u8 GetJumpLedgeAnimId(u8 direction)
GetJumpLedgeAnimId: @ 8093490
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBC8
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080934A8
movs r4, 0
_080934A8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetJumpLedgeAnimId
thumb_func_start sub_80934BC
@ u8 sub_80934BC(u8 direction)
sub_80934BC: @ 80934BC
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBCD
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080934D4
movs r4, 0
_080934D4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80934BC
thumb_func_start sub_80934E8
@ u8 sub_80934E8(u8 direction)
sub_80934E8: @ 80934E8
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBD2
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093500
movs r4, 0
_08093500:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80934E8
thumb_func_start sub_8093514
@ u8 sub_8093514(u8 direction)
sub_8093514: @ 8093514
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBD7
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0809352C
movs r4, 0
_0809352C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093514
thumb_func_start sub_8093540
@ u8 sub_8093540(u8 direction)
sub_8093540: @ 8093540
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBDC
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093558
movs r4, 0
_08093558:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093540
thumb_func_start GetStepInPlaceDelay32AnimId
@ u8 GetStepInPlaceDelay32AnimId(u8 direction)
GetStepInPlaceDelay32AnimId: @ 809356C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBE1
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093584
movs r4, 0
_08093584:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetStepInPlaceDelay32AnimId
thumb_func_start GetStepInPlaceDelay16AnimId
@ u8 GetStepInPlaceDelay16AnimId(u8 direction)
GetStepInPlaceDelay16AnimId: @ 8093598
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBE6
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080935B0
movs r4, 0
_080935B0:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetStepInPlaceDelay16AnimId
thumb_func_start GetStepInPlaceDelay8AnimId
@ u8 GetStepInPlaceDelay8AnimId(u8 direction)
GetStepInPlaceDelay8AnimId: @ 80935C4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBEB
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080935DC
movs r4, 0
_080935DC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetStepInPlaceDelay8AnimId
thumb_func_start GetStepInPlaceDelay4AnimId
@ u8 GetStepInPlaceDelay4AnimId(u8 direction)
GetStepInPlaceDelay4AnimId: @ 80935F0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBF0
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093608
movs r4, 0
_08093608:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end GetStepInPlaceDelay4AnimId
thumb_func_start FieldObjectFaceOppositeDirection
@ bool8 FieldObjectFaceOppositeDirection(struct npc_state *fieldObject, u8 direction)
FieldObjectFaceOppositeDirection: @ 809361C
push {r4,lr}
adds r4, r0, 0
lsls r0, r1, 24
lsrs r0, 24
bl GetOppositeDirection
lsls r0, 24
lsrs r0, 24
bl GetFaceDirectionAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end FieldObjectFaceOppositeDirection
thumb_func_start sub_8093648
sub_8093648: @ 8093648
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBF5
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093660
movs r4, 0
_08093660:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093648
thumb_func_start sub_8093674
sub_8093674: @ 8093674
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBFA
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0809368C
movs r4, 0
_0809368C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093674
thumb_func_start sub_80936A0
sub_80936A0: @ 80936A0
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DBFF
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080936B8
movs r4, 0
_080936B8:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80936A0
thumb_func_start sub_80936CC
sub_80936CC: @ 80936CC
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC04
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080936E4
movs r4, 0
_080936E4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80936CC
thumb_func_start sub_80936F8
sub_80936F8: @ 80936F8
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC09
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093710
movs r4, 0
_08093710:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80936F8
thumb_func_start sub_8093724
sub_8093724: @ 8093724
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC0E
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _0809373C
movs r4, 0
_0809373C:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093724
thumb_func_start sub_8093750
sub_8093750: @ 8093750
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC13
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093768
movs r4, 0
_08093768:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_8093750
thumb_func_start sub_809377C
sub_809377C: @ 809377C
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC18
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _08093794
movs r4, 0
_08093794:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_809377C
thumb_func_start sub_80937A8
sub_80937A8: @ 80937A8
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC1D
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080937C0
movs r4, 0
_080937C0:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_80937A8
thumb_func_start d2s_08064034
d2s_08064034: @ 80937D4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC22
mov r0, sp
movs r2, 0x5
bl memcpy
cmp r4, 0x4
bls _080937EC
movs r4, 0
_080937EC:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end d2s_08064034
thumb_func_start GetOppositeDirection
@ u8 GetOppositeDirection(u8 direction)
GetOppositeDirection: @ 8093800
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gUnknown_0850DC27
mov r0, sp
movs r2, 0x8
bl memcpy
subs r1, r4, 0x1
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0x7
bhi _08093828
mov r2, sp
adds r0, r2, r1
ldrb r0, [r0]
b _0809382A
.pool
_08093828:
adds r0, r4, 0
_0809382A:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end GetOppositeDirection
thumb_func_start zffu_offset_calc
zffu_offset_calc: @ 8093834
lsls r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, =gUnknown_0850DC2F
lsrs r0, 22
subs r0, 0x5
adds r1, r0
adds r1, r2
ldrb r0, [r1]
bx lr
.pool
thumb_func_end zffu_offset_calc
thumb_func_start state_to_direction
state_to_direction: @ 809384C
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 _0809386C
cmp r2, 0
beq _0809386C
cmp r1, 0x4
bhi _0809386C
cmp r2, 0x4
bls _08093870
_0809386C:
movs r0, 0
b _08093882
_08093870:
adds r1, r2, 0
bl zffu_offset_calc
ldr r2, =gUnknown_0850DC3F
lsls r1, r4, 2
subs r1, 0x5
adds r0, r1
adds r0, r2
ldrb r0, [r0]
_08093882:
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end state_to_direction
thumb_func_start FieldObjectExecSpecialAnim
@ void FieldObjectExecSpecialAnim(struct npc_state *fieldObject, struct obj *object)
FieldObjectExecSpecialAnim: @ 809388C
push {r4,lr}
adds r4, r0, 0
ldr r2, =gUnknown_0850DC50
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 _080938B8
ldrb r0, [r4]
movs r1, 0x80
orrs r0, r1
strb r0, [r4]
_080938B8:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end FieldObjectExecSpecialAnim
thumb_func_start FieldObjectExecRegularAnim
@ bool8 FieldObjectExecRegularAnim(struct npc_state *fieldObject, struct obj *object)
FieldObjectExecRegularAnim: @ 80938C4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r1, =gUnknown_0850DC50
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 _080938F4
movs r0, 0
b _080938FE
.pool
_080938F4:
movs r0, 0xFF
strb r0, [r4, 0x1C]
movs r0, 0
strh r0, [r5, 0x32]
movs r0, 0x1
_080938FE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FieldObjectExecRegularAnim
thumb_func_start FieldObjectSetRegularAnim
@ void FieldObjectSetRegularAnim(struct npc_state *fieldObject, struct obj *object, u8 animState)
FieldObjectSetRegularAnim: @ 8093904
movs r3, 0
strb r2, [r0, 0x1C]
strh r3, [r1, 0x32]
bx lr
thumb_func_end FieldObjectSetRegularAnim
thumb_func_start an_look_any
@ void an_look_any(struct npc_state *fieldObject, struct obj *object, u8 direction)
an_look_any: @ 809390C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r1, r2, 24
lsrs r1, 24
bl FieldObjectSetDirection
adds r0, r4, 0
bl npc_coords_shift_still
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl obj_npc_animation_step
adds r2, r5, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r5, 0x32]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end an_look_any
thumb_func_start sub_8093950
sub_8093950: @ 8093950
push {lr}
movs r2, 0x1
bl an_look_any
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8093950
thumb_func_start sub_8093960
sub_8093960: @ 8093960
push {lr}
movs r2, 0x2
bl an_look_any
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8093960
thumb_func_start sub_8093970
sub_8093970: @ 8093970
push {lr}
movs r2, 0x3
bl an_look_any
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8093970
thumb_func_start sub_8093980
sub_8093980: @ 8093980
push {lr}
movs r2, 0x4
bl an_look_any
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8093980
thumb_func_start npc_apply_direction
@ void npc_apply_direction(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed)
npc_apply_direction: @ 8093990
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r7, r0, 0
mov r8, r1
adds r4, r2, 0
adds r6, r3, 0
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
ldrh r1, [r7, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r7, 0x12]
mov r5, sp
adds r5, 0x2
strh r0, [r5]
adds r0, r7, 0
adds r1, r4, 0
bl FieldObjectSetDirection
adds r0, r4, 0
mov r1, sp
adds r2, r5, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r5, r0]
adds r0, r7, 0
bl npc_coords_shift
mov r0, r8
adds r1, r4, 0
adds r2, r6, 0
bl oamt_npc_ministep_reset
mov r4, r8
adds r4, 0x2C
ldrb r1, [r4]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r4]
ldr r0, =gUnknown_020375B8
ldr r0, [r0]
cmp r0, 0
beq _08093A0E
adds r0, r7, 0
bl sub_8097F78
lsls r0, 24
lsrs r0, 24
cmp r0, 0x10
beq _08093A0E
ldrb r0, [r4]
movs r1, 0x40
orrs r0, r1
strb r0, [r4]
_08093A0E:
ldrb r0, [r7]
movs r1, 0x4
orrs r0, r1
strb r0, [r7]
movs r0, 0x1
mov r1, r8
strh r0, [r1, 0x32]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end npc_apply_direction
thumb_func_start do_go_anim
@ void do_go_anim(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed)
do_go_anim: @ 8093A2C
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, =gUnknown_0850DEE8
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 npc_apply_direction
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
.pool
thumb_func_end do_go_anim
thumb_func_start do_run_anim
@ void do_run_anim(struct npc_state *fieldObject, struct obj *object, u8 direction)
do_run_anim: @ 8093A88
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
movs r3, 0x1
bl npc_apply_direction
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
@ bool8 npc_obj_ministep_stop_on_arrival(struct npc_state *fieldObject, struct obj *object)
npc_obj_ministep_stop_on_arrival: @ 8093AB8
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 _08093ACE
movs r0, 0
b _08093AEA
_08093ACE:
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
_08093AEA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end npc_obj_ministep_stop_on_arrival
thumb_func_start sub_8093AF0
@ void sub_8093AF0(struct npc_state *fieldObject, struct obj *object, u8 direction)
sub_8093AF0: @ 8093AF0
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
lsls r5, r2, 24
lsrs r5, 24
ldrh r1, [r6, 0x10]
mov r0, sp
strh r1, [r0]
ldrh r0, [r6, 0x12]
mov r4, sp
adds r4, 0x2
strh r0, [r4]
adds r0, r6, 0
adds r1, r5, 0
bl FieldObjectSetDirection
adds r0, r5, 0
mov r1, sp
adds r2, r4, 0
bl MoveCoords
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0
ldrsh r2, [r4, r0]
adds r0, r6, 0
bl npc_coords_shift
mov r0, r8
adds r1, r5, 0
bl sub_80976DC
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_8093AF0
thumb_func_start sub_8093B60
@ void sub_8093B60(struct npc_state *fieldObject, struct obj *object, u8 direction)
sub_8093B60: @ 8093B60
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r2, 24
lsrs r2, 24
bl sub_8093AF0
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_8093B60
thumb_func_start an_walk_any_2
@ bool8 an_walk_any_2(struct npc_state *fieldObject, struct obj *object)
an_walk_any_2: @ 8093B8C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_80976EC
lsls r0, 24
cmp r0, 0
bne _08093BA2
movs r0, 0
b _08093BBE
_08093BA2:
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
_08093BBE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end an_walk_any_2
thumb_func_start sub_8093BC4
sub_8093BC4: @ 8093BC4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x7
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093BE4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093BC4
thumb_func_start sub_8093BE4
sub_8093BE4: @ 8093BE4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093BF6
movs r0, 0
b _08093BFC
_08093BF6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093BFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093BE4
thumb_func_start sub_8093C04
sub_8093C04: @ 8093C04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x8
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093C24
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093C04
thumb_func_start sub_8093C24
sub_8093C24: @ 8093C24
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093C36
movs r0, 0
b _08093C3C
_08093C36:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093C3C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093C24
thumb_func_start sub_8093C44
sub_8093C44: @ 8093C44
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x5
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093C64
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093C44
thumb_func_start sub_8093C64
sub_8093C64: @ 8093C64
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093C76
movs r0, 0
b _08093C7C
_08093C76:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093C7C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093C64
thumb_func_start sub_8093C84
sub_8093C84: @ 8093C84
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x6
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093CA4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093C84
thumb_func_start sub_8093CA4
sub_8093CA4: @ 8093CA4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093CB6
movs r0, 0
b _08093CBC
_08093CB6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093CBC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093CA4
thumb_func_start sub_8093CC4
@ bool8 sub_8093CC4(struct npc_state *fieldObject, struct obj *object)
sub_8093CC4: @ 8093CC4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093CE4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093CC4
thumb_func_start sub_8093CE4
@ bool8 sub_8093CE4(struct npc_state *fieldObject, struct obj *object)
sub_8093CE4: @ 8093CE4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093CF6
movs r0, 0
b _08093CFC
_08093CF6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093CFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093CE4
thumb_func_start sub_8093D04
sub_8093D04: @ 8093D04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093D24
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093D04
thumb_func_start sub_8093D24
sub_8093D24: @ 8093D24
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093D36
movs r0, 0
b _08093D3C
_08093D36:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093D3C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093D24
thumb_func_start sub_8093D44
sub_8093D44: @ 8093D44
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093D64
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093D44
thumb_func_start sub_8093D64
sub_8093D64: @ 8093D64
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093D76
movs r0, 0
b _08093D7C
_08093D76:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093D7C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093D64
thumb_func_start sub_8093D84
sub_8093D84: @ 8093D84
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8093B60
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093DA4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093D84
thumb_func_start sub_8093DA4
sub_8093DA4: @ 8093DA4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08093DB6
movs r0, 0
b _08093DBC
_08093DB6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093DBC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093DA4
thumb_func_start sub_8093DC4
sub_8093DC4: @ 8093DC4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x7
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093DE4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093DC4
thumb_func_start sub_8093DE4
@ bool8 sub_8093DE4(struct npc_state *fieldObject, struct obj *object)
sub_8093DE4: @ 8093DE4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093DF6
movs r0, 0
b _08093DFC
_08093DF6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093DFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093DE4
thumb_func_start sub_8093E04
sub_8093E04: @ 8093E04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x8
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093E24
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093E04
thumb_func_start sub_8093E24
sub_8093E24: @ 8093E24
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093E36
movs r0, 0
b _08093E3C
_08093E36:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093E3C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093E24
thumb_func_start sub_8093E44
sub_8093E44: @ 8093E44
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x5
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093E64
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093E44
thumb_func_start sub_8093E64
sub_8093E64: @ 8093E64
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093E76
movs r0, 0
b _08093E7C
_08093E76:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093E7C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093E64
thumb_func_start sub_8093E84
sub_8093E84: @ 8093E84
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x6
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093EA4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093E84
thumb_func_start sub_8093EA4
sub_8093EA4: @ 8093EA4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093EB6
movs r0, 0
b _08093EBC
_08093EB6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093EBC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093EA4
thumb_func_start sub_8093EC4
sub_8093EC4: @ 8093EC4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093EE4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093EC4
thumb_func_start sub_8093EE4
sub_8093EE4: @ 8093EE4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093EF6
movs r0, 0
b _08093EFC
_08093EF6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093EFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093EE4
thumb_func_start sub_8093F04
sub_8093F04: @ 8093F04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093F24
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093F04
thumb_func_start sub_8093F24
sub_8093F24: @ 8093F24
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093F36
movs r0, 0
b _08093F3C
_08093F36:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093F3C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093F24
thumb_func_start sub_8093F44
sub_8093F44: @ 8093F44
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093F64
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093F44
thumb_func_start sub_8093F64
sub_8093F64: @ 8093F64
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093F76
movs r0, 0
b _08093F7C
_08093F76:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093F7C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093F64
thumb_func_start sub_8093F84
sub_8093F84: @ 8093F84
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8093FA4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8093F84
thumb_func_start sub_8093FA4
sub_8093FA4: @ 8093FA4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08093FB6
movs r0, 0
b _08093FBC
_08093FB6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08093FBC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8093FA4
thumb_func_start sub_8093FC4
sub_8093FC4: @ 8093FC4
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, =gUnknown_0850DFBC
add r0, sp, 0x4
movs r2, 0x6
bl memcpy
add r5, sp, 0xC
movs r0, 0
strh r0, [r5]
mov r6, sp
adds r6, 0xE
strh r0, [r6]
adds r0, r7, 0
adds r1, r4, 0
bl FieldObjectSetDirection
mov r1, r8
lsls r0, r1, 1
add r0, sp
adds r0, 0x4
movs r1, 0
ldrsh r3, [r0, r1]
str r3, [sp]
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8092F88
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_809783C
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
.pool
thumb_func_end sub_8093FC4
thumb_func_start maybe_shadow_1
maybe_shadow_1: @ 8094080
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_8093FC4
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_80940C4
@ int sub_80940C4(int a1, int a2, int a3)
sub_80940C4: @ 80940C4
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, =gUnknown_0850DFC2
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 _08094154
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 _08094154
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_8092F88
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 _08094178
.pool
_08094154:
mov r1, r8
cmp r1, 0xFF
bne _08094178
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]
_08094178:
mov r0, r8
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80940C4
thumb_func_start sub_8094188
sub_8094188: @ 8094188
push {lr}
ldr r2, =sub_809785C
bl sub_80940C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_8094188
thumb_func_start sub_809419C
sub_809419C: @ 809419C
push {lr}
ldr r2, =sub_80978E4
bl sub_80940C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_809419C
thumb_func_start sub_80941B0
sub_80941B0: @ 80941B0
push {lr}
bl sub_8094188
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _080941C2
movs r0, 0
b _080941C4
_080941C2:
movs r0, 0x1
_080941C4:
pop {r1}
bx r1
thumb_func_end sub_80941B0
thumb_func_start sub_80941C8
sub_80941C8: @ 80941C8
push {lr}
bl sub_809419C
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _080941DA
movs r0, 0
b _080941DC
_080941DA:
movs r0, 0x1
_080941DC:
pop {r1}
bx r1
thumb_func_end sub_80941C8
thumb_func_start sub_80941E0
sub_80941E0: @ 80941E0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8094188
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080941FA
cmp r0, 0xFF
bne _08094226
movs r0, 0x1
b _08094228
_080941FA:
ldrb r0, [r4, 0x18]
lsrs r0, 4
bl GetOppositeDirection
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetDirection
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl get_go_image_anim_num
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r5, 0
bl obj_npc_animation_step
_08094226:
movs r0, 0
_08094228:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80941E0
thumb_func_start sub_8094230
sub_8094230: @ 8094230
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809425C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094230
thumb_func_start sub_809425C
sub_809425C: @ 809425C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08094270
movs r0, 0
b _08094280
_08094270:
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
_08094280:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809425C
thumb_func_start sub_8094288
sub_8094288: @ 8094288
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80942B4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094288
thumb_func_start sub_80942B4
sub_80942B4: @ 80942B4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _080942C8
movs r0, 0
b _080942D8
_080942C8:
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
_080942D8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80942B4
thumb_func_start sub_80942E0
sub_80942E0: @ 80942E0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809430C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80942E0
thumb_func_start sub_809430C
sub_809430C: @ 809430C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08094320
movs r0, 0
b _08094330
_08094320:
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
_08094330:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809430C
thumb_func_start sub_8094338
sub_8094338: @ 8094338
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x2
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094364
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094338
thumb_func_start sub_8094364
sub_8094364: @ 8094364
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08094378
movs r0, 0
b _08094388
_08094378:
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
_08094388:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094364
thumb_func_start sub_8094390
sub_8094390: @ 8094390
movs r2, 0x1
strh r2, [r0, 0x32]
strh r1, [r0, 0x34]
bx lr
thumb_func_end sub_8094390
thumb_func_start sub_8094398
sub_8094398: @ 8094398
push {lr}
ldrh r0, [r1, 0x34]
subs r0, 0x1
strh r0, [r1, 0x34]
lsls r0, 16
cmp r0, 0
beq _080943AA
movs r0, 0
b _080943B0
_080943AA:
movs r0, 0x2
strh r0, [r1, 0x32]
movs r0, 0x1
_080943B0:
pop {r1}
bx r1
thumb_func_end sub_8094398
thumb_func_start sub_80943B4
sub_80943B4: @ 80943B4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
bl sub_8094390
adds r0, r5, 0
adds r1, r4, 0
bl sub_8094398
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80943B4
thumb_func_start sub_80943D4
sub_80943D4: @ 80943D4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x2
bl sub_8094390
adds r0, r5, 0
adds r1, r4, 0
bl sub_8094398
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80943D4
thumb_func_start sub_80943F4
sub_80943F4: @ 80943F4
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x4
bl sub_8094390
adds r0, r5, 0
adds r1, r4, 0
bl sub_8094398
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80943F4
thumb_func_start sub_8094414
sub_8094414: @ 8094414
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x8
bl sub_8094390
adds r0, r5, 0
adds r1, r4, 0
bl sub_8094398
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094414
thumb_func_start sub_8094434
sub_8094434: @ 8094434
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x10
bl sub_8094390
adds r0, r5, 0
adds r1, r4, 0
bl sub_8094398
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094434
thumb_func_start sub_8094454
sub_8094454: @ 8094454
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094474
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094454
thumb_func_start sub_8094474
sub_8094474: @ 8094474
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094486
movs r0, 0
b _0809448C
_08094486:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0809448C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094474
thumb_func_start sub_8094494
sub_8094494: @ 8094494
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_80944B4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094494
thumb_func_start sub_80944B4
sub_80944B4: @ 80944B4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080944C6
movs r0, 0
b _080944CC
_080944C6:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080944CC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80944B4
thumb_func_start sub_80944D4
sub_80944D4: @ 80944D4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_80944F4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80944D4
thumb_func_start sub_80944F4
sub_80944F4: @ 80944F4
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094506
movs r0, 0
b _0809450C
_08094506:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0809450C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80944F4
thumb_func_start sub_8094514
sub_8094514: @ 8094514
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094534
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094514
thumb_func_start sub_8094534
sub_8094534: @ 8094534
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094546
movs r0, 0
b _0809454C
_08094546:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_0809454C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094534
thumb_func_start sub_8094554
sub_8094554: @ 8094554
push {r4-r6,lr}
mov r6, r8
push {r6}
mov r8, r0
adds r6, r1, 0
adds r1, r2, 0
adds r4, r3, 0
ldr r5, [sp, 0x14]
lsls r1, 24
lsrs r1, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 16
lsrs r5, 16
bl FieldObjectSetDirection
mov r0, r8
adds r1, r6, 0
adds r2, r4, 0
bl npc_apply_anim_looping
adds r2, r6, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r2]
movs r0, 0x1
strh r0, [r6, 0x32]
strh r5, [r6, 0x34]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8094554
thumb_func_start sub_809459C
@ signed int sub_809459C(int a1, obj *a2)
sub_809459C: @ 809459C
push {lr}
ldrh r0, [r1, 0x34]
subs r0, 0x1
strh r0, [r1, 0x34]
lsls r0, 16
cmp r0, 0
beq _080945AE
movs r0, 0
b _080945C0
_080945AE:
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
_080945C0:
pop {r1}
bx r1
thumb_func_end sub_809459C
thumb_func_start sub_80945C4
@ int sub_80945C4(int a1, obj *a2)
sub_80945C4: @ 80945C4
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 _080945EE
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]
_080945EE:
adds r0, r5, 0
adds r1, r4, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80945C4
thumb_func_start sub_8094600
sub_8094600: @ 8094600
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_80945C4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094600
thumb_func_start sub_8094638
sub_8094638: @ 8094638
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_80945C4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094638
thumb_func_start sub_8094670
sub_8094670: @ 8094670
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_80945C4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094670
thumb_func_start sub_80946A8
sub_80946A8: @ 80946A8
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_80945C4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80946A8
thumb_func_start sub_80946E0
sub_80946E0: @ 80946E0
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80946E0
thumb_func_start sub_8094718
sub_8094718: @ 8094718
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094718
thumb_func_start sub_8094750
sub_8094750: @ 8094750
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094750
thumb_func_start sub_8094788
sub_8094788: @ 8094788
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094788
thumb_func_start sub_80947C0
sub_80947C0: @ 80947C0
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80947C0
thumb_func_start sub_80947F8
sub_80947F8: @ 80947F8
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80947F8
thumb_func_start sub_8094830
sub_8094830: @ 8094830
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094830
thumb_func_start sub_8094868
sub_8094868: @ 8094868
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094868
thumb_func_start sub_80948A0
sub_80948A0: @ 80948A0
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80948A0
thumb_func_start sub_80948D8
sub_80948D8: @ 80948D8
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80948D8
thumb_func_start sub_8094910
sub_8094910: @ 8094910
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094910
thumb_func_start sub_8094948
sub_8094948: @ 8094948
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094948
thumb_func_start sub_8094980
sub_8094980: @ 8094980
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_80949A0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094980
thumb_func_start sub_80949A0
sub_80949A0: @ 80949A0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080949B2
movs r0, 0
b _080949B8
_080949B2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080949B8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80949A0
thumb_func_start sub_80949C0
sub_80949C0: @ 80949C0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_80949E0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80949C0
thumb_func_start sub_80949E0
sub_80949E0: @ 80949E0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080949F2
movs r0, 0
b _080949F8
_080949F2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080949F8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80949E0
thumb_func_start sub_8094A00
sub_8094A00: @ 8094A00
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094A20
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094A00
thumb_func_start sub_8094A20
sub_8094A20: @ 8094A20
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094A32
movs r0, 0
b _08094A38
_08094A32:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094A38:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094A20
thumb_func_start sub_8094A40
sub_8094A40: @ 8094A40
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x2
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094A60
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094A40
thumb_func_start sub_8094A60
sub_8094A60: @ 8094A60
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094A72
movs r0, 0
b _08094A78
_08094A72:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094A78:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094A60
thumb_func_start sub_8094A80
sub_8094A80: @ 8094A80
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094AA0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094A80
thumb_func_start sub_8094AA0
sub_8094AA0: @ 8094AA0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094AB2
movs r0, 0
b _08094AB8
_08094AB2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094AB8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094AA0
thumb_func_start sub_8094AC0
sub_8094AC0: @ 8094AC0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094AE0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094AC0
thumb_func_start sub_8094AE0
sub_8094AE0: @ 8094AE0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094AF2
movs r0, 0
b _08094AF8
_08094AF2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094AF8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094AE0
thumb_func_start sub_8094B00
sub_8094B00: @ 8094B00
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094B20
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094B00
thumb_func_start sub_8094B20
sub_8094B20: @ 8094B20
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094B32
movs r0, 0
b _08094B38
_08094B32:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094B38:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094B20
thumb_func_start sub_8094B40
sub_8094B40: @ 8094B40
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x3
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094B60
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094B40
thumb_func_start sub_8094B60
sub_8094B60: @ 8094B60
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094B72
movs r0, 0
b _08094B78
_08094B72:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094B78:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094B60
thumb_func_start sub_8094B80
sub_8094B80: @ 8094B80
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094BA0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094B80
thumb_func_start sub_8094BA0
sub_8094BA0: @ 8094BA0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094BB2
movs r0, 0
b _08094BB8
_08094BB2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094BB8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094BA0
thumb_func_start sub_8094BC0
sub_8094BC0: @ 8094BC0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094BE0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094BC0
thumb_func_start sub_8094BE0
sub_8094BE0: @ 8094BE0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094BF2
movs r0, 0
b _08094BF8
_08094BF2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094BF8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094BE0
thumb_func_start sub_8094C00
sub_8094C00: @ 8094C00
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094C20
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094C00
thumb_func_start sub_8094C20
sub_8094C20: @ 8094C20
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094C32
movs r0, 0
b _08094C38
_08094C32:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094C38:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094C20
thumb_func_start sub_8094C40
sub_8094C40: @ 8094C40
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x4
bl do_go_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094C60
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094C40
thumb_func_start sub_8094C60
sub_8094C60: @ 8094C60
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094C72
movs r0, 0
b _08094C78
_08094C72:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094C78:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094C60
thumb_func_start do_run_south_anim
@ bool8 do_run_south_anim(struct npc_state *fieldObject, struct obj *object)
do_run_south_anim: @ 8094C80
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094CA0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_south_anim
thumb_func_start sub_8094CA0
@ bool8 sub_8094CA0(struct npc_state *fieldObject, struct obj *object)
sub_8094CA0: @ 8094CA0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094CB2
movs r0, 0
b _08094CB8
_08094CB2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094CB8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094CA0
thumb_func_start do_run_north_anim
do_run_north_anim: @ 8094CC0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094CE0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_north_anim
thumb_func_start sub_8094CE0
sub_8094CE0: @ 8094CE0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094CF2
movs r0, 0
b _08094CF8
_08094CF2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094CF8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094CE0
thumb_func_start do_run_west_anim
do_run_west_anim: @ 8094D00
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094D20
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_west_anim
thumb_func_start sub_8094D20
sub_8094D20: @ 8094D20
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094D32
movs r0, 0
b _08094D38
_08094D32:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094D38:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094D20
thumb_func_start do_run_east_anim
do_run_east_anim: @ 8094D40
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl do_run_anim
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094D60
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end do_run_east_anim
thumb_func_start sub_8094D60
sub_8094D60: @ 8094D60
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08094D72
movs r0, 0
b _08094D78
_08094D72:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094D78:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094D60
thumb_func_start npc_set_direction_and_anim__an_proceed
npc_set_direction_and_anim__an_proceed: @ 8094D80
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
adds r1, r3, 0
lsls r4, 24
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
movs r2, 0
bl obj_anim_image_set_and_seek
adds r0, r6, 0
adds r1, r4, 0
bl FieldObjectSetDirection
movs r0, 0x1
strh r0, [r5, 0x32]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end npc_set_direction_and_anim__an_proceed
thumb_func_start sub_8094DAC
sub_8094DAC: @ 8094DAC
push {lr}
ldrb r2, [r0, 0x18]
lsrs r2, 4
adds r3, r1, 0
adds r3, 0x2A
ldrb r3, [r3]
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8094DAC
thumb_func_start sub_8094DC4
sub_8094DC4: @ 8094DC4
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl sub_80979BC
lsls r0, 24
cmp r0, 0
bne _08094DD8
movs r0, 0
b _08094DDE
_08094DD8:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08094DDE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8094DC4
thumb_func_start sub_8094DE4
sub_8094DE4: @ 8094DE4
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_8093FC4
adds r0, r4, 0
bl sub_80929AC
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_8094DE4
thumb_func_start sub_8094E18
sub_8094E18: @ 8094E18
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
bl sub_8094DE4
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094E38
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094E18
thumb_func_start sub_8094E38
sub_8094E38: @ 8094E38
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941C8
lsls r0, 24
cmp r0, 0
bne _08094E4C
movs r0, 0
b _08094E5A
_08094E4C:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_08094E5A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094E38
thumb_func_start sub_8094E60
sub_8094E60: @ 8094E60
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
bl sub_8094DE4
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094E80
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094E60
thumb_func_start sub_8094E80
sub_8094E80: @ 8094E80
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941C8
lsls r0, 24
cmp r0, 0
bne _08094E94
movs r0, 0
b _08094EA2
_08094E94:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_08094EA2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094E80
thumb_func_start sub_8094EA8
sub_8094EA8: @ 8094EA8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
bl sub_8094DE4
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094EC8
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094EA8
thumb_func_start sub_8094EC8
sub_8094EC8: @ 8094EC8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941C8
lsls r0, 24
cmp r0, 0
bne _08094EDC
movs r0, 0
b _08094EEA
_08094EDC:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_08094EEA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094EC8
thumb_func_start sub_8094EF0
sub_8094EF0: @ 8094EF0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8094DE4
adds r0, r4, 0
adds r1, r5, 0
bl sub_8094F10
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094EF0
thumb_func_start sub_8094F10
sub_8094F10: @ 8094F10
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941C8
lsls r0, 24
cmp r0, 0
bne _08094F24
movs r0, 0
b _08094F32
_08094F24:
movs r0, 0x2
strh r0, [r5, 0x32]
ldrb r1, [r4]
subs r0, 0x23
ands r0, r1
strb r0, [r4]
movs r0, 0x1
_08094F32:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8094F10
thumb_func_start sub_8094F38
sub_8094F38: @ 8094F38
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0xFF
movs r1, 0
movs r2, 0
mov r3, sp
bl TryGetFieldObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08094F82
movs r1, 0x10
ldrsh r0, [r5, r1]
movs r2, 0x12
ldrsh r1, [r5, r2]
ldr r4, =gMapObjects
mov r2, sp
ldrb r2, [r2]
lsls r3, r2, 3
adds r3, r2
lsls r3, 2
adds r3, r4
movs r4, 0x10
ldrsh r2, [r3, r4]
movs r4, 0x12
ldrsh r3, [r3, r4]
bl sub_8092AF8
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r6, 0
bl an_look_any
_08094F82:
movs r0, 0x1
strh r0, [r6, 0x32]
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_8094F38
thumb_func_start sub_8094F94
sub_8094F94: @ 8094F94
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0xFF
movs r1, 0
movs r2, 0
mov r3, sp
bl TryGetFieldObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08094FE6
movs r1, 0x10
ldrsh r0, [r5, r1]
movs r2, 0x12
ldrsh r1, [r5, r2]
ldr r4, =gMapObjects
mov r2, sp
ldrb r2, [r2]
lsls r3, r2, 3
adds r3, r2
lsls r3, 2
adds r3, r4
movs r4, 0x10
ldrsh r2, [r3, r4]
movs r4, 0x12
ldrsh r3, [r3, r4]
bl sub_8092AF8
lsls r0, 24
lsrs r0, 24
bl GetOppositeDirection
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r6, 0
bl an_look_any
_08094FE6:
movs r0, 0x1
strh r0, [r6, 0x32]
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.pool
thumb_func_end sub_8094F94
thumb_func_start sub_8094FF8
sub_8094FF8: @ 8094FF8
ldrb r2, [r0, 0x1]
movs r3, 0x2
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_8094FF8
thumb_func_start sub_8095008
sub_8095008: @ 8095008
ldrb r3, [r0, 0x1]
movs r2, 0x3
negs r2, r2
ands r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_8095008
thumb_func_start sub_8095018
sub_8095018: @ 8095018
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095044
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095018
thumb_func_start sub_8095044
sub_8095044: @ 8095044
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095058
movs r0, 0
b _08095068
_08095058:
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
_08095068:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095044
thumb_func_start sub_8095070
sub_8095070: @ 8095070
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809509C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095070
thumb_func_start sub_809509C
sub_809509C: @ 809509C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _080950B0
movs r0, 0
b _080950C0
_080950B0:
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
_080950C0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809509C
thumb_func_start sub_80950C8
sub_80950C8: @ 80950C8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80950F4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80950C8
thumb_func_start sub_80950F4
sub_80950F4: @ 80950F4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095108
movs r0, 0
b _08095118
_08095108:
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
_08095118:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80950F4
thumb_func_start sub_8095120
sub_8095120: @ 8095120
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0x1
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809514C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095120
thumb_func_start sub_809514C
sub_809514C: @ 809514C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095160
movs r0, 0
b _08095170
_08095160:
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
_08095170:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809514C
thumb_func_start sub_8095178
sub_8095178: @ 8095178
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80951A4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095178
thumb_func_start sub_80951A4
sub_80951A4: @ 80951A4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _080951B8
movs r0, 0
b _080951C8
_080951B8:
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
_080951C8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80951A4
thumb_func_start sub_80951D0
sub_80951D0: @ 80951D0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80951FC
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80951D0
thumb_func_start sub_80951FC
sub_80951FC: @ 80951FC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095210
movs r0, 0
b _08095220
_08095210:
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
_08095220:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80951FC
thumb_func_start sub_8095228
sub_8095228: @ 8095228
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095254
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095228
thumb_func_start sub_8095254
sub_8095254: @ 8095254
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095268
movs r0, 0
b _08095278
_08095268:
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
_08095278:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095254
thumb_func_start sub_8095280
sub_8095280: @ 8095280
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80952AC
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095280
thumb_func_start sub_80952AC
sub_80952AC: @ 80952AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _080952C0
movs r0, 0
b _080952D0
_080952C0:
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
_080952D0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80952AC
thumb_func_start sub_80952D8
sub_80952D8: @ 80952D8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095304
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80952D8
thumb_func_start sub_8095304
sub_8095304: @ 8095304
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941E0
lsls r0, 24
cmp r0, 0
bne _08095318
movs r0, 0
b _08095328
_08095318:
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
_08095328:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095304
thumb_func_start sub_8095330
sub_8095330: @ 8095330
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x2
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809535C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095330
thumb_func_start sub_809535C
sub_809535C: @ 809535C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941E0
lsls r0, 24
cmp r0, 0
bne _08095370
movs r0, 0
b _08095380
_08095370:
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
_08095380:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809535C
thumb_func_start sub_8095388
sub_8095388: @ 8095388
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x3
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_80953B4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095388
thumb_func_start sub_80953B4
sub_80953B4: @ 80953B4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941E0
lsls r0, 24
cmp r0, 0
bne _080953C8
movs r0, 0
b _080953D8
_080953C8:
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
_080953D8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80953B4
thumb_func_start sub_80953E0
sub_80953E0: @ 80953E0
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
movs r2, 0x4
movs r3, 0
bl maybe_shadow_1
adds r0, r4, 0
adds r1, r5, 0
bl sub_809540C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80953E0
thumb_func_start sub_809540C
sub_809540C: @ 809540C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941E0
lsls r0, 24
cmp r0, 0
bne _08095420
movs r0, 0
b _08095430
_08095420:
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
_08095430:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809540C
thumb_func_start sub_8095438
sub_8095438: @ 8095438
push {lr}
ldr r3, =gUnknown_085055CD
ldrb r2, [r0, 0x6]
adds r2, r3
ldrb r2, [r2]
bl an_look_any
movs r0, 0x1
pop {r1}
bx r1
.pool
thumb_func_end sub_8095438
thumb_func_start sub_8095450
sub_8095450: @ 8095450
push {lr}
movs r2, 0x1
movs r3, 0x14
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8095450
thumb_func_start sub_8095460
sub_8095460: @ 8095460
ldrb r3, [r0, 0x3]
movs r2, 0x3
negs r2, r2
ands r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_8095460
thumb_func_start sub_8095470
sub_8095470: @ 8095470
ldrb r2, [r0, 0x3]
movs r3, 0x2
orrs r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_8095470
thumb_func_start sub_8095480
sub_8095480: @ 8095480
ldrb r2, [r0, 0x1]
movs r3, 0x10
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_8095480
thumb_func_start sub_8095490
@ int sub_8095490(npc_state *npcState, int a2)
sub_8095490: @ 8095490
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x5]
bl GetFieldObjectGraphicsInfo
ldrb r1, [r0, 0xC]
lsls r1, 25
lsrs r1, 31
lsls r1, 4
ldrb r2, [r4, 0x1]
movs r0, 0x11
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x1
strh r0, [r5, 0x32]
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095490
thumb_func_start sub_80954BC
sub_80954BC: @ 80954BC
ldrb r2, [r0, 0x1]
movs r3, 0x20
orrs r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_80954BC
thumb_func_start sub_80954CC
sub_80954CC: @ 80954CC
ldrb r3, [r0, 0x1]
movs r2, 0x21
negs r2, r2
ands r2, r3
strb r2, [r0, 0x1]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_80954CC
thumb_func_start do_exclamation_mark_bubble_1
do_exclamation_mark_bubble_1: @ 80954DC
push {r4,lr}
adds r4, r1, 0
ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl FieldObjectGetLocalIdAndMap
movs r0, 0
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end do_exclamation_mark_bubble_1
thumb_func_start do_exclamation_mark_bubble_2
do_exclamation_mark_bubble_2: @ 8095500
push {r4,lr}
adds r4, r1, 0
ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl FieldObjectGetLocalIdAndMap
movs r0, 0x21
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end do_exclamation_mark_bubble_2
thumb_func_start do_heart_bubble
do_heart_bubble: @ 8095524
push {r4,lr}
adds r4, r1, 0
ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
bl FieldObjectGetLocalIdAndMap
movs r0, 0x2E
bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end do_heart_bubble
thumb_func_start sub_8095548
sub_8095548: @ 8095548
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4, 0x6]
cmp r0, 0x3F
bne _0809555E
adds r0, r4, 0
bl sub_80B4578
movs r0, 0
b _08095586
_0809555E:
subs r0, 0x39
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08095580
adds r0, r4, 0
bl sub_8155D78
movs r0, 0x1
strh r0, [r5, 0x32]
adds r0, r4, 0
adds r1, r5, 0
bl sub_809558C
lsls r0, 24
lsrs r0, 24
b _08095586
_08095580:
movs r0, 0x2
strh r0, [r5, 0x32]
movs r0, 0x1
_08095586:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095548
thumb_func_start sub_809558C
sub_809558C: @ 809558C
push {r4,lr}
adds r4, r1, 0
bl sub_8155DA0
lsls r0, 24
cmp r0, 0
bne _0809559E
movs r0, 0
b _080955A4
_0809559E:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080955A4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809558C
thumb_func_start sub_80955AC
sub_80955AC: @ 80955AC
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl obj_anim_image_set_and_seek
movs r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80955AC
thumb_func_start sub_80955C8
sub_80955C8: @ 80955C8
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl sub_80979BC
lsls r0, 24
cmp r0, 0
beq _080955E4
adds r0, r4, 0
movs r1, 0x20
bl SetFieldObjectStepTimer
movs r0, 0x2
strh r0, [r4, 0x32]
_080955E4:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80955C8
thumb_func_start sub_80955EC
sub_80955EC: @ 80955EC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r2, [r4, 0x1]
lsls r1, r2, 26
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 5
subs r0, 0x22
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
beq _0809561E
ldrb r0, [r4, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x3
strh r0, [r5, 0x32]
_0809561E:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80955EC
thumb_func_start sub_8095628
sub_8095628: @ 8095628
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl obj_anim_image_set_and_seek
movs r0, 0x1
strh r0, [r4, 0x32]
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095628
thumb_func_start sub_8095644
sub_8095644: @ 8095644
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl sub_80979BC
lsls r0, 24
cmp r0, 0
beq _08095660
adds r0, r4, 0
movs r1, 0x20
bl SetFieldObjectStepTimer
movs r0, 0x2
strh r0, [r4, 0x32]
_08095660:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095644
thumb_func_start sub_8095668
sub_8095668: @ 8095668
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r2, [r4, 0x1]
lsls r1, r2, 26
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 5
subs r0, 0x22
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r5, 0
bl RunFieldObjectStepTimer
lsls r0, 24
cmp r0, 0
beq _0809569A
ldrb r0, [r4, 0x1]
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
movs r0, 0x3
strh r0, [r5, 0x32]
_0809569A:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095668
thumb_func_start sub_80956A4
sub_80956A4: @ 80956A4
ldrb r2, [r0, 0x3]
movs r3, 0x4
orrs r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_80956A4
thumb_func_start sub_80956B4
sub_80956B4: @ 80956B4
ldrb r3, [r0, 0x3]
movs r2, 0x5
negs r2, r2
ands r2, r3
strb r2, [r0, 0x3]
movs r0, 0x1
strh r0, [r1, 0x32]
bx lr
thumb_func_end sub_80956B4
thumb_func_start sub_80956C4
sub_80956C4: @ 80956C4
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r4, 0x1]
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
adds r0, r4, 0
bl InitSpriteAffineAnim
adds r2, r4, 0
adds r2, 0x2C
ldrb r0, [r2]
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
adds r4, 0x42
ldrb r1, [r4]
movs r0, 0x3F
ands r0, r1
strb r0, [r4]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80956C4
thumb_func_start sub_80956F4
sub_80956F4: @ 80956F4
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r0, [r4, 0x1]
movs r1, 0x4
negs r1, r1
ands r1, r0
strb r1, [r4, 0x1]
lsrs r1, 6
ldrb r2, [r4, 0x3]
lsrs r2, 6
movs r3, 0
adds r0, r4, 0
bl CalcCenterToCornerVec
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80956F4
thumb_func_start sub_8095724
sub_8095724: @ 8095724
ldrb r1, [r0, 0x3]
movs r2, 0x8
orrs r1, r2
strb r1, [r0, 0x3]
movs r0, 0x1
bx lr
thumb_func_end sub_8095724
thumb_func_start sub_8095730
sub_8095730: @ 8095730
ldrb r2, [r0, 0x3]
movs r1, 0x9
negs r1, r1
ands r1, r2
strb r1, [r0, 0x3]
movs r0, 0x1
bx lr
thumb_func_end sub_8095730
thumb_func_start sub_8095740
sub_8095740: @ 8095740
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x1
bl sub_8093B60
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl sub_8095774
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095740
thumb_func_start sub_8095774
sub_8095774: @ 8095774
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _08095786
movs r0, 0
b _08095798
_08095786:
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
_08095798:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095774
thumb_func_start sub_80957A0
sub_80957A0: @ 80957A0
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x1
bl sub_8093B60
adds r2, r4, 0
adds r2, 0x2C
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x1
bl ChangeSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl sub_80957D4
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80957A0
thumb_func_start sub_80957D4
sub_80957D4: @ 80957D4
push {r4,lr}
adds r4, r1, 0
bl an_walk_any_2
lsls r0, 24
cmp r0, 0
bne _080957E6
movs r0, 0
b _080957F8
_080957E6:
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
_080957F8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80957D4
thumb_func_start sub_8095800
sub_8095800: @ 8095800
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x3
movs r3, 0x1
bl do_go_anim
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, 0x2
bl ChangeSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl sub_8095834
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095800
thumb_func_start sub_8095834
sub_8095834: @ 8095834
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08095846
movs r0, 0
b _08095858
_08095846:
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
_08095858:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095834
thumb_func_start sub_8095860
sub_8095860: @ 8095860
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r2, 0x4
movs r3, 0x1
bl do_go_anim
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, 0x3
bl ChangeSpriteAffineAnimIfDifferent
adds r0, r5, 0
adds r1, r4, 0
bl sub_8095894
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095860
thumb_func_start sub_8095894
sub_8095894: @ 8095894
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080958A6
movs r0, 0
b _080958B8
_080958A6:
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
_080958B8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095894
thumb_func_start sub_80958C0
sub_80958C0: @ 80958C0
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
lsls r4, r2, 24
lsrs r4, 24
adds r1, r4, 0
bl FieldObjectSetDirection
adds r0, r5, 0
bl npc_coords_shift_still
adds r0, r4, 0
bl sub_80929FC
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_80958C0
thumb_func_start sub_8095900
sub_8095900: @ 8095900
push {lr}
movs r2, 0x1
bl sub_80958C0
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8095900
thumb_func_start sub_8095910
sub_8095910: @ 8095910
push {lr}
movs r2, 0x2
bl sub_80958C0
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8095910
thumb_func_start sub_8095920
sub_8095920: @ 8095920
push {lr}
movs r2, 0x3
bl sub_80958C0
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8095920
thumb_func_start sub_8095930
sub_8095930: @ 8095930
push {lr}
movs r2, 0x4
bl sub_80958C0
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end sub_8095930
thumb_func_start sub_8095940
sub_8095940: @ 8095940
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80929BC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095940
thumb_func_start sub_8095964
sub_8095964: @ 8095964
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80929BC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095964
thumb_func_start sub_8095988
sub_8095988: @ 8095988
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80929BC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095988
thumb_func_start sub_80959AC
sub_80959AC: @ 80959AC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80929BC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80959AC
thumb_func_start sub_80959D0
sub_80959D0: @ 80959D0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80929DC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80959D0
thumb_func_start sub_80959F4
sub_80959F4: @ 80959F4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80929DC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80959F4
thumb_func_start sub_8095A18
sub_8095A18: @ 8095A18
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80929DC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095A18
thumb_func_start sub_8095A3C
sub_8095A3C: @ 8095A3C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80929DC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095A3C
thumb_func_start sub_8095A60
sub_8095A60: @ 8095A60
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80929EC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095A60
thumb_func_start sub_8095A84
sub_8095A84: @ 8095A84
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80929EC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095A84
thumb_func_start sub_8095AA8
sub_8095AA8: @ 8095AA8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80929EC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095AA8
thumb_func_start sub_8095ACC
sub_8095ACC: @ 8095ACC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80929EC
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl npc_set_direction_and_anim__an_proceed
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095ACC
thumb_func_start sub_8095AF0
sub_8095AF0: @ 8095AF0
push {r4,lr}
adds r4, r1, 0
adds r0, r4, 0
bl sub_8097750
adds r4, 0x2C
ldrb r1, [r4]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r4]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8095AF0
thumb_func_start sub_8095B0C
sub_8095B0C: @ 8095B0C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r0, r5, 0
bl sub_8097758
lsls r0, 24
cmp r0, 0
bne _08095B22
movs r0, 0
b _08095B3E
_08095B22:
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
_08095B3E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095B0C
thumb_func_start sub_8095B44
sub_8095B44: @ 8095B44
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_8095AF0
movs r0, 0x1
strh r0, [r4, 0x32]
adds r0, r5, 0
adds r1, r4, 0
bl sub_8095B64
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095B44
thumb_func_start sub_8095B64
sub_8095B64: @ 8095B64
push {r4,lr}
adds r4, r1, 0
bl sub_8095B0C
lsls r0, 24
cmp r0, 0
bne _08095B76
movs r0, 0
b _08095B7C
_08095B76:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08095B7C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095B64
thumb_func_start sub_8095B84
sub_8095B84: @ 8095B84
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_8093FC4
adds r0, r4, 0
bl sub_80929BC
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_8095B84
thumb_func_start sub_8095BC8
sub_8095BC8: @ 8095BC8
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095BF4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095BC8
thumb_func_start sub_8095BF4
sub_8095BF4: @ 8095BF4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095C08
movs r0, 0
b _08095C18
_08095C08:
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
_08095C18:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095BF4
thumb_func_start sub_8095C20
sub_8095C20: @ 8095C20
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095C4C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095C20
thumb_func_start sub_8095C4C
sub_8095C4C: @ 8095C4C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095C60
movs r0, 0
b _08095C70
_08095C60:
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
_08095C70:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095C4C
thumb_func_start sub_8095C78
sub_8095C78: @ 8095C78
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095CA4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095C78
thumb_func_start sub_8095CA4
sub_8095CA4: @ 8095CA4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095CB8
movs r0, 0
b _08095CC8
_08095CB8:
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
_08095CC8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095CA4
thumb_func_start sub_8095CD0
sub_8095CD0: @ 8095CD0
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095CFC
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095CD0
thumb_func_start sub_8095CFC
sub_8095CFC: @ 8095CFC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095D10
movs r0, 0
b _08095D20
_08095D10:
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
_08095D20:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095CFC
thumb_func_start sub_8095D28
sub_8095D28: @ 8095D28
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095D54
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095D28
thumb_func_start sub_8095D54
sub_8095D54: @ 8095D54
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095D68
movs r0, 0
b _08095D78
_08095D68:
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
_08095D78:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095D54
thumb_func_start sub_8095D80
sub_8095D80: @ 8095D80
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095DAC
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095D80
thumb_func_start sub_8095DAC
sub_8095DAC: @ 8095DAC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095DC0
movs r0, 0
b _08095DD0
_08095DC0:
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
_08095DD0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095DAC
thumb_func_start sub_8095DD8
sub_8095DD8: @ 8095DD8
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095E04
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095DD8
thumb_func_start sub_8095E04
sub_8095E04: @ 8095E04
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095E18
movs r0, 0
b _08095E28
_08095E18:
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
_08095E28:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095E04
thumb_func_start sub_8095E30
sub_8095E30: @ 8095E30
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095E5C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095E30
thumb_func_start sub_8095E5C
sub_8095E5C: @ 8095E5C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095E70
movs r0, 0
b _08095E80
_08095E70:
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
_08095E80:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095E5C
thumb_func_start sub_8095E88
sub_8095E88: @ 8095E88
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095EB4
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095E88
thumb_func_start sub_8095EB4
sub_8095EB4: @ 8095EB4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095EC8
movs r0, 0
b _08095ED8
_08095EC8:
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
_08095ED8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095EB4
thumb_func_start sub_8095EE0
sub_8095EE0: @ 8095EE0
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095F0C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095EE0
thumb_func_start sub_8095F0C
sub_8095F0C: @ 8095F0C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095F20
movs r0, 0
b _08095F30
_08095F20:
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
_08095F30:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095F0C
thumb_func_start sub_8095F38
sub_8095F38: @ 8095F38
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095F64
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095F38
thumb_func_start sub_8095F64
sub_8095F64: @ 8095F64
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095F78
movs r0, 0
b _08095F88
_08095F78:
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
_08095F88:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095F64
thumb_func_start sub_8095F90
sub_8095F90: @ 8095F90
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_8095B84
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095FBC
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095F90
thumb_func_start sub_8095FBC
sub_8095FBC: @ 8095FBC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_80941B0
lsls r0, 24
cmp r0, 0
bne _08095FD0
movs r0, 0
b _08095FE0
_08095FD0:
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
_08095FE0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095FBC
thumb_func_start sub_8095FE8
sub_8095FE8: @ 8095FE8
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x1
bl sub_80929FC
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095FE8
thumb_func_start sub_8096020
sub_8096020: @ 8096020
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x2
bl sub_80929FC
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096020
thumb_func_start sub_8096058
sub_8096058: @ 8096058
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x3
bl sub_80929FC
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096058
thumb_func_start sub_8096090
sub_8096090: @ 8096090
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x4
bl sub_80929FC
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_8094554
adds r0, r4, 0
adds r1, r5, 0
bl sub_809459C
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096090
thumb_func_start sub_80960C8
sub_80960C8: @ 80960C8
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 npc_apply_direction
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80929BC
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_80960C8
thumb_func_start sub_8096100
sub_8096100: @ 8096100
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_80960C8
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096120
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096100
thumb_func_start sub_8096120
sub_8096120: @ 8096120
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08096132
movs r0, 0
b _08096138
_08096132:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096138:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096120
thumb_func_start sub_8096140
sub_8096140: @ 8096140
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_80960C8
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096160
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096140
thumb_func_start sub_8096160
sub_8096160: @ 8096160
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08096172
movs r0, 0
b _08096178
_08096172:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096178:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096160
thumb_func_start sub_8096180
sub_8096180: @ 8096180
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_80960C8
adds r0, r4, 0
adds r1, r5, 0
bl sub_80961A0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096180
thumb_func_start sub_80961A0
sub_80961A0: @ 80961A0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080961B2
movs r0, 0
b _080961B8
_080961B2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080961B8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80961A0
thumb_func_start sub_80961C0
sub_80961C0: @ 80961C0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_80960C8
adds r0, r4, 0
adds r1, r5, 0
bl sub_80961E0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80961C0
thumb_func_start sub_80961E0
sub_80961E0: @ 80961E0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080961F2
movs r0, 0
b _080961F8
_080961F2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080961F8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80961E0
thumb_func_start sub_8096200
sub_8096200: @ 8096200
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 npc_apply_direction
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80929FC
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_8096200
thumb_func_start sub_8096230
sub_8096230: @ 8096230
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8096200
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096250
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096230
thumb_func_start sub_8096250
sub_8096250: @ 8096250
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08096262
movs r0, 0
b _08096268
_08096262:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096268:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096250
thumb_func_start sub_8096270
sub_8096270: @ 8096270
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_8096200
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096290
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096270
thumb_func_start sub_8096290
sub_8096290: @ 8096290
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080962A2
movs r0, 0
b _080962A8
_080962A2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080962A8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096290
thumb_func_start sub_80962B0
sub_80962B0: @ 80962B0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8096200
adds r0, r4, 0
adds r1, r5, 0
bl sub_80962D0
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80962B0
thumb_func_start sub_80962D0
sub_80962D0: @ 80962D0
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080962E2
movs r0, 0
b _080962E8
_080962E2:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080962E8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80962D0
thumb_func_start sub_80962F0
sub_80962F0: @ 80962F0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_8096200
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096310
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80962F0
thumb_func_start sub_8096310
sub_8096310: @ 8096310
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _08096322
movs r0, 0
b _08096328
_08096322:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096328:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096310
thumb_func_start sub_8096330
sub_8096330: @ 8096330
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 npc_apply_direction
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
bl sub_80929DC
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_8096330
thumb_func_start sub_8096368
sub_8096368: @ 8096368
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8096330
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096388
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096368
thumb_func_start sub_8096388
sub_8096388: @ 8096388
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0809639A
movs r0, 0
b _080963A0
_0809639A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080963A0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096388
thumb_func_start sub_80963A8
sub_80963A8: @ 80963A8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x2
movs r3, 0x1
bl sub_8096330
adds r0, r4, 0
adds r1, r5, 0
bl sub_80963C8
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80963A8
thumb_func_start sub_80963C8
sub_80963C8: @ 80963C8
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _080963DA
movs r0, 0
b _080963E0
_080963DA:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_080963E0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80963C8
thumb_func_start sub_80963E8
sub_80963E8: @ 80963E8
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8096330
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096408
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80963E8
thumb_func_start sub_8096408
sub_8096408: @ 8096408
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0809641A
movs r0, 0
b _08096420
_0809641A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096420:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096408
thumb_func_start sub_8096428
sub_8096428: @ 8096428
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
movs r3, 0x1
bl sub_8096330
adds r0, r4, 0
adds r1, r5, 0
bl sub_8096448
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096428
thumb_func_start sub_8096448
sub_8096448: @ 8096448
push {r4,lr}
adds r4, r1, 0
bl npc_obj_ministep_stop_on_arrival
lsls r0, 24
cmp r0, 0
bne _0809645A
movs r0, 0
b _08096460
_0809645A:
movs r0, 0x2
strh r0, [r4, 0x32]
movs r0, 0x1
_08096460:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096448
thumb_func_start sub_8096468
sub_8096468: @ 8096468
push {r4,lr}
adds r4, r1, 0
bl sub_8097FA4
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096468
thumb_func_start sub_809647C
sub_809647C: @ 809647C
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1B]
bl sub_8098044
movs r0, 0
strh r0, [r4, 0x26]
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809647C
thumb_func_start sub_8096494
sub_8096494: @ 8096494
push {r4,lr}
adds r2, r0, 0
adds r4, r1, 0
movs r1, 0x26
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080964A6
movs r0, 0
b _080964B0
_080964A6:
ldrb r0, [r2, 0x1B]
bl sub_8098044
movs r0, 0x1
strh r0, [r4, 0x32]
_080964B0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8096494
thumb_func_start sub_80964B8
sub_80964B8: @ 80964B8
movs r0, 0x1
bx lr
thumb_func_end sub_80964B8
thumb_func_start sub_80964BC
@ bool8 sub_80964BC(struct npc_state *fieldObject, struct obj *object)
sub_80964BC: @ 80964BC
adds r1, 0x2C
ldrb r0, [r1]
movs r2, 0x40
orrs r0, r2
strb r0, [r1]
movs r0, 0x1
bx lr
thumb_func_end sub_80964BC
thumb_func_start npc_obj_transfer_image_anim_pause_flag
@ void npc_obj_transfer_image_anim_pause_flag(struct npc_state *fieldObject, struct obj *object)
npc_obj_transfer_image_anim_pause_flag: @ 80964CC
push {lr}
ldrb r0, [r0, 0x1]
lsls r0, 29
cmp r0, 0
bge _080964E2
adds r0, r1, 0
adds r0, 0x2C
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
_080964E2:
pop {r0}
bx r0
thumb_func_end npc_obj_transfer_image_anim_pause_flag
thumb_func_start sub_80964E8
@ void sub_80964E8(struct npc_state *fieldObject, struct obj *object)
sub_80964E8: @ 80964E8
push {r4,lr}
adds r4, r0, 0
ldrb r3, [r4, 0x1]
lsls r0, r3, 28
cmp r0, 0
bge _08096510
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]
_08096510:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80964E8
thumb_func_start sub_8096518
@ void sub_8096518(struct npc_state *fieldObject, struct obj *object)
sub_8096518: @ 8096518
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_8096530
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_8096518
thumb_func_start sub_8096530
sub_8096530: @ 8096530
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r5, 0x1]
movs r0, 0x41
negs r0, r0
ands r0, r1
strb r0, [r5, 0x1]
ldrb r0, [r5, 0x5]
bl GetFieldObjectGraphicsInfo
adds r6, r0, 0
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08096594
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, =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, =gSpriteCoordOffsetY
adds r0, r1
ldrh r2, [r2]
adds r0, r2
b _080965BC
.pool
_08096594:
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
_080965BC:
lsls r0, 16
lsrs r2, r0, 16
ldrh r0, [r6, 0x8]
adds r0, r3
lsls r0, 16
lsrs r1, r0, 16
ldrh r0, [r6, 0xA]
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
lsls r0, r3, 16
asrs r0, 16
cmp r0, 0xFF
bgt _080965E4
lsls r0, r1, 16
asrs r0, 16
movs r1, 0x10
negs r1, r1
cmp r0, r1
bge _080965EC
_080965E4:
ldrb r0, [r5, 0x1]
movs r1, 0x40
orrs r0, r1
strb r0, [r5, 0x1]
_080965EC:
lsls r0, r2, 16
asrs r0, 16
cmp r0, 0xAF
bgt _08096600
lsls r0, r4, 16
asrs r0, 16
movs r1, 0x10
negs r1, r1
cmp r0, r1
bge _08096608
_08096600:
ldrb r0, [r5, 0x1]
movs r1, 0x40
orrs r0, r1
strb r0, [r5, 0x1]
_08096608:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8096530
thumb_func_start npc_update_obj_anim_flag
@ void npc_update_obj_anim_flag(struct npc_state *fieldObject, struct obj *object)
npc_update_obj_anim_flag: @ 8096610
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 _08096632
movs r1, 0x4
adds r0, r3, 0
orrs r0, r1
strb r0, [r2]
_08096632:
pop {r0}
bx r0
thumb_func_end npc_update_obj_anim_flag
.align 2, 0 @ Don't pad with nop.