summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-10 15:12:48 -0400
committerscnorton <scnorton@biociphers.org>2017-09-10 15:12:48 -0400
commit1ed1fbab1ca140edebb7ec1ebfabaaaf04f9c054 (patch)
treef31c24d9cd3dfa9bdf35bb34965a51db79238b96
parentba6987b7335d6b3f0a641e0dee62be37bff4ffd8 (diff)
sub_808EBA8
-rw-r--r--asm/field_map_obj.s44
-rw-r--r--src/field_map_obj.c12
2 files changed, 12 insertions, 44 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index d61478b62..bb7c95ef4 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,50 +5,6 @@
.text
- thumb_func_start sub_808EBA8
-sub_808EBA8: @ 808EBA8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808EBF0
- lsls r1, r5, 16
- lsls r2, r4, 16
- mov r0, sp
- ldrb r3, [r0]
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- ldr r3, =gMapObjects
- adds r0, r3
- movs r3, 0xE0
- lsls r3, 11
- adds r1, r3
- asrs r1, 16
- adds r2, r3
- asrs r2, 16
- bl sub_808EB08
-_0808EBF0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808EBA8
-
thumb_func_start npc_coords_shift_still
@ void npc_coords_shift_still(struct npc_state *fieldObject)
npc_coords_shift_still: @ 808EBFC
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index acfbd60a7..7465370b9 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1262,3 +1262,15 @@ void sub_808EB08(struct MapObject *mapObject, s16 x, s16 y)
}
}
+void sub_808EBA8(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
+{
+ u8 mapObjectId;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
+ {
+ x += 7;
+ y += 7;
+ sub_808EB08(&gMapObjects[mapObjectId], x, y);
+ }
+}
+