1/* SCCS Id: @(#)attrib.h 3.4 1990/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 37struct 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