diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-13 19:13:44 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-13 19:13:44 -0400 |
commit | d72231379bd5b113744cf28c7fe9c9d6784e0174 (patch) | |
tree | 0613fc9b4f73009e47c14641340f27fce860002a /src | |
parent | e26501f130ed84b160f80232db642ec49722025f (diff) |
FieldObjectIsTrainerAndCloseToPlayer
Diffstat (limited to 'src')
-rwxr-xr-x | src/field_map_obj.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 90b2f0302..f86e544a8 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -1799,3 +1799,36 @@ bool8 sub_808F564(struct MapObject *mapObject, struct Sprite *sprite) } return FALSE; } + +bool8 FieldObjectIsTrainerAndCloseToPlayer(struct MapObject *mapObject) +{ + s16 playerX; + s16 playerY; + s16 objX; + s16 objY; + s16 minX; + s16 maxX; + s16 minY; + s16 maxY; + + if (!TestPlayerAvatarFlags(0x80)) + { + return FALSE; + } + if (mapObject->trainerType != 1 && mapObject->trainerType != 3) + { + return FALSE; + } + PlayerGetDestCoords(&playerX, &playerY); + objX = mapObject->coords2.x; + objY = mapObject->coords2.y; + minX = objX - mapObject->trainerRange_berryTreeId; + minY = objY - mapObject->trainerRange_berryTreeId; + maxX = objX + mapObject->trainerRange_berryTreeId; + maxY = objY + mapObject->trainerRange_berryTreeId; + if (minX > playerX || maxX < playerX || minY > playerY || maxY < playerY) + { + return FALSE; + } + return TRUE; +} |