CheckProximity

From Eternity Wiki
Revision as of 11:51, 21 November 2020 by Printz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Description

This is an ACS built-in function.

Counts the actors of type classname close to a tagged thing, returning TRUE if they're more (or less, depending on flags) than a given limit. It can also have the side effects (if flags set this way) to change a monster's target, among other things.

Usage

boolean CheckProximity(int tid, str classname, fixed distance[, limit[, flags]])

Parameters

  • tid: TID of thing to check proximity of actors against. Only works for one tagged thing.
  • classname: class of actors to look for near the tagged thing. Supports both EDF names and ZDoom compatibility names.
  • distance: maximum distance (in fixed point) actors must be to tagged thing.
  • limit: number of actors to compare against. Without any specific flags, this function will return true if number is >= limit. Default: 1
  • flags: various flags. Default: none. NOTE: anything available in "zdefs.acs" but not mentioned here is unimplemented. The flags are:
  • CPXF_ANCESTOR or 1: count actor if classname belongs to one of its thingtype ancestors (using the inherits or colon syntax in the EDF thingtype).
  • CPXF_LESSOREQUAL or 2: function returns true if number of nearby actors is <= limit.
  • CPXF_NOZ or 4: do not calculate altitude difference between actors and tagged thing. By default, Z contributes to the distance.
  • CPXF_COUNTDEAD or 8: also count dead actors. By default they're skipped.
  • CPXF_DEADONLY or 16: only count dead actors.
  • CPXF_EXACT or 32: function returns true only if number of nearby actors is exactly limit.
  • CPXF_SETTARGET or 64: add the side effect of changing tagged thing's "target" (monster's enemy or projectile's originator) to one of the encountered actors. Combine this with CPXF_FARTHEST or CPXF_SLOWEST to pick a well-defined target. Otherwise it will prefer an arbitrary (but not random) one.
  • CPXF_SETTRACER or 256: add the side effect of changing tagged thing's "tracer" (seeker missile destination or MBF friend leader) to one of the encountered actors. Combine with same flags as for CPXF_SETTARGET.
  • CPXF_FARTHEST or 512: if setting target or tracer, pick the farthest actor found in distance range.
  • CPXF_CLOSEST or 1024: if setting target or tracer, pick the closest actor found in distance range.
  • CPXF_CHECKSIGHT or 4096: only pick actors to which a line of sight from tagged thing exists.

Returns TRUE if the conditions have been met.

Return value

Examples

No examples given.

Notes

No particular notes.

This function's identification in zspecial.acs is: -98:CheckProximity(3, 6).

See also