OSDN Git Service

fix #37913
[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 #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)                                        \
42     ((x == A_STR && Upolyd && strongmonst(youmonst.data)) \
43          ? STR18(100)                                     \
44          : urace.attrmax[x])
45 #define ATTRMIN(x) (urace.attrmin[x])
46
47 #endif /* ATTRIB_H */