summaryrefslogtreecommitdiff
path: root/src/field_map_obj.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field_map_obj.c')
-rw-r--r--src/field_map_obj.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index b85432e69..55f1fd9fb 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -944,7 +944,7 @@ void FieldObjectSetGraphicsId(struct MapObject *mapObject, u8 graphicsId)
}
}
-void unref_sub_808E504(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId)
+void FieldObjectSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId)
{
u8 mapObjectId;
@@ -953,3 +953,23 @@ void unref_sub_808E504(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId)
FieldObjectSetGraphicsId(&gMapObjects[mapObjectId], graphicsId);
}
}
+
+void FieldObjectTurn(struct MapObject *mapObject, u8 direction)
+{
+ FieldObjectSetDirection(mapObject, direction);
+ if (!mapObject->mapobj_bit_12)
+ {
+ StartSpriteAnim(&gSprites[mapObject->spriteId], FieldObjectDirectionToImageAnimId(mapObject->mapobj_unk_18));
+ SeekSpriteAnim(&gSprites[mapObject->spriteId], 0);
+ }
+}
+
+void FieldObjectTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction)
+{
+ u8 mapObjectId;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
+ {
+ FieldObjectTurn(&gMapObjects[mapObjectId], direction);
+ }
+}