home *** CD-ROM | disk | FTP | other *** search
- /* SCCS Id: @(#)vision.h 3.1 92/11/14 */
- /* Copyright (c) Dean Luick, with acknowledgements to Dave Cohrs, 1990. */
- /* NetHack may be freely redistributed. See license for details. */
-
- #ifndef VISION_H
- #define VISION_H
-
- #if 0 /* (moved to decl.h) */
- extern boolean vision_full_recalc; /* TRUE if need vision recalc */
- extern char **viz_array; /* could see/in sight row pointers */
- extern char *viz_rmin; /* min could see indices */
- extern char *viz_rmax; /* max could see indices */
- #endif
- #define COULD_SEE 0x1
- #define IN_SIGHT 0x2
-
- /*
- * cansee() - Returns true if the hero can see the location.
- *
- * couldsee() - Returns true if the hero has a clear line of sight to
- * the location.
- */
- #define cansee(x,y) (viz_array[y][x] & IN_SIGHT)
- #define couldsee(x,y) (viz_array[y][x] & COULD_SEE)
-
- /*
- * The following assume the monster is not blind.
- *
- * m_cansee() - Returns true if the monster can see the given location.
- *
- * m_canseeu() - Returns true if the monster could see the hero. Assumes
- * that if the hero has a clear line of sight to the monster's
- * location and the hero is visible, then monster can see the
- * hero.
- */
- #define m_cansee(mtmp,x2,y2) clear_path((mtmp)->mx,(mtmp)->my,(x2),(y2))
-
- #define m_canseeu(m) ((!Invis || perceives((m)->data)) && !Underwater ? \
- couldsee((m)->mx,(m)->my) : 0)
-
- /*
- * Circle information
- */
- #define MAX_RADIUS 15 /* this is in points from the source */
-
- /* Use this macro to get a list of distances of the edges (see vision.c). */
- #define circle_ptr(z) (&circle_data[circle_start[z]])
-
- #endif /* VISION_H */
-