diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-15 21:39:24 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-15 21:39:24 -0400 |
commit | 3e9e4b13ec977cc4f5dd696d2dc8d362f58317dc (patch) | |
tree | 6721442049817b416a8bd03ccc0764d3f379a4e8 /src | |
parent | 79e8235701de373e7d7cb84162343c487c7e1a5e (diff) |
MoveFieldObjectInNextDirectionInSequence
Diffstat (limited to 'src')
-rwxr-xr-x | src/field_map_obj.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 91856d1ee..cfe04f395 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -3062,3 +3062,39 @@ bool8 sub_8091020 (struct MapObject *mapObject, struct Sprite *sprite) } return FALSE; } + +bool8 sub_8091048(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return TRUE; +} + +bool8 MoveFieldObjectInNextDirectionInSequence(struct MapObject *mapObject, struct Sprite *sprite, u8 *route) +{ + u8 blockingWay; + u8 animId; + + if (mapObject->mapobj_unk_21 == 3 && mapObject->coords1.x == mapObject->coords2.x && mapObject->coords1.y == mapObject->coords2.y) + { + mapObject->mapobj_unk_21 = 0; + } + FieldObjectSetDirection(mapObject, route[mapObject->mapobj_unk_21]); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + if (blockingWay == TRUE) + { + mapObject->mapobj_unk_21 ++; + FieldObjectSetDirection(mapObject, route[mapObject->mapobj_unk_21]); + animId = GetGoSpeed0AnimId(mapObject->placeholder18); + blockingWay = npc_block_way__next_tile(mapObject, mapObject->placeholder18); + } + if (blockingWay) + { + animId = GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18); + } + FieldObjectSetRegularAnim(mapObject, sprite, animId); + mapObject->mapobj_bit_1 = TRUE; + sprite->data1 = 2; + return TRUE; +} |