summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/field_map_obj.s12
-rw-r--r--include/field_map_obj.h1
-rw-r--r--src/field_map_obj.c13
3 files changed, 12 insertions, 14 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 57ea7af2e..f0cd4f07b 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,18 +5,6 @@
.text
- thumb_func_start npc_coords_shift
-@ void npc_coords_shift(struct npc_state *fieldObject, u16 x, u16 y)
-npc_coords_shift: @ 808EAE4
- ldrh r3, [r0, 0x10]
- strh r3, [r0, 0x14]
- ldrh r3, [r0, 0x12]
- strh r3, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- bx lr
- thumb_func_end npc_coords_shift
-
thumb_func_start npc_coords_set
@ void npc_coords_set(struct npc_state *fieldObject, u16 x, u16 y)
npc_coords_set: @ 808EAF4
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index c5b23103f..4eb6f85d5 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -44,6 +44,7 @@ void sub_808E7E4(u8, u8, u8);
void sub_808E78C(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void npc_coords_shift(struct MapObject *, s16, s16);
// Exported data declarations
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index e5025fccf..6298c977b 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1222,6 +1222,15 @@ void unref_sub_808EAC4(struct MapObject *mapObject, s16 x, s16 y)
{
mapObject->coords3.x = mapObject->coords2.x;
mapObject->coords3.y = mapObject->coords2.y;
- mapObject->coords2.x = x + mapObject->coords3.x;
- mapObject->coords2.y = y + mapObject->coords3.y;
+ mapObject->coords2.x += x;
+ mapObject->coords2.y += y;
}
+
+void npc_coords_shift(struct MapObject *mapObject, s16 x, s16 y)
+{
+ mapObject->coords3.x = mapObject->coords2.x;
+ mapObject->coords3.y = mapObject->coords2.y;
+ mapObject->coords2.x = x;
+ mapObject->coords2.y = y;
+}
+