mons[].difficulty takes over for monstr[] Invoking "makedefs -m" gives a deprecation message; it is also included in the (now mostly empty) monstr.c. Ports should now remove "makedefs -m" from their build procedures but this commit does not include that change.
82 lines
2.9 KiB
C
82 lines
2.9 KiB
C
/* NetHack 3.6 permonst.h $NHDT-Date: 1539804913 2018/10/17 19:35:13 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.12 $ */
|
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
|
/*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
#ifndef PERMONST_H
|
|
#define PERMONST_H
|
|
|
|
/* This structure covers all attack forms.
|
|
* aatyp is the gross attack type (eg. claw, bite, breath, ...)
|
|
* adtyp is the damage type (eg. physical, fire, cold, spell, ...)
|
|
* damn is the number of hit dice of damage from the attack.
|
|
* damd is the number of sides on each die.
|
|
*
|
|
* Some attacks can do no points of damage. Additionally, some can
|
|
* have special effects *and* do damage as well. If damn and damd
|
|
* are set, they may have a special meaning. For example, if set
|
|
* for a blinding attack, they determine the amount of time blinded.
|
|
*/
|
|
|
|
struct attack {
|
|
uchar aatyp;
|
|
uchar adtyp, damn, damd;
|
|
};
|
|
|
|
/* Max # of attacks for any given monster.
|
|
*/
|
|
|
|
#define NATTK 6
|
|
|
|
/* Weight of a human body
|
|
*/
|
|
|
|
#define WT_HUMAN 1450
|
|
|
|
#ifndef ALIGN_H
|
|
#include "align.h"
|
|
#endif
|
|
#include "monattk.h"
|
|
#include "monflag.h"
|
|
|
|
struct permonst {
|
|
const char *mname; /* full name */
|
|
char mlet; /* symbol */
|
|
schar mlevel, /* base monster level */
|
|
mmove, /* move speed */
|
|
ac, /* (base) armor class */
|
|
mr; /* (base) magic resistance */
|
|
aligntyp maligntyp; /* basic monster alignment */
|
|
unsigned short geno; /* creation/geno mask value */
|
|
struct attack mattk[NATTK]; /* attacks matrix */
|
|
unsigned short cwt, /* weight of corpse */
|
|
cnutrit; /* its nutritional value */
|
|
uchar msound; /* noise it makes (6 bits) */
|
|
uchar msize; /* physical size (3 bits) */
|
|
uchar mresists; /* resistances */
|
|
uchar mconveys; /* conveyed by eating */
|
|
unsigned long mflags1, /* boolean bitflags */
|
|
mflags2; /* more boolean bitflags */
|
|
unsigned short mflags3; /* yet more boolean bitflags */
|
|
uchar difficulty; /* toughness (formerly from makedefs -m) */
|
|
#ifdef TEXTCOLOR
|
|
uchar mcolor; /* color to use */
|
|
#endif
|
|
};
|
|
|
|
extern NEARDATA struct permonst mons[]; /* the master list of monster types */
|
|
|
|
#define VERY_SLOW 3
|
|
#define SLOW_SPEED 9
|
|
#define NORMAL_SPEED 12 /* movement rates */
|
|
#define FAST_SPEED 15
|
|
#define VERY_FAST 24
|
|
|
|
#define NON_PM (-1) /* "not a monster" */
|
|
#define LOW_PM (NON_PM + 1) /* first monster in mons[] */
|
|
#define SPECIAL_PM PM_LONG_WORM_TAIL /* [normal] < ~ < [special] */
|
|
/* mons[SPECIAL_PM] through mons[NUMMONS-1], inclusive, are
|
|
never generated randomly and cannot be polymorphed into */
|
|
|
|
#endif /* PERMONST_H */
|