ftp.nice.ch/pub/next/games/strategic/NetHack.s.tar.gz#/NetHackSource/include/permonst.h

This is permonst.h in view mode; [Download] [Up]

/*	SCCS Id: @(#)permonst.h	3.0	88/04/05
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* 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	5

#include "monattk.h"
#include "monflag.h"

struct permonst {

#if defined(SMALLDATA) && !defined(MAKEDEFS_C)
	char		mname[24], mlet;		/* full name and sym */
#else
	const char	*mname;			/* full name */
	char		mlet;			/* symbol */
#endif
	schar		mlevel,			/* base monster level */
			mmove,			/* move speed */
			ac,			/* (base) armor class */
			mr,			/* (base) magic resistance */
			maligntyp;		/* basic monster alignment */
	unsigned	geno;			/* creation/geno mask value */
	struct	attack	mattk[NATTK];		/* attacks matrix */
	unsigned	cwt,			/* weight of corpse */
			cnutrit;		/* its nutritional value */
	short		pxlth;			/* length of extension */
	uchar		msound; 		/* noise it makes (6 bits) */
	uchar		msize;			/* physical size (3 bits) */
	long		mflags1,		/* boolean bitflags */
			mflags2;		/* more boolean bitflags */
# ifdef TEXTCOLOR
	uchar		mcolor;			/* color to use */
# endif
};

extern struct permonst
#if defined(SMALLDATA) && !defined(MAKEDEFS_C)
			*mons;
#else
			mons[];		/* the master list of monster types */
#endif
extern struct permonst playermon, *uasmon;	/* you in the same terms */

#if defined(SMALLDATA) && defined(MAKEDEFS_C)

typedef struct pmpart {
	char		mlet;			/* full name and sym */
	schar		mlevel,			/* base monster level */
			mmove,			/* move speed */
			ac,			/* (base) armor class */
			mr,			/* (base) magic resistance */
			maligntyp;		/* basic monster alignment */
	unsigned	geno;			/* creation/geno mask value */
	struct	attack	mattk[NATTK];		/* attacks matrix */
	unsigned	cwt,			/* weight of corpse */
			cnutrit;		/* its nutritional value */
	short		pxlth;			/* length of extension */
	uchar		msound;			/* noise it makes */
	long		mflags1,		/* boolean bitflags */
			mflags2;		/* more boolean bitflags */
# ifdef TEXTCOLOR
	uchar		mcolor;			/* color to use */
# endif
} pmpart;

typedef struct pmstr {
	char		mname[24];		/* full name and sym */
	pmpart		pmp;
} pmstr;

#endif

#endif /* PERMONST_H /**/

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.