diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-17 08:45:24 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-17 08:45:24 -0400 |
commit | 8ee004b9b16f621e2ea9d4dffe5cfb34d3a1c38a (patch) | |
tree | d7e4a2496669aac531e7366bf21c13d3b18a203e /src | |
parent | bf9a00250ba8f3d986b4829c0728ba620b58ec1c (diff) |
sub_80940C4 which may or may not be a meme
Diffstat (limited to 'src')
-rwxr-xr-x | src/field_map_obj.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 5852f220c..3e3bbfa6f 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -4288,3 +4288,31 @@ void maybe_shadow_1(struct MapObject *mapObject, struct Sprite *sprite, u8 direc npc_apply_anim_looping(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); DoShadowFieldEffect(mapObject); } + +u8 sub_80940C4(struct MapObject *mapObject, struct Sprite *sprite, u8 callback(struct Sprite *)) +{ + s16 displacements[ARRAY_COUNT(gUnknown_0850DFC2)]; + s16 x; + s16 y; + u8 result; + + memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2); + result = callback(sprite); + if (result == 1 && displacements[sprite->data4] != 0) + { + x = 0; + y = 0; + sub_8092F88(mapObject->placeholder18, &x, &y, displacements[sprite->data4], displacements[sprite->data4]); + npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); + mapObject->mapobj_bit_2 = TRUE; + mapObject->mapobj_bit_4 = TRUE; + } + else if (result == 0xFF) + { + npc_coords_shift_still(mapObject); + mapObject->mapobj_bit_3 = TRUE; + mapObject->mapobj_bit_5 = TRUE; + sprite->animPaused = TRUE; + } + return result; +} |