OSDN Git Service

fix #42547
[jnethack/source.git] / include / attrib.h
1 /* NetHack 3.6  attrib.h        $NHDT-Date: 1432512779 2015/05/25 00:12:59 $  $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ */
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 enum attrib_types {
11     A_STR = 0,
12     A_INT,
13     A_WIS,
14     A_DEX,
15     A_CON,
16     A_CHA,
17
18     A_MAX /* used in rn2() selection of attrib */
19 };
20
21 #define ABASE(x) (u.acurr.a[x])
22 #define ABON(x) (u.abon.a[x])
23 #define AEXE(x) (u.aexe.a[x])
24 #define ACURR(x) (acurr(x))
25 #define ACURRSTR (acurrstr())
26 /* should be: */
27 /* #define ACURR(x) (ABON(x) + ATEMP(x) + (Upolyd  ? MBASE(x) : ABASE(x)) */
28 #define MCURR(x) (u.macurr.a[x])
29 #define AMAX(x) (u.amax.a[x])
30 #define MMAX(x) (u.mamax.a[x])
31
32 #define ATEMP(x) (u.atemp.a[x])
33 #define ATIME(x) (u.atime.a[x])
34
35 /* KMH -- Conveniences when dealing with strength constants */
36 #define STR18(x) (18 + (x))  /* 18/xx */
37 #define STR19(x) (100 + (x)) /* For 19 and above */
38
39 struct attribs {
40     schar a[A_MAX];
41 };
42
43 #define ATTRMAX(x)                                        \
44     ((x == A_STR && Upolyd && strongmonst(youmonst.data)) \
45          ? STR18(100)                                     \
46          : urace.attrmax[x])
47 #define ATTRMIN(x) (urace.attrmin[x])
48
49 #endif /* ATTRIB_H */