summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/field_map_obj.s95
-rwxr-xr-xsrc/field_map_obj.c24
2 files changed, 24 insertions, 95 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index cd3f7022a..5b81fa7b5 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,101 +5,6 @@
.text
- thumb_func_start sub_8094F38
-sub_8094F38: @ 8094F38
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08094F82
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_8092AF8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_08094F82:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8094F38
-
- thumb_func_start sub_8094F94
-sub_8094F94: @ 8094F94
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08094FE6
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_8092AF8
- lsls r0, 24
- lsrs r0, 24
- bl GetOppositeDirection
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_08094FE6:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8094F94
-
thumb_func_start sub_8094FF8
sub_8094FF8: @ 8094FF8
ldrb r2, [r0, 0x1]
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 1d91184ec..c4b1255ad 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -4541,3 +4541,27 @@ unk_macro_8094E18(sub_8094E18, DIR_SOUTH)
unk_macro_8094E18(sub_8094E60, DIR_NORTH)
unk_macro_8094E18(sub_8094EB8, DIR_WEST)
unk_macro_8094E18(sub_8094710, DIR_EAST)
+
+bool8 sub_8094F38(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 mapObjectId;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0, &mapObjectId))
+ {
+ an_look_any(mapObject, sprite, sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y));
+ }
+ sprite->data2 = 1;
+ return TRUE;
+}
+
+bool8 sub_8094F94(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 mapObjectId;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0, &mapObjectId))
+ {
+ an_look_any(mapObject, sprite, GetOppositeDirection(sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y)));
+ }
+ sprite->data2 = 1;
+ return TRUE;
+}