diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-05-22 21:34:17 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-05-22 21:34:17 -0400 |
commit | 3872e196ffde5bf6732e3052fa0f39c02814b616 (patch) | |
tree | 0eca9806dd22abe67d6d606598744c5635c3fdbd /src | |
parent | de9f64061f83aab80e62b0fa69f9ed182704dfc9 (diff) |
sub_805E37C and helpers
Diffstat (limited to 'src')
-rwxr-xr-x[-rw-r--r--] | src/field_map_obj.c | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 755de7611..d186eea66 100644..100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -2762,8 +2762,73 @@ u8 sub_805E338(struct MapObject *mapObject, struct Sprite *sprite) return 1; } +fieldmap_object_cb(sub_805E37C, sub_805E3A0, gUnknown_083753FC); + +u8 sub_805E3C0(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return 1; +} + +u8 sub_805E3D4(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 direction; + direction = gUnknown_0836DC09[mapObject->animPattern]; + if (mapObject->mapobj_unk_21 != 0) + { + direction = GetOppositeDirection(direction); + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 2; + return 1; +} + +u8 sub_805E40C(struct MapObject *mapObject, struct Sprite *sprite) +{ + u8 v0; + u8 goSpeed0AnimId; + if (mapObject->mapobj_unk_21 && mapObject->coords1.x == mapObject->coords2.x && mapObject->coords1.y == mapObject->coords2.y) + { + mapObject->mapobj_unk_21 = 0; + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + } + v0 = sub_805FF20(mapObject, mapObject->placeholder18); + goSpeed0AnimId = GetGoSpeed0AnimId(mapObject->placeholder18); + if (v0 == 1) + { + mapObject->mapobj_unk_21 ++; + FieldObjectSetDirection(mapObject, GetOppositeDirection(mapObject->placeholder18)); + goSpeed0AnimId = GetGoSpeed0AnimId(mapObject->placeholder18); + v0 = sub_805FF20(mapObject, mapObject->placeholder18); + } + if (v0 != 0) + { + goSpeed0AnimId = GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18); + } + FieldObjectSetRegularAnim(mapObject, sprite, goSpeed0AnimId); + mapObject->mapobj_bit_1 = 1; + sprite->data1 = 3; + return 1; +} + +u8 sub_805E4C4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + mapObject->mapobj_bit_1 = 0; + sprite->data1 = 1; + } + return 0; +} + +u8 sub_805E4EC(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + sprite->data1 = 1; + return 1; +} -void sub_805E37C(struct Sprite *sprite); void sub_805E5DC(struct Sprite *sprite); void sub_805E668(struct Sprite *sprite); void sub_805E6F4(struct Sprite *sprite); |