Source:NetHack 3.1.0/align.h

Below is the full text to align.h from the source code of NetHack 3.1.0. To link to a particular line, write [[NetHack 3.1.0/align.h#line123 ]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

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.   #define ALIGNLIM	(5L + (moves/200L))	/* bounds for "record" */ 16.   17.   #define A_NONE	      (-128)	/* the value range of type */ 18.   19.   #define A_CHAOTIC	(-1) 20.  #define A_NEUTRAL	 0 21.  #define A_LAWFUL	 1 22.   23.   #define A_COALIGNED	 1 24.  #define A_OPALIGNED	(-1) 25.   26.   #define AM_NONE		 0 27.  #define AM_CHAOTIC	 1 28.  #define AM_NEUTRAL	 2 29.  #define AM_LAWFUL	 4 30.   31.   #define AM_MASK		 7 32.   33.   #define Amask2align(x)	((aligntyp) ((!(x)) ? A_NONE \ 34.  			 : ((x) == AM_LAWFUL) ? A_LAWFUL : (x) - 2)) 35.  #define Align2amask(x)	(((x) == A_NONE) ? AM_NONE \  36.   			 : ((x) == A_LAWFUL) ? AM_LAWFUL : (x) + 2) 37.   38.   #endif /* ALIGN_H */