home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Games / NetHack 3.1.3 / source / include / align.h next >
Encoding:
C/C++ Source or Header  |  1993-08-01  |  954 b   |  40 lines  |  [TEXT/R*ch]

  1. /*    SCCS Id: @(#)align.h    3.1    91/12/29    */
  2. /* Copyright (c) Mike Stephenson, Izchak Miller  1991.          */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef ALIGN_H
  6. #define ALIGN_H
  7.  
  8. typedef schar    aligntyp;    /* basic alignment type */
  9.  
  10. typedef struct    align {        /* alignment & record */
  11.     aligntyp    type;
  12.     int        record;
  13. } align;
  14.  
  15. /* bounds for "record" -- respect initial alignments of 10 */
  16. #define ALIGNLIM    (10L + (moves/200L))
  17.  
  18. #define A_NONE          (-128)    /* the value range of type */
  19.  
  20. #define A_CHAOTIC    (-1)
  21. #define A_NEUTRAL     0
  22. #define A_LAWFUL     1
  23.  
  24. #define A_COALIGNED     1
  25. #define A_OPALIGNED    (-1)
  26.  
  27. #define AM_NONE         0
  28. #define AM_CHAOTIC     1
  29. #define AM_NEUTRAL     2
  30. #define AM_LAWFUL     4
  31.  
  32. #define AM_MASK         7
  33.  
  34. #define Amask2align(x)    ((aligntyp) ((!(x)) ? A_NONE \
  35.              : ((x) == AM_LAWFUL) ? A_LAWFUL : ((int)x) - 2))
  36. #define Align2amask(x)    (((x) == A_NONE) ? AM_NONE \
  37.              : ((x) == A_LAWFUL) ? AM_LAWFUL : (x) + 2)
  38.  
  39. #endif /* ALIGN_H */
  40.