diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/field_map_obj.c | 22 |
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); + } +} |