1 /*	SCCS Id: @(#)attrib.h	3.3	90/22/02	*/
2 /* Copyright 1988, Mike Stephenson				  */
3 /* NetHack may be freely redistributed.  See license for details. */
4 
5 /*	attrib.h - Header file for character class processing. */
6 
7 #ifndef ATTRIB_H
8 #define ATTRIB_H
9 
10 #define A_STR	0
11 #define A_INT	1
12 #define A_WIS	2
13 #define A_DEX	3
14 #define A_CON	4
15 #define A_CHA	5
16 
17 #define A_MAX	6	/* used in rn2() selection of attrib */
18 
19 #define ABASE(x)	(u.acurr.a[x])
20 #define ABON(x)		(u.abon.a[x])
21 #define AEXE(x)		(u.aexe.a[x])
22 #define ACURR(x)	(acurr(x))
23 #define ACURRSTR	(acurrstr())
24 /* should be: */
25 /* #define ACURR(x) (ABON(x) + ATEMP(x) + (Upolyd  ? MBASE(x) : ABASE(x)) */
26 #define MCURR(x)	(u.macurr.a[x])
27 #define AMAX(x)		(u.amax.a[x])
28 #define MMAX(x)		(u.mamax.a[x])
29 
30 #define ATEMP(x)	(u.atemp.a[x])
31 #define ATIME(x)	(u.atime.a[x])
32 
33 /* KMH -- Conveniences when dealing with strength constants */
34 #define STR18(x)	(18+(x))	/* 18/xx */
35 #define STR19(x)	(100+(x))	/* For 19 and above */
36 
37 struct	attribs {
38 	schar	a[A_MAX];
39 };
40 
41 #define ATTRMAX(x) ((x == A_STR && Upolyd && strongmonst(youmonst.data)) ? STR18(100) : urace.attrmax[x])
42 #define ATTRMIN(x) (urace.attrmin[x])
43 
44 #endif /* ATTRIB_H */
45