summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_map_obj.s152
-rwxr-xr-xsrc/field_map_obj.c66
2 files changed, 66 insertions, 152 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 61eb3c7fe..66bd31d56 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -628,158 +628,6 @@ _0805F8DC: .4byte gUnknown_0836DC09
thumb_func_end oac_hopping
.section .text_805fd18
- 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}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 4fdec1919..3d49465da 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4836,3 +4836,69 @@ 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;
+}