summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-05-27 17:26:03 -0400
committerGitHub <noreply@github.com>2017-05-27 17:26:03 -0400
commitfe13cf593a7c14480de940e413177586cc8eae2e (patch)
tree2d61979deee63bfc47cc450abb931da8f1d21b5f
parent06218139dc0b7e015850ac9dd5d8658023339a0c (diff)
parent21efe53b6805a0dcc5dcba7d1f78e9a7e7bd93c4 (diff)
Merge pull request #308 from PikalaxALT/master
Field Map Objects
-rw-r--r--asm/field_map_obj.s5978
-rwxr-xr-x[-rw-r--r--]include/asm.inc.h1
-rwxr-xr-xinclude/field_effect_helpers.h11
-rwxr-xr-xinclude/field_map_obj.h3
-rw-r--r--include/field_map_obj_helpers.h6
-rwxr-xr-x[-rw-r--r--]include/field_player_avatar.h2
-rwxr-xr-x[-rw-r--r--]include/trainer_see.h2
-rw-r--r--ld_script.txt3
-rw-r--r--[-rwxr-xr-x]src/field_map_obj.c2360
-rw-r--r--src/trainer_see.c4
10 files changed, 2367 insertions, 6003 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 6051dc6e6..c8c402217 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -6,138 +6,7 @@
.text
- thumb_func_start sub_805F2FC
-sub_805F2FC: @ 805F2FC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F318 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F31C @ =sub_805F320
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F318: .4byte gMapObjects
-_0805F31C: .4byte sub_805F320
- thumb_func_end sub_805F2FC
-
- thumb_func_start sub_805F320
-sub_805F320: @ 805F320
- push {r4,lr}
- ldr r3, _0805F33C @ =gUnknown_08375588
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F33C: .4byte gUnknown_08375588
- thumb_func_end sub_805F320
-
- thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
-mss_npc_reset_oampriv3_1_unk2_unk3: @ 805F340
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- adds r4, 0x21
- ldrb r0, [r4]
- cmp r0, 0
- bne _0805F358
- bl player_get_direction_lower_nybble
- strb r0, [r4]
-_0805F358:
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3
-
- thumb_func_start sub_805F364
-sub_805F364: @ 805F364
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, _0805F388 @ =gMapObjects
- ldr r3, _0805F38C @ =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _0805F384
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _0805F390
-_0805F384:
- movs r0, 0
- b _0805F3B8
- .align 2, 0
-_0805F388: .4byte gMapObjects
-_0805F38C: .4byte gPlayerAvatar
-_0805F390:
- ldr r5, _0805F3C0 @ =gUnknown_08375594
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- movs r3, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0805F3B8:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F3C0: .4byte gUnknown_08375594
- thumb_func_end sub_805F364
-
- thumb_func_start sub_805F3C4
-sub_805F3C4: @ 805F3C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805F3E2
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805F3E2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805F3C4
-
+.ifndef NONMATCHING
thumb_func_start sub_805F3EC
sub_805F3EC: @ 805F3EC
movs r0, 0
@@ -268,6 +137,7 @@ _0805F4D2:
.align 2, 0
_0805F4EC: .4byte gUnknown_0836DC09
thumb_func_end sub_805F438
+.endif
thumb_func_start sub_805F4F0
sub_805F4F0: @ 805F4F0
@@ -756,5847 +626,3 @@ _0805F8C0:
.align 2, 0
_0805F8DC: .4byte gUnknown_0836DC09
thumb_func_end oac_hopping
-
- thumb_func_start sub_805F8E0
-sub_805F8E0: @ 805F8E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F8FC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F900 @ =sub_805F904
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F8FC: .4byte gMapObjects
-_0805F900: .4byte sub_805F904
- thumb_func_end sub_805F8E0
-
- thumb_func_start sub_805F904
-sub_805F904: @ 805F904
- push {r4,lr}
- ldr r3, _0805F920 @ =gUnknown_083755C0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F920: .4byte gUnknown_083755C0
- thumb_func_end sub_805F904
-
- thumb_func_start mss_08062EA4
-mss_08062EA4: @ 805F924
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, _0805F948 @ =gMapObjects
- ldr r3, _0805F94C @ =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _0805F944
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _0805F950
-_0805F944:
- movs r0, 0
- b _0805F978
- .align 2, 0
-_0805F948: .4byte gMapObjects
-_0805F94C: .4byte gPlayerAvatar
-_0805F950:
- ldr r5, _0805F980 @ =gUnknown_08375594
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0805F978:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F980: .4byte gUnknown_08375594
-_0805F984: .4byte MetatileBehavior_IsPokeGrass
- thumb_func_end mss_08062EA4
-
- thumb_func_start FieldObjectCB_TreeDisguise
-FieldObjectCB_TreeDisguise: @ 805F988
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805F9EC @ =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805F9B0
- cmp r0, 0x1
- bne _0805F9D0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805F9D0
-_0805F9B0:
- ldr r1, _0805F9F0 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1C
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_0805F9D0:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805F9EC @ =gMapObjects
- adds r0, r1
- ldr r2, _0805F9F4 @ =sub_805F9F8
- adds r1, r5, 0
- bl meta_step
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805F9EC: .4byte gMapObjects
-_0805F9F0: .4byte gUnknown_0202FF84
-_0805F9F4: .4byte sub_805F9F8
- thumb_func_end FieldObjectCB_TreeDisguise
-
- thumb_func_start sub_805F9F8
-sub_805F9F8: @ 805F9F8
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805F9F8
-
- thumb_func_start FieldObjectCB_MountainDisguise
-FieldObjectCB_MountainDisguise: @ 805FA04
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805FA68 @ =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805FA2C
- cmp r0, 0x1
- bne _0805FA4C
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805FA4C
-_0805FA2C:
- ldr r1, _0805FA6C @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1D
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_0805FA4C:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805FA68 @ =gMapObjects
- adds r0, r1
- ldr r2, _0805FA70 @ =sub_805F9F8
- adds r1, r5, 0
- bl meta_step
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805FA68: .4byte gMapObjects
-_0805FA6C: .4byte gUnknown_0202FF84
-_0805FA70: .4byte sub_805F9F8
- thumb_func_end FieldObjectCB_MountainDisguise
-
- thumb_func_start FieldObjectCB_Hidden1
-FieldObjectCB_Hidden1: @ 805FA74
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- ldr r4, _0805FAD0 @ =gMapObjects
- cmp r0, 0
- bne _0805FAB4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x3]
- adds r2, r3, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r3, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
-_0805FAB4:
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r2, _0805FAD4 @ =sub_805FAD8
- adds r1, r3, 0
- bl meta_step
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805FAD0: .4byte gMapObjects
-_0805FAD4: .4byte sub_805FAD8
- thumb_func_end FieldObjectCB_Hidden1
-
- thumb_func_start sub_805FAD8
-sub_805FAD8: @ 805FAD8
- push {r4,lr}
- ldr r3, _0805FAF4 @ =gUnknown_083755CC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FAF4: .4byte gUnknown_083755CC
- thumb_func_end sub_805FAD8
-
- thumb_func_start sub_805FAF8
-sub_805FAF8: @ 805FAF8
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805FAF8
-
- thumb_func_start sub_805FB04
-sub_805FB04: @ 805FB04
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805FB16
- movs r0, 0
- strh r0, [r4, 0x30]
-_0805FB16:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805FB04
-
- thumb_func_start sub_805FB20
-sub_805FB20: @ 805FB20
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FB3C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FB40 @ =sub_805FB44
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FB3C: .4byte gMapObjects
-_0805FB40: .4byte sub_805FB44
- thumb_func_end sub_805FB20
-
- thumb_func_start sub_805FB44
-sub_805FB44: @ 805FB44
- push {r4,lr}
- ldr r3, _0805FB60 @ =gUnknown_083755D0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FB60: .4byte gUnknown_083755D0
- thumb_func_end sub_805FB44
-
- thumb_func_start sub_805FB64
-sub_805FB64: @ 805FB64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FB64
-
- thumb_func_start sub_805FB90
-sub_805FB90: @ 805FB90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FBAC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FBB0 @ =sub_805FBB4
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FBAC: .4byte gMapObjects
-_0805FBB0: .4byte sub_805FBB4
- thumb_func_end sub_805FB90
-
- thumb_func_start sub_805FBB4
-sub_805FBB4: @ 805FBB4
- push {r4,lr}
- ldr r3, _0805FBD0 @ =gUnknown_083755D8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FBD0: .4byte gUnknown_083755D8
- thumb_func_end sub_805FBB4
-
- thumb_func_start sub_805FBD4
-sub_805FBD4: @ 805FBD4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay8AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FBD4
-
- thumb_func_start sub_805FC00
-sub_805FC00: @ 805FC00
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FC1C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FC20 @ =sub_805FC24
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FC1C: .4byte gMapObjects
-_0805FC20: .4byte sub_805FC24
- thumb_func_end sub_805FC00
-
- thumb_func_start sub_805FC24
-sub_805FC24: @ 805FC24
- push {r4,lr}
- ldr r3, _0805FC40 @ =gUnknown_083755E0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FC40: .4byte gUnknown_083755E0
- thumb_func_end sub_805FC24
-
- thumb_func_start sub_805FC44
-sub_805FC44: @ 805FC44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FC44
-
- thumb_func_start sub_805FC70
-sub_805FC70: @ 805FC70
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FC8C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FC90 @ =sub_805FC94
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FC8C: .4byte gMapObjects
-_0805FC90: .4byte sub_805FC94
- thumb_func_end sub_805FC70
-
- thumb_func_start sub_805FC94
-sub_805FC94: @ 805FC94
- push {r4,lr}
- ldr r3, _0805FCB0 @ =gUnknown_083755E8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FCB0: .4byte gUnknown_083755E8
- thumb_func_end sub_805FC94
-
- thumb_func_start sub_805FCB4
-sub_805FCB4: @ 805FCB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FCB4
-
- thumb_func_start sub_805FCE8
-sub_805FCE8: @ 805FCE8
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0805FCFA
- movs r0, 0
- b _0805FD00
-_0805FCFA:
- movs r0, 0x2
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805FD00:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805FCE8
-
- thumb_func_start sub_805FD08
-sub_805FD08: @ 805FD08
- ldrb r2, [r0]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0
- bx lr
- .align 2, 0
- thumb_func_end sub_805FD08
-
- .section .text_805fd18
-
- thumb_func_start sub_806113C
-sub_806113C: @ 806113C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x30]
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080611F4 @ =gUnknown_08375A34
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- add r5, sp, 0xC
- movs r0, 0
- strh r0, [r5]
- mov r6, sp
- adds r6, 0xE
- strh r0, [r6]
- adds r0, r7, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- mov r1, r8
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- movs r1, 0
- ldrsh r3, [r0, r1]
- str r3, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8060320
- ldrh r1, [r5]
- ldrh r0, [r7, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6]
- ldrh r0, [r7, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r7, 0
- bl npc_coords_shift
- mov r0, r10
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_80646E4
- movs r0, 0x1
- mov r1, r10
- strh r0, [r1, 0x32]
- movs r0, 0x2C
- add r10, r0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r7]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080611F4: .4byte gUnknown_08375A34
- thumb_func_end sub_806113C
-
- thumb_func_start maybe_shadow_1
-maybe_shadow_1: @ 80611F8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r4, 0
- bl sub_806113C
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- adds r0, r4, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end maybe_shadow_1
-
- thumb_func_start sub_806123C
-sub_806123C: @ 806123C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r1, _080612C8 @ =gUnknown_08375A3A
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- adds r0, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bne _080612CC
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsls r0, 1
- add r0, sp
- adds r0, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080612CC
- add r4, sp, 0xC
- movs r0, 0
- strh r0, [r4]
- mov r5, sp
- adds r5, 0xE
- strh r0, [r5]
- ldrb r0, [r6, 0x18]
- lsrs r0, 4
- movs r2, 0x36
- ldrsh r1, [r7, r2]
- lsls r1, 1
- add r1, sp
- adds r1, 0x4
- movs r2, 0
- ldrsh r3, [r1, r2]
- str r3, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8060320
- ldrh r1, [r4]
- ldrh r0, [r6, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r5]
- ldrh r0, [r6, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r6, 0
- bl npc_coords_shift
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r6]
- b _080612F0
- .align 2, 0
-_080612C8: .4byte gUnknown_08375A3A
-_080612CC:
- mov r1, r8
- cmp r1, 0xFF
- bne _080612F0
- adds r0, r6, 0
- bl npc_coords_shift_still
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
-_080612F0:
- mov r0, r8
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806123C
-
- thumb_func_start sub_8061300
-sub_8061300: @ 8061300
- push {lr}
- ldr r2, _08061310 @ =sub_8064704
- bl sub_806123C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08061310: .4byte sub_8064704
- thumb_func_end sub_8061300
-
- thumb_func_start sub_8061314
-sub_8061314: @ 8061314
- push {lr}
- ldr r2, _08061324 @ =sub_806478C
- bl sub_806123C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08061324: .4byte sub_806478C
- thumb_func_end sub_8061314
-
- thumb_func_start sub_8061328
-sub_8061328: @ 8061328
- push {lr}
- bl sub_8061300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806133A
- movs r0, 0
- b _0806133C
-_0806133A:
- movs r0, 0x1
-_0806133C:
- pop {r1}
- bx r1
- thumb_func_end sub_8061328
-
- thumb_func_start sub_8061340
-sub_8061340: @ 8061340
- push {lr}
- bl sub_8061314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08061352
- movs r0, 0
- b _08061354
-_08061352:
- movs r0, 0x1
-_08061354:
- pop {r1}
- bx r1
- thumb_func_end sub_8061340
-
- thumb_func_start sub_8061358
-sub_8061358: @ 8061358
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08061372
- cmp r0, 0xFF
- bne _0806139E
- movs r0, 0x1
- b _080613A0
-_08061372:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE64
-_0806139E:
- movs r0, 0
-_080613A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061358
-
- thumb_func_start sub_80613A8
-sub_80613A8: @ 80613A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80613D4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80613A8
-
- thumb_func_start sub_80613D4
-sub_80613D4: @ 80613D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080613E8
- movs r0, 0
- b _080613F8
-_080613E8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080613F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80613D4
-
- thumb_func_start sub_8061400
-sub_8061400: @ 8061400
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806142C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061400
-
- thumb_func_start sub_806142C
-sub_806142C: @ 806142C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061440
- movs r0, 0
- b _08061450
-_08061440:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061450:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806142C
-
- thumb_func_start sub_8061458
-sub_8061458: @ 8061458
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061484
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061458
-
- thumb_func_start sub_8061484
-sub_8061484: @ 8061484
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061498
- movs r0, 0
- b _080614A8
-_08061498:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080614A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061484
-
- thumb_func_start sub_80614B0
-sub_80614B0: @ 80614B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80614DC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614B0
-
- thumb_func_start sub_80614DC
-sub_80614DC: @ 80614DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080614F0
- movs r0, 0
- b _08061500
-_080614F0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061500:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614DC
-
- thumb_func_start sub_8061508
-sub_8061508: @ 8061508
- movs r2, 0x1
- strh r2, [r0, 0x32]
- strh r1, [r0, 0x34]
- bx lr
- thumb_func_end sub_8061508
-
- thumb_func_start sub_8061510
-sub_8061510: @ 8061510
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _08061522
- movs r0, 0
- b _08061528
-_08061522:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- movs r0, 0x1
-_08061528:
- pop {r1}
- bx r1
- thumb_func_end sub_8061510
-
- thumb_func_start sub_806152C
-sub_806152C: @ 806152C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806152C
-
- thumb_func_start sub_806154C
-sub_806154C: @ 806154C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806154C
-
- thumb_func_start sub_806156C
-sub_806156C: @ 806156C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806156C
-
- thumb_func_start sub_806158C
-sub_806158C: @ 806158C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806158C
-
- thumb_func_start sub_80615AC
-sub_80615AC: @ 80615AC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80615AC
-
- thumb_func_start sub_80615CC
-sub_80615CC: @ 80615CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80615EC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80615CC
-
- thumb_func_start sub_80615EC
-sub_80615EC: @ 80615EC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080615FE
- movs r0, 0
- b _08061604
-_080615FE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061604:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80615EC
-
- thumb_func_start sub_806160C
-sub_806160C: @ 806160C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806162C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806160C
-
- thumb_func_start sub_806162C
-sub_806162C: @ 806162C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806163E
- movs r0, 0
- b _08061644
-_0806163E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061644:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806162C
-
- thumb_func_start sub_806164C
-sub_806164C: @ 806164C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806166C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806164C
-
- thumb_func_start sub_806166C
-sub_806166C: @ 806166C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806167E
- movs r0, 0
- b _08061684
-_0806167E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061684:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806166C
-
- thumb_func_start sub_806168C
-sub_806168C: @ 806168C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80616AC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806168C
-
- thumb_func_start sub_80616AC
-sub_80616AC: @ 80616AC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080616BE
- movs r0, 0
- b _080616C4
-_080616BE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080616C4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80616AC
-
- thumb_func_start sub_80616CC
-sub_80616CC: @ 80616CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r4, r3, 0
- ldr r5, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- bl FieldObjectSetDirection
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_805FE28
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80616CC
-
- thumb_func_start sub_8061714
-sub_8061714: @ 8061714
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _08061726
- movs r0, 0
- b _08061738
-_08061726:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08061738:
- pop {r1}
- bx r1
- thumb_func_end sub_8061714
-
- thumb_func_start sub_806173C
-sub_806173C: @ 806173C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08061766
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08061766:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806173C
-
- thumb_func_start sub_8061778
-sub_8061778: @ 8061778
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061778
-
- thumb_func_start sub_80617B0
-sub_80617B0: @ 80617B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80617B0
-
- thumb_func_start sub_80617E8
-sub_80617E8: @ 80617E8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80617E8
-
- thumb_func_start sub_8061820
-sub_8061820: @ 8061820
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061820
-
- thumb_func_start sub_8061858
-sub_8061858: @ 8061858
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061858
-
- thumb_func_start sub_8061890
-sub_8061890: @ 8061890
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061890
-
- thumb_func_start sub_80618C8
-sub_80618C8: @ 80618C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80618C8
-
- thumb_func_start sub_8061900
-sub_8061900: @ 8061900
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061900
-
- thumb_func_start sub_8061938
-sub_8061938: @ 8061938
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061938
-
- thumb_func_start sub_8061970
-sub_8061970: @ 8061970
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061970
-
- thumb_func_start sub_80619A8
-sub_80619A8: @ 80619A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80619A8
-
- thumb_func_start sub_80619E0
-sub_80619E0: @ 80619E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80619E0
-
- thumb_func_start sub_8061A18
-sub_8061A18: @ 8061A18
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A18
-
- thumb_func_start sub_8061A50
-sub_8061A50: @ 8061A50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A50
-
- thumb_func_start sub_8061A88
-sub_8061A88: @ 8061A88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A88
-
- thumb_func_start sub_8061AC0
-sub_8061AC0: @ 8061AC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061AC0
-
- thumb_func_start sub_8061AF8
-sub_8061AF8: @ 8061AF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061AF8
-
- thumb_func_start sub_8061B18
-sub_8061B18: @ 8061B18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061B2A
- movs r0, 0
- b _08061B30
-_08061B2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061B30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B18
-
- thumb_func_start sub_8061B38
-sub_8061B38: @ 8061B38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B38
-
- thumb_func_start sub_8061B58
-sub_8061B58: @ 8061B58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061B6A
- movs r0, 0
- b _08061B70
-_08061B6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061B70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B58
-
- thumb_func_start sub_8061B78
-sub_8061B78: @ 8061B78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B78
-
- thumb_func_start sub_8061B98
-sub_8061B98: @ 8061B98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061BAA
- movs r0, 0
- b _08061BB0
-_08061BAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061BB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B98
-
- thumb_func_start sub_8061BB8
-sub_8061BB8: @ 8061BB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061BD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BB8
-
- thumb_func_start sub_8061BD8
-sub_8061BD8: @ 8061BD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061BEA
- movs r0, 0
- b _08061BF0
-_08061BEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061BF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BD8
-
- thumb_func_start sub_8061BF8
-sub_8061BF8: @ 8061BF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BF8
-
- thumb_func_start sub_8061C18
-sub_8061C18: @ 8061C18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061C2A
- movs r0, 0
- b _08061C30
-_08061C2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061C30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C18
-
- thumb_func_start sub_8061C38
-sub_8061C38: @ 8061C38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C38
-
- thumb_func_start sub_8061C58
-sub_8061C58: @ 8061C58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061C6A
- movs r0, 0
- b _08061C70
-_08061C6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061C70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C58
-
- thumb_func_start sub_8061C78
-sub_8061C78: @ 8061C78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C78
-
- thumb_func_start sub_8061C98
-sub_8061C98: @ 8061C98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061CAA
- movs r0, 0
- b _08061CB0
-_08061CAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061CB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C98
-
- thumb_func_start sub_8061CB8
-sub_8061CB8: @ 8061CB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061CD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CB8
-
- thumb_func_start sub_8061CD8
-sub_8061CD8: @ 8061CD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061CEA
- movs r0, 0
- b _08061CF0
-_08061CEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061CF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CD8
-
- thumb_func_start sub_8061CF8
-sub_8061CF8: @ 8061CF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CF8
-
- thumb_func_start sub_8061D18
-sub_8061D18: @ 8061D18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061D2A
- movs r0, 0
- b _08061D30
-_08061D2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061D30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D18
-
- thumb_func_start sub_8061D38
-sub_8061D38: @ 8061D38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D38
-
- thumb_func_start sub_8061D58
-sub_8061D58: @ 8061D58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061D6A
- movs r0, 0
- b _08061D70
-_08061D6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061D70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D58
-
- thumb_func_start sub_8061D78
-sub_8061D78: @ 8061D78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D78
-
- thumb_func_start sub_8061D98
-sub_8061D98: @ 8061D98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061DAA
- movs r0, 0
- b _08061DB0
-_08061DAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061DB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D98
-
- thumb_func_start sub_8061DB8
-sub_8061DB8: @ 8061DB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061DD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061DB8
-
- thumb_func_start sub_8061DD8
-sub_8061DD8: @ 8061DD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061DEA
- movs r0, 0
- b _08061DF0
-_08061DEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061DF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061DD8
-
- thumb_func_start do_run_south_anim
-do_run_south_anim: @ 8061DF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_south_anim
-
- thumb_func_start sub_8061E18
-sub_8061E18: @ 8061E18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061E2A
- movs r0, 0
- b _08061E30
-_08061E2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061E30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E18
-
- thumb_func_start do_run_north_anim
-do_run_north_anim: @ 8061E38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_north_anim
-
- thumb_func_start sub_8061E58
-sub_8061E58: @ 8061E58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061E6A
- movs r0, 0
- b _08061E70
-_08061E6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061E70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E58
-
- thumb_func_start do_run_west_anim
-do_run_west_anim: @ 8061E78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_west_anim
-
- thumb_func_start sub_8061E98
-sub_8061E98: @ 8061E98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061EAA
- movs r0, 0
- b _08061EB0
-_08061EAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061EB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E98
-
- thumb_func_start do_run_east_anim
-do_run_east_anim: @ 8061EB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061ED8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_east_anim
-
- thumb_func_start sub_8061ED8
-sub_8061ED8: @ 8061ED8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061EEA
- movs r0, 0
- b _08061EF0
-_08061EEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061EF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061ED8
-
- thumb_func_start npc_set_direction_and_anim__an_proceed
-npc_set_direction_and_anim__an_proceed: @ 8061EF8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r1, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl obj_anim_image_set_and_seek
- adds r0, r6, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_set_direction_and_anim__an_proceed
-
- thumb_func_start sub_8061F24
-sub_8061F24: @ 8061F24
- push {lr}
- ldrb r2, [r0, 0x18]
- lsrs r2, 4
- adds r3, r1, 0
- adds r3, 0x2A
- ldrb r3, [r3]
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8061F24
-
- thumb_func_start sub_8061F3C
-sub_8061F3C: @ 8061F3C
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- bne _08061F50
- movs r0, 0
- b _08061F56
-_08061F50:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061F56:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061F3C
-
- thumb_func_start sub_8061F5C
-sub_8061F5C: @ 8061F5C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_806113C
- adds r0, r4, 0
- bl sub_805FD88
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8061F5C
-
- thumb_func_start sub_8061F90
-sub_8061F90: @ 8061F90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061FB0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061F90
-
- thumb_func_start sub_8061FB0
-sub_8061FB0: @ 8061FB0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _08061FC4
- movs r0, 0
- b _08061FD2
-_08061FC4:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08061FD2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FB0
-
- thumb_func_start sub_8061FD8
-sub_8061FD8: @ 8061FD8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061FF8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FD8
-
- thumb_func_start sub_8061FF8
-sub_8061FF8: @ 8061FF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _0806200C
- movs r0, 0
- b _0806201A
-_0806200C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_0806201A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FF8
-
- thumb_func_start sub_8062020
-sub_8062020: @ 8062020
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062040
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062020
-
- thumb_func_start sub_8062040
-sub_8062040: @ 8062040
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _08062054
- movs r0, 0
- b _08062062
-_08062054:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08062062:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062040
-
- thumb_func_start sub_8062068
-sub_8062068: @ 8062068
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062088
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062068
-
- thumb_func_start sub_8062088
-sub_8062088: @ 8062088
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _0806209C
- movs r0, 0
- b _080620AA
-_0806209C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_080620AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062088
-
- thumb_func_start sub_80620B0
-sub_80620B0: @ 80620B0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080620FA
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, _08062108 @ =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_805FE90
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_080620FA:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08062108: .4byte gMapObjects
- thumb_func_end sub_80620B0
-
- thumb_func_start sub_806210C
-sub_806210C: @ 806210C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0806215E
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, _0806216C @ =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_805FE90
- lsls r0, 24
- lsrs r0, 24
- bl GetOppositeDirection
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_0806215E:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806216C: .4byte gMapObjects
- thumb_func_end sub_806210C
-
- thumb_func_start sub_8062170
-sub_8062170: @ 8062170
- ldrb r2, [r0, 0x1]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062170
-
- thumb_func_start sub_8062180
-sub_8062180: @ 8062180
- ldrb r3, [r0, 0x1]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062180
-
- thumb_func_start sub_8062190
-sub_8062190: @ 8062190
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80621BC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062190
-
- thumb_func_start sub_80621BC
-sub_80621BC: @ 80621BC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080621D0
- movs r0, 0
- b _080621E0
-_080621D0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080621E0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80621BC
-
- thumb_func_start sub_80621E8
-sub_80621E8: @ 80621E8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062214
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80621E8
-
- thumb_func_start sub_8062214
-sub_8062214: @ 8062214
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062228
- movs r0, 0
- b _08062238
-_08062228:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062238:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062214
-
- thumb_func_start sub_8062240
-sub_8062240: @ 8062240
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806226C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062240
-
- thumb_func_start sub_806226C
-sub_806226C: @ 806226C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062280
- movs r0, 0
- b _08062290
-_08062280:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062290:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806226C
-
- thumb_func_start sub_8062298
-sub_8062298: @ 8062298
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80622C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062298
-
- thumb_func_start sub_80622C4
-sub_80622C4: @ 80622C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080622D8
- movs r0, 0
- b _080622E8
-_080622D8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080622E8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80622C4
-
- thumb_func_start sub_80622F0
-sub_80622F0: @ 80622F0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806231C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80622F0
-
- thumb_func_start sub_806231C
-sub_806231C: @ 806231C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062330
- movs r0, 0
- b _08062340
-_08062330:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062340:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806231C
-
- thumb_func_start sub_8062348
-sub_8062348: @ 8062348
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062374
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062348
-
- thumb_func_start sub_8062374
-sub_8062374: @ 8062374
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062388
- movs r0, 0
- b _08062398
-_08062388:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062398:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062374
-
- thumb_func_start sub_80623A0
-sub_80623A0: @ 80623A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80623CC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623A0
-
- thumb_func_start sub_80623CC
-sub_80623CC: @ 80623CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080623E0
- movs r0, 0
- b _080623F0
-_080623E0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080623F0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623CC
-
- thumb_func_start sub_80623F8
-sub_80623F8: @ 80623F8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062424
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623F8
-
- thumb_func_start sub_8062424
-sub_8062424: @ 8062424
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062438
- movs r0, 0
- b _08062448
-_08062438:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062448:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062424
-
- thumb_func_start sub_8062450
-sub_8062450: @ 8062450
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806247C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062450
-
- thumb_func_start sub_806247C
-sub_806247C: @ 806247C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062490
- movs r0, 0
- b _080624A0
-_08062490:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080624A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806247C
-
- thumb_func_start sub_80624A8
-sub_80624A8: @ 80624A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80624D4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80624A8
-
- thumb_func_start sub_80624D4
-sub_80624D4: @ 80624D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _080624E8
- movs r0, 0
- b _080624F8
-_080624E8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080624F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80624D4
-
- thumb_func_start sub_8062500
-sub_8062500: @ 8062500
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806252C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062500
-
- thumb_func_start sub_806252C
-sub_806252C: @ 806252C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062540
- movs r0, 0
- b _08062550
-_08062540:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062550:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806252C
-
- thumb_func_start sub_8062558
-sub_8062558: @ 8062558
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062584
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062558
-
- thumb_func_start sub_8062584
-sub_8062584: @ 8062584
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062598
- movs r0, 0
- b _080625A8
-_08062598:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080625A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062584
-
- thumb_func_start sub_80625B0
-sub_80625B0: @ 80625B0
- push {lr}
- ldr r3, _080625C4 @ =gUnknown_0836DC09
- ldrb r2, [r0, 0x6]
- adds r2, r3
- ldrb r2, [r2]
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080625C4: .4byte gUnknown_0836DC09
- thumb_func_end sub_80625B0
-
- thumb_func_start sub_80625C8
-sub_80625C8: @ 80625C8
- push {lr}
- movs r2, 0x1
- movs r3, 0x14
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80625C8
-
- thumb_func_start sub_80625D8
-sub_80625D8: @ 80625D8
- ldrb r3, [r0, 0x3]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625D8
-
- thumb_func_start sub_80625E8
-sub_80625E8: @ 80625E8
- ldrb r2, [r0, 0x3]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625E8
-
- thumb_func_start sub_80625F8
-sub_80625F8: @ 80625F8
- ldrb r2, [r0, 0x1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625F8
-
- thumb_func_start sub_8062608
-sub_8062608: @ 8062608
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062608
-
- thumb_func_start sub_8062634
-sub_8062634: @ 8062634
- ldrb r2, [r0, 0x1]
- movs r3, 0x20
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062634
-
- thumb_func_start sub_8062644
-sub_8062644: @ 8062644
- ldrb r3, [r0, 0x1]
- movs r2, 0x21
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062644
-
- thumb_func_start do_exclamation_mark_bubble_1
-do_exclamation_mark_bubble_1: @ 8062654
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _08062674 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08062674: .4byte gUnknown_0202FF84
- thumb_func_end do_exclamation_mark_bubble_1
-
- thumb_func_start do_exclamation_mark_bubble_2
-do_exclamation_mark_bubble_2: @ 8062678
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _08062698 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x21
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08062698: .4byte gUnknown_0202FF84
- thumb_func_end do_exclamation_mark_bubble_2
-
- thumb_func_start do_heart_bubble
-do_heart_bubble: @ 806269C
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _080626BC @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x2E
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080626BC: .4byte gUnknown_0202FF84
- thumb_func_end do_heart_bubble
-
- thumb_func_start sub_80626C0
-sub_80626C0: @ 80626C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x6]
- cmp r0, 0x3F
- bne _080626D6
- adds r0, r4, 0
- bl sub_8084794
- movs r0, 0
- b _080626FE
-_080626D6:
- subs r0, 0x39
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080626F8
- adds r0, r4, 0
- bl sub_812869C
- movs r0, 0x1
- strh r0, [r5, 0x32]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062704
- lsls r0, 24
- lsrs r0, 24
- b _080626FE
-_080626F8:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080626FE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80626C0
-
- thumb_func_start sub_8062704
-sub_8062704: @ 8062704
- push {r4,lr}
- adds r4, r1, 0
- bl sub_81286C4
- lsls r0, 24
- cmp r0, 0
- bne _08062716
- movs r0, 0
- b _0806271C
-_08062716:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0806271C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062704
-
- thumb_func_start sub_8062724
-sub_8062724: @ 8062724
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062724
-
- thumb_func_start sub_8062740
-sub_8062740: @ 8062740
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- beq _0806275C
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_0806275C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062740
-
- thumb_func_start sub_8062764
-sub_8062764: @ 8062764
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- beq _08062796
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_08062796:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062764
-
- thumb_func_start sub_80627A0
-sub_80627A0: @ 80627A0
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80627A0
-
- thumb_func_start sub_80627BC
-sub_80627BC: @ 80627BC
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- beq _080627D8
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_080627D8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80627BC
-
- thumb_func_start sub_80627E0
-sub_80627E0: @ 80627E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- beq _08062812
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_08062812:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80627E0
-
- thumb_func_start sub_806281C
-sub_806281C: @ 806281C
- ldrb r2, [r0, 0x3]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_806281C
-
- thumb_func_start sub_806282C
-sub_806282C: @ 806282C
- ldrb r3, [r0, 0x3]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_806282C
-
- thumb_func_start sub_806283C
-sub_806283C: @ 806283C
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r4, 0x42
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806283C
-
- thumb_func_start sub_806286C
-sub_806286C: @ 806286C
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- movs r3, 0
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806286C
-
- thumb_func_start sub_806289C
-sub_806289C: @ 806289C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80628D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806289C
-
- thumb_func_start sub_80628D0
-sub_80628D0: @ 80628D0
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _080628E2
- movs r0, 0
- b _080628F4
-_080628E2:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080628F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80628D0
-
- thumb_func_start sub_80628FC
-sub_80628FC: @ 80628FC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8062930
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80628FC
-
- thumb_func_start sub_8062930
-sub_8062930: @ 8062930
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08062942
- movs r0, 0
- b _08062954
-_08062942:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08062954:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062930
-
- thumb_func_start sub_806295C
-sub_806295C: @ 806295C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- bl npc_coords_shift_still
- adds r0, r4, 0
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_805FE64
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806295C
-
- thumb_func_start sub_806299C
-sub_806299C: @ 806299C
- push {lr}
- movs r2, 0x1
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806299C
-
- thumb_func_start sub_80629AC
-sub_80629AC: @ 80629AC
- push {lr}
- movs r2, 0x2
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629AC
-
- thumb_func_start sub_80629BC
-sub_80629BC: @ 80629BC
- push {lr}
- movs r2, 0x3
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629BC
-
- thumb_func_start sub_80629CC
-sub_80629CC: @ 80629CC
- push {lr}
- movs r2, 0x4
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629CC
-
- thumb_func_start sub_80629DC
-sub_80629DC: @ 80629DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80629DC
-
- thumb_func_start sub_8062A00
-sub_8062A00: @ 8062A00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A00
-
- thumb_func_start sub_8062A24
-sub_8062A24: @ 8062A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A24
-
- thumb_func_start sub_8062A48
-sub_8062A48: @ 8062A48
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A48
-
- thumb_func_start sub_8062A6C
-sub_8062A6C: @ 8062A6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A6C
-
- thumb_func_start sub_8062A90
-sub_8062A90: @ 8062A90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A90
-
- thumb_func_start sub_8062AB4
-sub_8062AB4: @ 8062AB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AB4
-
- thumb_func_start sub_8062AD8
-sub_8062AD8: @ 8062AD8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AD8
-
- thumb_func_start sub_8062AFC
-sub_8062AFC: @ 8062AFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AFC
-
- thumb_func_start sub_8062B20
-sub_8062B20: @ 8062B20
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B20
-
- thumb_func_start sub_8062B44
-sub_8062B44: @ 8062B44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B44
-
- thumb_func_start sub_8062B68
-sub_8062B68: @ 8062B68
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B68
-
- thumb_func_start sub_8062B8C
-sub_8062B8C: @ 8062B8C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806113C
- adds r0, r4, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r6, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8062B8C
-
- thumb_func_start sub_8062BD0
-sub_8062BD0: @ 8062BD0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062BFC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BD0
-
- thumb_func_start sub_8062BFC
-sub_8062BFC: @ 8062BFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C10
- movs r0, 0
- b _08062C20
-_08062C10:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C20:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BFC
-
- thumb_func_start sub_8062C28
-sub_8062C28: @ 8062C28
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062C54
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C28
-
- thumb_func_start sub_8062C54
-sub_8062C54: @ 8062C54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C68
- movs r0, 0
- b _08062C78
-_08062C68:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C78:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C54
-
- thumb_func_start sub_8062C80
-sub_8062C80: @ 8062C80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062CAC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C80
-
- thumb_func_start sub_8062CAC
-sub_8062CAC: @ 8062CAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062CC0
- movs r0, 0
- b _08062CD0
-_08062CC0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062CD0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CAC
-
- thumb_func_start sub_8062CD8
-sub_8062CD8: @ 8062CD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D04
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CD8
-
- thumb_func_start sub_8062D04
-sub_8062D04: @ 8062D04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D18
- movs r0, 0
- b _08062D28
-_08062D18:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D28:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D04
-
- thumb_func_start sub_8062D30
-sub_8062D30: @ 8062D30
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D5C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D30
-
- thumb_func_start sub_8062D5C
-sub_8062D5C: @ 8062D5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D70
- movs r0, 0
- b _08062D80
-_08062D70:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D5C
-
- thumb_func_start sub_8062D88
-sub_8062D88: @ 8062D88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062DB4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D88
-
- thumb_func_start sub_8062DB4
-sub_8062DB4: @ 8062DB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062DC8
- movs r0, 0
- b _08062DD8
-_08062DC8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062DD8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DB4
-
- thumb_func_start sub_8062DE0
-sub_8062DE0: @ 8062DE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E0C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DE0
-
- thumb_func_start sub_8062E0C
-sub_8062E0C: @ 8062E0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E20
- movs r0, 0
- b _08062E30
-_08062E20:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E0C
-
- thumb_func_start sub_8062E38
-sub_8062E38: @ 8062E38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E64
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E38
-
- thumb_func_start sub_8062E64
-sub_8062E64: @ 8062E64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E78
- movs r0, 0
- b _08062E88
-_08062E78:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E88:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E64
-
- thumb_func_start sub_8062E90
-sub_8062E90: @ 8062E90
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062EBC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E90
-
- thumb_func_start sub_8062EBC
-sub_8062EBC: @ 8062EBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062ED0
- movs r0, 0
- b _08062EE0
-_08062ED0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062EE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EBC
-
- thumb_func_start sub_8062EE8
-sub_8062EE8: @ 8062EE8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F14
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EE8
-
- thumb_func_start sub_8062F14
-sub_8062F14: @ 8062F14
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F28
- movs r0, 0
- b _08062F38
-_08062F28:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F38:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F14
-
- thumb_func_start sub_8062F40
-sub_8062F40: @ 8062F40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F6C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F40
-
- thumb_func_start sub_8062F6C
-sub_8062F6C: @ 8062F6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F80
- movs r0, 0
- b _08062F90
-_08062F80:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F90:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F6C
-
- thumb_func_start sub_8062F98
-sub_8062F98: @ 8062F98
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062FC4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F98
-
- thumb_func_start sub_8062FC4
-sub_8062FC4: @ 8062FC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062FD8
- movs r0, 0
- b _08062FE8
-_08062FD8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062FE8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FC4
-
- thumb_func_start sub_8062FF0
-sub_8062FF0: @ 8062FF0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FF0
-
- thumb_func_start sub_8063028
-sub_8063028: @ 8063028
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063028
-
- thumb_func_start sub_8063060
-sub_8063060: @ 8063060
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063060
-
- thumb_func_start sub_8063098
-sub_8063098: @ 8063098
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063098
-
- thumb_func_start sub_80630D0
-sub_80630D0: @ 80630D0
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80630D0
-
- thumb_func_start sub_8063108
-sub_8063108: @ 8063108
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063128
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063108
-
- thumb_func_start sub_8063128
-sub_8063128: @ 8063128
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806313A
- movs r0, 0
- b _08063140
-_0806313A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063140:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063128
-
- thumb_func_start sub_8063148
-sub_8063148: @ 8063148
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063168
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063148
-
- thumb_func_start sub_8063168
-sub_8063168: @ 8063168
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806317A
- movs r0, 0
- b _08063180
-_0806317A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063180:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063168
-
- thumb_func_start sub_8063188
-sub_8063188: @ 8063188
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631A8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063188
-
- thumb_func_start sub_80631A8
-sub_80631A8: @ 80631A8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631BA
- movs r0, 0
- b _080631C0
-_080631BA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080631C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631A8
-
- thumb_func_start sub_80631C8
-sub_80631C8: @ 80631C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631E8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80631C8
-
- thumb_func_start sub_80631E8
-sub_80631E8: @ 80631E8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631FA
- movs r0, 0
- b _08063200
-_080631FA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063200:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631E8
-
- thumb_func_start sub_8063208
-sub_8063208: @ 8063208
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063208
-
- thumb_func_start sub_8063238
-sub_8063238: @ 8063238
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063258
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063238
-
- thumb_func_start sub_8063258
-sub_8063258: @ 8063258
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806326A
- movs r0, 0
- b _08063270
-_0806326A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063270:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063258
-
- thumb_func_start sub_8063278
-sub_8063278: @ 8063278
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063298
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063278
-
- thumb_func_start sub_8063298
-sub_8063298: @ 8063298
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632AA
- movs r0, 0
- b _080632B0
-_080632AA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063298
-
- thumb_func_start sub_80632B8
-sub_80632B8: @ 80632B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80632D8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632B8
-
- thumb_func_start sub_80632D8
-sub_80632D8: @ 80632D8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632EA
- movs r0, 0
- b _080632F0
-_080632EA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632F0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80632D8
-
- thumb_func_start sub_80632F8
-sub_80632F8: @ 80632F8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063318
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632F8
-
- thumb_func_start sub_8063318
-sub_8063318: @ 8063318
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806332A
- movs r0, 0
- b _08063330
-_0806332A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063330:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063318
-
- thumb_func_start sub_8063338
-sub_8063338: @ 8063338
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDB8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063338
-
- thumb_func_start sub_8063370
-sub_8063370: @ 8063370
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063390
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063370
-
- thumb_func_start sub_8063390
-sub_8063390: @ 8063390
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633A2
- movs r0, 0
- b _080633A8
-_080633A2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633A8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063390
-
- thumb_func_start sub_80633B0
-sub_80633B0: @ 80633B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80633D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633B0
-
- thumb_func_start sub_80633D0
-sub_80633D0: @ 80633D0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633E2
- movs r0, 0
- b _080633E8
-_080633E2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633E8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80633D0
-
- thumb_func_start sub_80633F0
-sub_80633F0: @ 80633F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063410
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633F0
-
- thumb_func_start sub_8063410
-sub_8063410: @ 8063410
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063422
- movs r0, 0
- b _08063428
-_08063422:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063428:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063410
-
- thumb_func_start sub_8063430
-sub_8063430: @ 8063430
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063450
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063430
-
- thumb_func_start sub_8063450
-sub_8063450: @ 8063450
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063462
- movs r0, 0
- b _08063468
-_08063462:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063468:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063450
-
- thumb_func_start sub_8063470
-sub_8063470: @ 8063470
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063470
-
- thumb_func_start sub_8063474
-sub_8063474: @ 8063474
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063474
-
- thumb_func_start npc_obj_transfer_image_anim_pause_flag
-npc_obj_transfer_image_anim_pause_flag: @ 8063484
- push {lr}
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- bge _0806349A
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0806349A:
- pop {r0}
- bx r0
- thumb_func_end npc_obj_transfer_image_anim_pause_flag
-
- thumb_func_start sub_80634A0
-sub_80634A0: @ 80634A0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r3, [r4, 0x1]
- lsls r0, r3, 28
- cmp r0, 0
- bge _080634C8
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- movs r1, 0x9
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x1]
-_080634C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80634A0
-
- thumb_func_start sub_80634D0
-sub_80634D0: @ 80634D0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80634E8
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_update_obj_anim_flag
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80634D0
-
- thumb_func_start sub_80634E8
-sub_80634E8: @ 80634E8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r5, 0x1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806354C
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063544 @ =gSpriteCoordOffsetX
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063548 @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- b _08063574
- .align 2, 0
-_08063544: .4byte gSpriteCoordOffsetX
-_08063548: .4byte gSpriteCoordOffsetY
-_0806354C:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
-_08063574:
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r6, 0x8]
- adds r0, r3
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r6, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _0806359C
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635A4
-_0806359C:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635A4:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080635B8
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635C0
-_080635B8:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80634E8
-
- thumb_func_start npc_update_obj_anim_flag
-npc_update_obj_anim_flag: @ 80635C8
- push {lr}
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x5
- negs r3, r3
- ands r3, r1
- strb r3, [r2]
- ldrb r1, [r0, 0x1]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080635EA
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_080635EA:
- pop {r0}
- bx r0
- thumb_func_end npc_update_obj_anim_flag
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/include/asm.inc.h b/include/asm.inc.h
index 9bd8324ad..dbd3f0820 100644..100755
--- a/include/asm.inc.h
+++ b/include/asm.inc.h
@@ -128,6 +128,7 @@ u8 sub_80608D0(u8);
u8 GetStepInPlaceDelay32AnimId(u8 a);
u8 GetStepInPlaceDelay16AnimId(u8);
u8 GetStepInPlaceDelay8AnimId(u8 a);
+u8 GetStepInPlaceDelay4AnimId(u8 a);
u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 sub_80609D8(u8);
u8 sub_8060A04(u8);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
new file mode 100755
index 000000000..62f492bdc
--- /dev/null
+++ b/include/field_effect_helpers.h
@@ -0,0 +1,11 @@
+//
+// Created by scott on 5/25/2017.
+//
+
+#ifndef POKERUBY_FIELD_EFFECT_HELPERS_H
+#define POKERUBY_FIELD_EFFECT_HELPERS_H
+
+void sub_812869C(struct MapObject *);
+bool8 sub_81286C4(struct MapObject *);
+
+#endif //POKERUBY_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 2bd875f17..0347b90d4 100755
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -89,4 +89,7 @@ extern struct CameraSomething gUnknown_03004880;
extern u16 gUnknown_03004898;
extern u16 gUnknown_0300489C;
+extern u32 gUnknown_0202FF84[];
+
+int state_to_direction(u8, u8, u8);
#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index a61dcc63c..5dceec595 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -11,5 +11,9 @@ void UnfreezeMapObject(struct MapObject *mapObject);
void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3);
void sub_806467C(struct Sprite *sprite, u8 direction);
bool8 sub_806468C(struct Sprite *sprite);
-
+void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4);
+void DoShadowFieldEffect(struct MapObject *mapObject);
+u8 sub_8064704(struct Sprite *);
+u8 sub_806478C(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3);
#endif
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index d3e4b9132..fc21c4e3c 100644..100755
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -33,7 +33,7 @@ void SetPlayerAvatarTransitionFlags(u16 a);
// PlayerAvatarTransition_Underwater
// sub_80591F4
void sub_8059204(void);
-// player_get_x22
+u8 player_get_x22(void);
void PlayerSetAnimId(u8 a, u8 b);
void PlayerGoSpeed0(u8 a);
void sub_80593C4(u8 a);
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 0113143b6..b80a41641 100644..100755
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -28,7 +28,7 @@ s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj);
s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
void sub_80846E4(u8 taskId);
-void sub_8084794(u32 var);
+void sub_8084794(struct MapObject *var);
void sub_80847C8(void);
void sub_80847D8(u8);
void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
diff --git a/ld_script.txt b/ld_script.txt
index 866dcff5e..b67fdfc73 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -92,8 +92,7 @@ SECTIONS {
src/field_player_avatar.o(.text);
src/field_map_obj.o(.text);
asm/field_map_obj.o(.text);
- src/field_map_obj.o(.text_b);
- asm/field_map_obj.o(.text_805fd18);
+ src/field_map_obj.o(.text_fmocb2_c);
src/field_ground_effect.o(.text);
asm/field_ground_effect.o(.text);
src/field_map_obj_helpers.o(.text);
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 8c85e7b6d..eaad98cb0 100755..100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -13,6 +13,10 @@
#include "rng.h"
#include "sprite.h"
#include "field_camera.h"
+#include "metatile_behavior.h"
+#include "map_constants.h"
+#include "trainer_see.h"
+#include "field_effect_helpers.h"
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36];
@@ -22,7 +26,7 @@ extern void ClearPlayerAvatarInfo(void);
extern void npc_load_two_palettes__no_record(u16, u8);
extern void npc_load_two_palettes__and_record(u16, u8);
extern void sub_8060388(s16, s16, s16 *, s16 *);
-extern void sub_80634D0(struct MapObject *, struct Sprite *);
+void sub_80634D0(struct MapObject *, struct Sprite *);
extern void pal_patch_for_npc(u16, u16);
extern void CameraObjectReset1(void);
@@ -3182,17 +3186,217 @@ u8 sub_805F2B4(struct MapObject *mapObject, struct Sprite *sprite)
return MoveFieldObjectInNextDirectionInSequence(mapObject, sprite, directions);
};
-void sub_805F2FC(struct Sprite *sprite);
-void FieldObjectCB_TreeDisguise(struct Sprite *sprite);
-void FieldObjectCB_MountainDisguise(struct Sprite *sprite);
-void sub_805F8E0(struct Sprite *sprite);
-void FieldObjectCB_Hidden1(struct Sprite *sprite);
-void sub_805FB20(struct Sprite *sprite);
-void sub_805FB90(struct Sprite *sprite);
-void sub_805FC00(struct Sprite *sprite);
-void sub_805FC70(struct Sprite *sprite);
+fieldmap_object_cb(sub_805F2FC, sub_805F320, gUnknown_08375588);
+
+u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ if (mapObject->mapobj_unk_21 == 0)
+ {
+ mapObject->mapobj_unk_21 = player_get_direction_lower_nybble();
+ }
+ sprite->data1 = 1;
+ return 1;
+}
+
+extern u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+
+u8 sub_805F364(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2)
+ {
+ return 0;
+ }
+ return gUnknown_08375594[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), NULL);
+}
+
+u8 sub_805F3C4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectExecRegularAnim(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_1 = 0;
+ sprite->data1 = 1;
+ }
+ return 0;
+}
+
+#ifdef NONMATCHING
+
+u8 sub_805F3EC(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+{
+ return 0;
+}
+
+u8 sub_805F3F0(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+{
+ int direction;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ mapObject->mapobj_bit_1 = 1;
+ sprite->data1 = 2;
+ return 1;
+}
+
+u8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+{
+ s16 x;
+ s16 y;
+ int direction;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2);
+ FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(direction));
+ if (!npc_block_way(mapObject, x, y, direction) || (a3 != NULL && !a3(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = 1;
+ sprite->data1 = 2;
+ return 1;
+}
+#endif
+
+asm(".section .text_fmocb2_c\n");
+
+fieldmap_object_cb(sub_805F8E0, sub_805F904, gUnknown_083755C0);
+
+u8 mss_08062EA4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C == 0xFF || gPlayerAvatar.running1 == 2)
+ {
+ return 0;
+ }
+ return gUnknown_08375594[player_get_x22()](mapObject, sprite, player_get_direction_upper_nybble(), MetatileBehavior_IsPokeGrass);
+}
+
+u8 sub_805F9F8(struct MapObject *, struct Sprite *);
-asm(".section .text_b\n");
+void FieldObjectCB_TreeDisguise(struct Sprite *sprite)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[sprite->data0];
+ if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0))
+ {
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
+ mapObject->mapobj_unk_1A = FieldEffectStart(0x1c);
+ mapObject->mapobj_unk_21 = 1;
+ sprite->data7 ++;
+ }
+ meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8);
+}
+
+u8 sub_805F9F8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ return 0;
+}
+
+void FieldObjectCB_MountainDisguise(struct Sprite *sprite)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[sprite->data0];
+ if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && sprite->data7 == 0))
+ {
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
+ mapObject->mapobj_unk_1A = FieldEffectStart(0x1d);
+ mapObject->mapobj_unk_21 = 1;
+ sprite->data7 ++;
+ }
+ meta_step(&gMapObjects[sprite->data0], sprite, sub_805F9F8);
+}
+
+u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite);
+extern u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *);
+
+void FieldObjectCB_Hidden1(struct Sprite *sprite)
+{
+ if (sprite->data7 == 0)
+ {
+ gMapObjects[sprite->data0].mapobj_bit_26 = 1;
+ sprite->subspriteMode = 2;
+ sprite->oam.priority = 3;
+ sprite->data7 ++;
+ }
+ meta_step(&gMapObjects[sprite->data0], sprite, sub_805FAD8);
+}
+
+u8 sub_805FAD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return gUnknown_083755CC[sprite->data1](mapObject, sprite);
+}
+
+u8 sub_805FAF8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ return 0;
+}
+
+u8 sub_805FB04(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectExecRegularAnim(mapObject, sprite))
+ {
+ sprite->data1 = 0;
+ }
+ return 0;
+}
+
+fieldmap_object_cb(sub_805FB20, sub_805FB44, gUnknown_083755D0);
+
+u8 sub_805FB64(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18));
+ sprite->data1 = 1;
+ return 1;
+}
+
+fieldmap_object_cb(sub_805FB90, sub_805FBB4, gUnknown_083755D8);
+
+u8 sub_805FBD4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay8AnimId(mapObject->mapobj_unk_18));
+ sprite->data1 = 1;
+ return 1;
+}
+
+fieldmap_object_cb(sub_805FC00, sub_805FC24, gUnknown_083755E0);
+
+u8 sub_805FC44(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18));
+ sprite->data1 = 1;
+ return 1;
+}
+
+fieldmap_object_cb(sub_805FC70, sub_805FC94, gUnknown_083755E8);
+
+u8 sub_805FCB4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_reset(mapObject, sprite);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18));
+ mapObject->mapobj_bit_13 = 1;
+ sprite->data1 = 1;
+ return 1;
+}
+
+u8 sub_805FCE8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectExecRegularAnim(mapObject, sprite))
+ {
+ sprite->data1 = 2;
+ return 1;
+ }
+ return 0;
+}
+
+u8 sub_805FD08(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_1 = 0;
+ return 0;
+}
+
+void sub_805FC70(struct Sprite *sprite);
void npc_reset(struct MapObject *mapObject, struct Sprite *sprite)
{
@@ -3682,7 +3886,7 @@ u8 FieldObjectGetSpecialAnim(struct MapObject *mapObject)
extern void DoGroundEffects_OnSpawn(struct MapObject *mapObject, struct Sprite *sprite);
extern void DoGroundEffects_OnBeginStep(struct MapObject *mapObject, struct Sprite *sprite);
extern void DoGroundEffects_OnFinishStep(struct MapObject *mapObject, struct Sprite *sprite);
-extern void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite);
+void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite);
void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite);
void FieldObjectUpdateSubpriority(struct MapObject *mapObject, struct Sprite *sprite);
@@ -4082,10 +4286,10 @@ int zffu_offset_calc(u8 a0, u8 a1)
}
#ifdef NONMATCHING
-u8 state_to_direction(u8 a0, u8 a1, u8 a2)
+int state_to_direction(u8 a0, u8 a1, u8 a2)
{
int zffuOffset;
- asm_comment("For some reason, r2 is being backed up to r3 and restored ahead of the zffu call.")
+ asm_comment("For some reason, r2 is being backed up to r3 and restored ahead of the zffu call.");
if (a1 == 0 || a2 == 0 || a1 > 4 || a2 > 4)
{
return 0;
@@ -4095,7 +4299,7 @@ u8 state_to_direction(u8 a0, u8 a1, u8 a2)
}
#else
__attribute__((naked))
-u8 state_to_direction(u8 a0, u8 a1, u8 a2)
+int state_to_direction(u8 a0, u8 a1, u8 a2)
{
asm(".syntax unified\n\
push {r4,lr}\n\
@@ -4194,7 +4398,7 @@ u8 sub_8060D10(struct MapObject *mapObject, struct Sprite *sprite)
return 1;
}
-void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2)
+void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
{
s16 x;
s16 y;
@@ -4203,7 +4407,7 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
FieldObjectSetDirection(mapObject, direction);
MoveCoords(direction, &x, &y);
npc_coords_shift(mapObject, x, y);
- oamt_npc_ministep_reset(sprite, direction, a2);
+ oamt_npc_ministep_reset(sprite, direction, a3);
sprite->animPaused = 0;
mapObject->mapobj_bit_2 = 1;
sprite->data2 = 1;
@@ -4211,12 +4415,12 @@ void sub_8060D20(struct MapObject *mapObject, struct Sprite *sprite, u8 directio
extern u8 (*const gUnknown_083759C0[5])(u8);
-void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a2)
+void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
{
u8 (*functions[5])(u8);
memcpy(functions, gUnknown_083759C0, sizeof(gUnknown_083759C0));
- sub_8060D20(mapObject, sprite, direction, a2);
- sub_805FE28(mapObject, sprite, functions[a2](mapObject->mapobj_unk_18));
+ sub_8060D20(mapObject, sprite, direction, a3);
+ sub_805FE28(mapObject, sprite, functions[a3](mapObject->mapobj_unk_18));
}
void do_run_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
@@ -4416,3 +4620,2119 @@ bool8 sub_806111C(struct MapObject *mapObject, struct Sprite *sprite)
return FALSE;
}
+extern const s16 gUnknown_08375A34[3];
+extern const s16 gUnknown_08375A3A[3];
+
+void sub_806113C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a4, u8 a5)
+{
+ s16 vSPp4[3];
+ s16 x;
+ s16 y;
+ memcpy(vSPp4, gUnknown_08375A34, sizeof gUnknown_08375A34);
+ x = 0;
+ y = 0;
+ FieldObjectSetDirection(mapObject, direction);
+ sub_8060320(direction, &x, &y, vSPp4[a4], vSPp4[a4]);
+ npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y);
+ sub_80646E4(sprite, direction, a4, a5);
+ sprite->data2 = 1;
+ sprite->animPaused = 0;
+ mapObject->mapobj_bit_2 = 1;
+ mapObject->mapobj_bit_4 = 1;
+}
+
+void maybe_shadow_1(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a4, u8 a5)
+{
+ sub_806113C(mapObject, sprite, direction, a4, a5);
+ sub_805FE28(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18));
+ DoShadowFieldEffect(mapObject);
+}
+
+u8 sub_806123C(struct MapObject *mapObject, struct Sprite *sprite, u8 (*const callback)(struct Sprite *))
+{
+ s16 vSPp4[3];
+ s16 x;
+ s16 y;
+ u8 retval;
+ memcpy(vSPp4, gUnknown_08375A3A, sizeof gUnknown_08375A3A);
+ retval = callback(sprite);
+ if (retval == 1 && vSPp4[sprite->data4] != 0)
+ {
+ x = 0;
+ y = 0;
+ sub_8060320(mapObject->placeholder18, &x, &y, vSPp4[sprite->data4], vSPp4[sprite->data4]);
+ npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y);
+ mapObject->mapobj_bit_2 = 1;
+ mapObject->mapobj_bit_4 = 1;
+ } else if (retval == 0xff)
+ {
+ npc_coords_shift_still(mapObject);
+ mapObject->mapobj_bit_3 = 1;
+ mapObject->mapobj_bit_5 = 1;
+ sprite->animPaused = 1;
+ }
+ return retval;
+}
+
+u8 sub_8061300(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return sub_806123C(mapObject, sprite, sub_8064704);
+}
+
+u8 sub_8061314(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return sub_806123C(mapObject, sprite, sub_806478C);
+}
+
+bool8 sub_8061328(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061300(mapObject, sprite) == 0xFF)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061340(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061314(mapObject, sprite) == 0xFF)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061358(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 retval;
+
+ retval = sub_8061300(mapObject, sprite);
+ if (retval != 1)
+ {
+ if (retval == 0xFF)
+ {
+ return TRUE;
+ }
+ return FALSE;
+ }
+ FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18));
+ sub_805FE64(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18));
+ return FALSE;
+}
+
+bool8 sub_80613D4(struct MapObject *, struct Sprite *);
+bool8 sub_806142C(struct MapObject *, struct Sprite *);
+bool8 sub_8061484(struct MapObject *, struct Sprite *);
+bool8 sub_80614DC(struct MapObject *, struct Sprite *);
+
+bool8 sub_80613A8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 2, 0);
+ return sub_80613D4(mapObject, sprite);
+}
+
+bool8 sub_80613D4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061400(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_NORTH, 2, 0);
+ return sub_806142C(mapObject, sprite);
+}
+
+bool8 sub_806142C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061458(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_WEST, 2, 0);
+ return sub_8061484(mapObject, sprite);
+}
+
+bool8 sub_8061484(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80614B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_EAST, 2, 0);
+ return sub_80614DC(mapObject, sprite);
+}
+
+bool8 sub_80614DC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8061508(struct Sprite *sprite, u16 duration)
+{
+ sprite->data2 = 1;
+ sprite->data3 = duration;
+}
+
+bool8 sub_8061510(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->data3--;
+ if (!sprite->data3)
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806152C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 1);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806154C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 2);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806156C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 4);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_806158C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 8);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_80615AC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061508(sprite, 16);
+ return sub_8061510(mapObject, sprite);
+}
+
+bool8 sub_80615EC(struct MapObject *mapObject, struct Sprite *sprite);
+bool8 sub_806162C(struct MapObject *mapObject, struct Sprite *sprite);
+bool8 sub_806166C(struct MapObject *mapObject, struct Sprite *sprite);
+bool8 sub_80616AC(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80615CC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_80615EC(mapObject, sprite);
+}
+
+bool8 sub_80615EC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+bool8 sub_806160C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_NORTH, 1);
+ return sub_806162C(mapObject, sprite);
+}
+
+bool8 sub_806162C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+bool8 sub_806164C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_WEST, 1);
+ return sub_806166C(mapObject, sprite);
+}
+
+bool8 sub_806166C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+bool8 sub_806168C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_EAST, 1);
+ return sub_80616AC(mapObject, sprite);
+}
+
+bool8 sub_80616AC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_80616CC(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animId, u16 duration)
+{
+ FieldObjectSetDirection(mapObject, direction);
+ sub_805FE28(mapObject, sprite, animId);
+ sprite->animPaused = 0;
+ sprite->data2 = 1;
+ sprite->data3 = duration;
+}
+
+bool8 sub_8061714(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->data3--;
+ if (sprite->data3 == 0)
+ {
+ sprite->data2 = 2;
+ sprite->animPaused = 1;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806173C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sprite->data3 & 1)
+ {
+ sprite->animDelayCounter++;
+ }
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061778(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_image_anim_num(DIR_SOUTH), 32);
+ return sub_806173C(mapObject, sprite);
+}
+
+bool8 sub_80617B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_image_anim_num(DIR_NORTH), 32);
+ return sub_806173C(mapObject, sprite);
+}
+
+bool8 sub_80617E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, get_go_image_anim_num(DIR_WEST), 32);
+ return sub_806173C(mapObject, sprite);
+}
+
+bool8 sub_8061820(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, get_go_image_anim_num(DIR_EAST), 32);
+ return sub_806173C(mapObject, sprite);
+}
+
+bool8 sub_8061858(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_image_anim_num(DIR_SOUTH), 16);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061890(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_image_anim_num(DIR_NORTH), 16);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_80618C8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, get_go_image_anim_num(DIR_WEST), 16);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061900(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, get_go_image_anim_num(DIR_EAST), 16);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061938(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_fast_image_anim_num(DIR_SOUTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061970(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_fast_image_anim_num(DIR_NORTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_80619A8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, get_go_fast_image_anim_num(DIR_WEST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_80619E0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, get_go_fast_image_anim_num(DIR_EAST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061A18(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, get_go_faster_image_anim_num(DIR_SOUTH), 4);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061A50(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, get_go_faster_image_anim_num(DIR_NORTH), 4);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061A88(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, get_go_faster_image_anim_num(DIR_WEST), 4);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061AC0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, get_go_faster_image_anim_num(DIR_EAST), 4);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8061B18(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061AF8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_SOUTH, 2);
+ return sub_8061B18(mapObject, sprite);
+}
+
+bool8 sub_8061B18(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061B58(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061B38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_NORTH, 2);
+ return sub_8061B58(mapObject, sprite);
+}
+
+bool8 sub_8061B58(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061B98(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061B78(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_WEST, 2);
+ return sub_8061B98(mapObject, sprite);
+}
+
+bool8 sub_8061B98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061BD8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061BB8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_EAST, 2);
+ return sub_8061BD8(mapObject, sprite);
+}
+
+bool8 sub_8061BD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061C18(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061BF8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_SOUTH, 3);
+ return sub_8061C18(mapObject, sprite);
+}
+
+bool8 sub_8061C18(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061C58(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061C38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_NORTH, 3);
+ return sub_8061C58(mapObject, sprite);
+}
+
+bool8 sub_8061C58(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061C98(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061C78(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_WEST, 3);
+ return sub_8061C98(mapObject, sprite);
+}
+
+bool8 sub_8061C98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061CD8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061CB8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_EAST, 3);
+ return sub_8061CD8(mapObject, sprite);
+}
+
+bool8 sub_8061CD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061D18(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061CF8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_SOUTH, 4);
+ return sub_8061D18(mapObject, sprite);
+}
+
+bool8 sub_8061D18(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061D58(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061D38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_NORTH, 4);
+ return sub_8061D58(mapObject, sprite);
+}
+
+bool8 sub_8061D58(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061D98(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061D78(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_WEST, 4);
+ return sub_8061D98(mapObject, sprite);
+}
+
+bool8 sub_8061D98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+bool8 sub_8061DD8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061DB8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_go_anim(mapObject, sprite, DIR_EAST, 4);
+ return sub_8061DD8(mapObject, sprite);
+}
+
+bool8 sub_8061DD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061E18(struct MapObject *, struct Sprite *);
+
+bool8 do_run_south_anim(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_run_anim(mapObject, sprite, DIR_SOUTH);
+ return sub_8061E18(mapObject, sprite);
+}
+
+bool8 sub_8061E18(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061E58(struct MapObject *, struct Sprite *);
+
+bool8 do_run_north_anim(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_run_anim(mapObject, sprite, DIR_NORTH);
+ return sub_8061E58(mapObject, sprite);
+}
+
+bool8 sub_8061E58(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061E98(struct MapObject *, struct Sprite *);
+
+bool8 do_run_west_anim(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_run_anim(mapObject, sprite, DIR_WEST);
+ return sub_8061E98(mapObject, sprite);
+}
+
+bool8 sub_8061E98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061ED8(struct MapObject *, struct Sprite *);
+
+bool8 do_run_east_anim(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ do_run_anim(mapObject, sprite, DIR_EAST);
+ return sub_8061ED8(mapObject, sprite);
+}
+
+bool8 sub_8061ED8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void npc_set_direction_and_anim__an_proceed(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 animNum)
+{
+ obj_anim_image_set_and_seek(sprite, animNum, 0);
+ FieldObjectSetDirection(mapObject, direction);
+ sprite->data2 = 1;
+}
+
+bool8 sub_8061F24(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, mapObject->placeholder18, sprite->animNum);
+ return FALSE;
+}
+
+bool8 sub_8064864(struct Sprite *);
+
+bool8 sub_8061F3C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8064864(sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8061F5C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
+{
+ sub_806113C(mapObject, sprite, direction, 1, 0);
+ StartSpriteAnim(sprite, sub_805FD88(direction));
+}
+
+bool8 sub_8061FB0(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061F90(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061F5C(mapObject, sprite, DIR_SOUTH);
+ return sub_8061FB0(mapObject, sprite);
+}
+
+bool8 sub_8061FB0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061340(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ mapObject->mapobj_bit_5 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8061FF8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8061FD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061F5C(mapObject, sprite, DIR_NORTH);
+ return sub_8061FF8(mapObject, sprite);
+}
+
+bool8 sub_8061FF8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061340(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ mapObject->mapobj_bit_5 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062040(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062020(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061F5C(mapObject, sprite, DIR_WEST);
+ return sub_8062040(mapObject, sprite);
+}
+
+bool8 sub_8062040(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061340(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ mapObject->mapobj_bit_5 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062088(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062068(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8061F5C(mapObject, sprite, DIR_EAST);
+ return sub_8062088(mapObject, sprite);
+}
+
+bool8 sub_8062088(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061340(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ mapObject->mapobj_bit_5 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80620B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 objectId;
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId))
+ {
+ an_look_any(mapObject, sprite, sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y));
+ }
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_806210C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 objectId;
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, &objectId))
+ {
+ an_look_any(mapObject, sprite, GetOppositeDirection(sub_805FE90(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[objectId].coords2.x, gMapObjects[objectId].coords2.y)));
+ }
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062170(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_9 = 1;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062180(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_9 = 0;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_80621BC(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062190(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 1, 2);
+ return sub_80621BC(mapObject, sprite);
+}
+
+bool8 sub_80621BC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062214(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80621E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_NORTH, 1, 2);
+ return sub_8062214(mapObject, sprite);
+}
+
+bool8 sub_8062214(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806226C(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062240(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_WEST, 1, 2);
+ return sub_806226C(mapObject, sprite);
+}
+
+bool8 sub_806226C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80622C4(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062298(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_EAST, 1, 2);
+ return sub_80622C4(mapObject, sprite);
+}
+
+bool8 sub_80622C4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806231C(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80622F0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 0, 0);
+ return sub_806231C(mapObject, sprite);
+}
+
+bool8 sub_806231C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062374(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062348(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_NORTH, 0, 0);
+ return sub_8062374(mapObject, sprite);
+}
+
+bool8 sub_8062374(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80623CC(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80623A0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_WEST, 0, 0);
+ return sub_80623CC(mapObject, sprite);
+}
+
+bool8 sub_80623CC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062424(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80623F8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_EAST, 0, 0);
+ return sub_8062424(mapObject, sprite);
+}
+
+bool8 sub_8062424(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806247C(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062450(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_SOUTH, 0, 2);
+ return sub_806247C(mapObject, sprite);
+}
+
+bool8 sub_806247C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061358(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80624D4(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_80624A8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_NORTH, 0, 2);
+ return sub_80624D4(mapObject, sprite);
+}
+
+bool8 sub_80624D4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061358(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_806252C(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062500(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_WEST, 0, 2);
+ return sub_806252C(mapObject, sprite);
+}
+
+bool8 sub_806252C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061358(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062584(struct MapObject *mapObject, struct Sprite *sprite);
+
+bool8 sub_8062558(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ maybe_shadow_1(mapObject, sprite, DIR_EAST, 0, 2);
+ return sub_8062584(mapObject, sprite);
+}
+
+bool8 sub_8062584(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061358(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80625B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ an_look_any(mapObject, sprite, gUnknown_0836DC09[mapObject->animPattern]);
+ return TRUE;
+}
+
+bool8 sub_80625C8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, 0x14);
+ return FALSE;
+}
+
+bool8 sub_80625D8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_25 = 0;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_80625E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_25 = 1;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_80625F8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_12 = 1;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062608(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062634(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 = 1;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062644(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 = 0;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
+ FieldEffectStart(0x0);
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
+ FieldEffectStart(0x21);
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gUnknown_0202FF84[0], (u8 *)&gUnknown_0202FF84[1], (u8 *)&gUnknown_0202FF84[2]);
+ FieldEffectStart(0x2e);
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8062704(struct MapObject *, struct Sprite *);
+
+bool8 sub_80626C0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (mapObject->animPattern == 0x3F)
+ {
+ sub_8084794(mapObject);
+ return FALSE;
+ }
+ else if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A)
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ else
+ {
+ sub_812869C(mapObject);
+ sprite->data2 = 1;
+ return sub_8062704(mapObject, sprite);
+ }
+}
+
+bool8 sub_8062704(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_81286C4(mapObject))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062724(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ obj_anim_image_set_and_seek(sprite, 1, 0);
+ sprite->data2 = 1;
+ return FALSE;
+}
+
+bool8 sub_8062740(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8064864(sprite))
+ {
+ sub_8064820(sprite, 0x20);
+ sprite->data2 = 2;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062764(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 ^= 1;
+ if (sub_8064824(sprite))
+ {
+ mapObject->mapobj_bit_13 = 1;
+ sprite->data2 = 3;
+ }
+ return FALSE;
+}
+
+bool8 sub_80627A0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ obj_anim_image_set_and_seek(sprite, 1, 0);
+ sprite->data2 = 1;
+ return FALSE;
+}
+
+bool8 sub_80627BC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8064864(sprite))
+ {
+ sub_8064820(sprite, 0x20);
+ sprite->data2 = 2;
+ }
+ return FALSE;
+}
+
+bool8 sub_80627E0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_13 ^= 1;
+ if (sub_8064824(sprite))
+ {
+ mapObject->mapobj_bit_13 = 1;
+ sprite->data2 = 3;
+ }
+ return FALSE;
+}
+
+bool8 sub_806281C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_26 = 1;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_806282C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_26 = 0;
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_806283C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->oam.affineMode = 3;
+ InitSpriteAffineAnim(sprite);
+ sprite->affineAnimPaused = 1;
+ sprite->subspriteMode = 0;
+ return TRUE;
+}
+
+bool8 sub_806286C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->oam.affineMode = 0;
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
+ return TRUE;
+}
+
+bool8 sub_80628D0(struct MapObject *, struct Sprite *);
+
+bool8 sub_806289C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8060ED8(mapObject, sprite, DIR_SOUTH);
+ sprite->affineAnimPaused = 0;
+ StartSpriteAffineAnimIfDifferent(sprite, 0);
+ return sub_80628D0(mapObject, sprite);
+}
+
+bool8 sub_80628D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (an_walk_any_2(mapObject, sprite))
+ {
+ sprite->affineAnimPaused = 1;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062930(struct MapObject *, struct Sprite *);
+
+bool8 sub_80628FC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8060ED8(mapObject, sprite, DIR_SOUTH);
+ sprite->affineAnimPaused = 0;
+ ChangeSpriteAffineAnimIfDifferent(sprite, 1);
+ return sub_8062930(mapObject, sprite);
+}
+
+bool8 sub_8062930(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (an_walk_any_2(mapObject, sprite))
+ {
+ sprite->affineAnimPaused = 1;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_806295C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction)
+{
+ FieldObjectSetDirection(mapObject, direction);
+ npc_coords_shift_still(mapObject);
+ sub_805FE64(mapObject, sprite, sub_805FDD8(direction));
+ sprite->animPaused = 1;
+ sprite->data2 = 1;
+}
+
+bool8 sub_806299C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_SOUTH);
+ return TRUE;
+}
+
+bool8 sub_80629AC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_NORTH);
+ return TRUE;
+}
+
+bool8 sub_80629BC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_WEST);
+ return TRUE;
+}
+
+bool8 sub_80629CC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_806295C(mapObject, sprite, DIR_EAST);
+ return TRUE;
+}
+
+bool8 sub_80629DC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FD98(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062A00(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FD98(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062A24(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FD98(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062A48(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FD98(DIR_EAST));
+ return FALSE;
+}
+
+bool8 sub_8062A6C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDB8(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062A90(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDB8(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062AB4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDB8(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062AD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDB8(DIR_EAST));
+ return FALSE;
+}
+
+bool8 sub_8062AFC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_SOUTH, sub_805FDC8(DIR_SOUTH));
+ return FALSE;
+}
+
+bool8 sub_8062B20(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_NORTH, sub_805FDC8(DIR_NORTH));
+ return FALSE;
+}
+
+bool8 sub_8062B44(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_WEST, sub_805FDC8(DIR_WEST));
+ return FALSE;
+}
+
+bool8 sub_8062B68(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ npc_set_direction_and_anim__an_proceed(mapObject, sprite, DIR_EAST, sub_805FDC8(DIR_EAST));
+ return FALSE;
+}
+
+void sub_8062B8C(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3, u8 a4)
+{
+ sub_806113C(mapObject, sprite, direction, a3, a4);
+ StartSpriteAnimIfDifferent(sprite, sub_805FD98(direction));
+ DoShadowFieldEffect(mapObject);
+}
+
+bool8 sub_8062BFC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062BD0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 0, 1);
+ return sub_8062BFC(mapObject, sprite);
+}
+
+bool8 sub_8062BFC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062C54(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062C28(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 0, 1);
+ return sub_8062C54(mapObject, sprite);
+}
+
+bool8 sub_8062C54(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062CAC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062C80(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 0, 1);
+ return sub_8062CAC(mapObject, sprite);
+}
+
+bool8 sub_8062CAC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062D04(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062CD8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 0, 1);
+ return sub_8062D04(mapObject, sprite);
+}
+
+bool8 sub_8062D04(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062D5C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062D30(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 1, 1);
+ return sub_8062D5C(mapObject, sprite);
+}
+
+bool8 sub_8062D5C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062DB4(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062D88(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 1, 1);
+ return sub_8062DB4(mapObject, sprite);
+}
+
+bool8 sub_8062DB4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062E0C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062DE0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 1, 1);
+ return sub_8062E0C(mapObject, sprite);
+}
+
+bool8 sub_8062E0C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062E64(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062E38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 1, 1);
+ return sub_8062E64(mapObject, sprite);
+}
+
+bool8 sub_8062E64(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062EBC(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062E90(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_SOUTH, 2, 0);
+ return sub_8062EBC(mapObject, sprite);
+}
+
+bool8 sub_8062EBC(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062F14(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062EE8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_NORTH, 2, 0);
+ return sub_8062F14(mapObject, sprite);
+}
+
+bool8 sub_8062F14(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062F6C(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062F40(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_WEST, 2, 0);
+ return sub_8062F6C(mapObject, sprite);
+}
+
+bool8 sub_8062F6C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062FC4(struct MapObject *, struct Sprite *);
+
+bool8 sub_8062F98(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8062B8C(mapObject, sprite, DIR_EAST, 2, 0);
+ return sub_8062FC4(mapObject, sprite);
+}
+
+bool8 sub_8062FC4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (sub_8061328(mapObject, sprite))
+ {
+ mapObject->mapobj_bit_22 = 0;
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8062FF0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_SOUTH, sub_805FDD8(DIR_SOUTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063028(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_NORTH, sub_805FDD8(DIR_NORTH), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063060(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_WEST, sub_805FDD8(DIR_WEST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+bool8 sub_8063098(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80616CC(mapObject, sprite, DIR_EAST, sub_805FDD8(DIR_EAST), 8);
+ return sub_8061714(mapObject, sprite);
+}
+
+void sub_80630D0(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ StartSpriteAnim(sprite, sub_805FD98(mapObject->mapobj_unk_18));
+ SeekSpriteAnim(sprite, 0);
+}
+
+bool8 sub_8063128(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063108(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063128(mapObject, sprite);
+}
+
+bool8 sub_8063128(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063168(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063148(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_NORTH, 1);
+ return sub_8063168(mapObject, sprite);
+}
+
+bool8 sub_8063168(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80631A8(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063188(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_WEST, 1);
+ return sub_80631A8(mapObject, sprite);
+}
+
+bool8 sub_80631A8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80631E8(struct MapObject *, struct Sprite *);
+
+bool8 sub_80631C8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80630D0(mapObject, sprite, DIR_EAST, 1);
+ return sub_80631E8(mapObject, sprite);
+}
+
+bool8 sub_80631E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8063208(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ sub_805FE28(mapObject, sprite, sub_805FDD8(mapObject->mapobj_unk_18));
+}
+
+bool8 sub_8063258(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063238(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063258(mapObject, sprite);
+}
+
+bool8 sub_8063258(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063298(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063278(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_NORTH, 1);
+ return sub_8063298(mapObject, sprite);
+}
+
+bool8 sub_8063298(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80632D8(struct MapObject *, struct Sprite *);
+
+bool8 sub_80632B8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_WEST, 1);
+ return sub_80632D8(mapObject, sprite);
+}
+
+bool8 sub_80632D8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063318(struct MapObject *, struct Sprite *);
+
+bool8 sub_80632F8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063208(mapObject, sprite, DIR_EAST, 1);
+ return sub_8063318(mapObject, sprite);
+}
+
+bool8 sub_8063318(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8063338(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 a3)
+{
+ sub_8060D20(mapObject, sprite, direction, a3);
+ StartSpriteAnim(sprite, sub_805FDB8(mapObject->mapobj_unk_18));
+ SeekSpriteAnim(sprite, 0);
+}
+
+bool8 sub_8063390(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063370(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_SOUTH, 1);
+ return sub_8063390(mapObject, sprite);
+}
+
+bool8 sub_8063390(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80633D0(struct MapObject *, struct Sprite *);
+
+bool8 sub_80633B0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_NORTH, 1);
+ return sub_80633D0(mapObject, sprite);
+}
+
+bool8 sub_80633D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063410(struct MapObject *, struct Sprite *);
+
+bool8 sub_80633F0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_WEST, 1);
+ return sub_8063410(mapObject, sprite);
+}
+
+bool8 sub_8063410(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063450(struct MapObject *, struct Sprite *);
+
+bool8 sub_8063430(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_8063338(mapObject, sprite, DIR_EAST, 1);
+ return sub_8063450(mapObject, sprite);
+}
+
+bool8 sub_8063450(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (npc_obj_ministep_stop_on_arrival(mapObject, sprite))
+ {
+ sprite->data2 = 2;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8063470(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return TRUE;
+}
+
+bool8 sub_8063474(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->animPaused = 1;
+ return TRUE;
+}
+
+void npc_obj_transfer_image_anim_pause_flag(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (mapObject->mapobj_bit_10)
+ {
+ sprite->animPaused = 1;
+ }
+}
+
+void sub_80634A0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (mapObject->mapobj_bit_11)
+ {
+ sprite->animPaused = 0;
+ mapObject->mapobj_bit_10 = 0;
+ mapObject->mapobj_bit_11 = 0;
+ }
+}
+
+void sub_80634E8(struct MapObject *, struct Sprite *);
+void npc_update_obj_anim_flag(struct MapObject *, struct Sprite *);
+
+void sub_80634D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sub_80634E8(mapObject, sprite);
+ npc_update_obj_anim_flag(mapObject, sprite);
+}
+
+#ifdef NONMATCHING
+void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u16 x;
+ u16 y;
+ s16 x2;
+ s16 y2;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ mapObject->mapobj_bit_14 = 0;
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ if (sprite->coordOffsetEnabled)
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
+ } else
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
+ }
+ x2 = graphicsInfo->width + x; // offending line
+ y2 = graphicsInfo->height + y; // similarly offending line
+ if ((s16)x >= 0x100 || x2 < -0x10)
+ {
+ mapObject->mapobj_bit_14 = 1;
+ }
+ if ((s16)y >= 0xB0 || y2 < -0x10)
+ {
+ mapObject->mapobj_bit_14 = 1;
+ }
+}
+#else
+__attribute__((naked))
+void sub_80634E8(struct MapObject *mapObject, struct Sprite *sprite) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ adds r5, r0, 0\n\
+ adds r4, r1, 0\n\
+ ldrb r1, [r5, 0x1]\n\
+ movs r0, 0x41\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+ ldrb r0, [r5, 0x5]\n\
+ bl GetFieldObjectGraphicsInfo\n\
+ adds r6, r0, 0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x3E\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0806354C\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063544 @ =gSpriteCoordOffsetX\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ ldr r2, _08063548 @ =gSpriteCoordOffsetY\n\
+ adds r0, r1\n\
+ ldrh r2, [r2]\n\
+ adds r0, r2\n\
+ b _08063574\n\
+ .align 2, 0\n\
+_08063544: .4byte gSpriteCoordOffsetX\n\
+_08063548: .4byte gSpriteCoordOffsetY\n\
+_0806354C:\n\
+ ldrh r1, [r4, 0x24]\n\
+ ldrh r0, [r4, 0x20]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x28\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ ldrh r1, [r4, 0x26]\n\
+ ldrh r0, [r4, 0x22]\n\
+ adds r1, r0\n\
+ adds r0, r4, 0\n\
+ adds r0, 0x29\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ adds r0, r1\n\
+_08063574:\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ ldrh r0, [r6, 0x8]\n\
+ adds r0, r3\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ ldrh r0, [r6, 0xA]\n\
+ adds r0, r2\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xFF\n\
+ bgt _0806359C\n\
+ lsls r0, r1, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635A4\n\
+_0806359C:\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+_080635A4:\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0xAF\n\
+ bgt _080635B8\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x10\n\
+ negs r1, r1\n\
+ cmp r0, r1\n\
+ bge _080635C0\n\
+_080635B8:\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1]\n\
+_080635C0:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+.syntax divided\n");
+}
+#endif
+
+void npc_update_obj_anim_flag(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->invisible = 0;
+ if (mapObject->mapobj_bit_13 || mapObject->mapobj_bit_14)
+ {
+ sprite->invisible = 1;
+ }
+}
diff --git a/src/trainer_see.c b/src/trainer_see.c
index 9d58faab8..6c2bf0ab0 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -373,9 +373,9 @@ void sub_80846E4(u8 taskId)
mapObj->mapobj_bit_7 = 0;
}
-void sub_8084794(u32 var)
+void sub_8084794(struct MapObject *var)
{
- StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80846E4, 0)].data[1], var);
+ StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80846E4, 0)].data[1], (u32)var);
}
void sub_80847C8(void)