diff options
author | scnorton <scnorton@biociphers.org> | 2017-09-10 15:54:41 -0400 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-09-10 15:54:41 -0400 |
commit | d8e22380869e4e04c2ebbc71fae43cd38ed646a9 (patch) | |
tree | de928d0cfcab6fbe6defe8c9872a73de2082901d /src | |
parent | 79b19a36b864abb359f7ec2122dea851f8ac5e7b (diff) |
FieldObjectDoesZCoordMatch
Diffstat (limited to 'src')
-rw-r--r-- | src/field_map_obj.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index ced0ecb27..a48a2506e 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -47,6 +47,7 @@ static void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8); static u8 sub_808E8F4(const struct SpritePalette *); static u8 FindFieldObjectPaletteIndexByTag(u16); static void sub_808EAB0(u16, u8); +static bool8 FieldObjectDoesZCoordMatch(struct MapObject *, u8); // ROM data @@ -1304,3 +1305,27 @@ void UpdateFieldObjectCoordsForCameraUpdate(void) } } +u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z) +{ + u8 i; + for (i = 0; i < NUM_FIELD_OBJECTS; i ++) + { + if (gMapObjects[i].active) + { + if (gMapObjects[i].coords2.x == x && gMapObjects[i].coords2.y == y && FieldObjectDoesZCoordMatch(&gMapObjects[i], z)) + { + return i; + } + } + } + return NUM_FIELD_OBJECTS; +} + +static bool8 FieldObjectDoesZCoordMatch(struct MapObject *mapObject, u8 z) +{ + if (mapObject->mapobj_unk_0B_0 != 0 && z != 0 && mapObject->mapobj_unk_0B_0 != z) + { + return FALSE; + } + return TRUE; +} |