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

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

/*	SCCS Id: @(#)you.h	3.0	88/04/25
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed.  See license for details. */

#ifndef YOU_H
#define YOU_H

#ifndef ATTRIB_H
#include "attrib.h"
#endif
#ifndef MONST_H
#include "monst.h"
#endif
#ifndef YOUPROP_H
#include "youprop.h"
#endif

struct prop {

#define	TIMEOUT		007777	/* mask */

#define	LEFT_RING	W_RINGL	/* 010000L */
#define	RIGHT_RING	W_RINGR	/* 020000L */
#define	LEFT_SIDE	LEFT_RING
#define	RIGHT_SIDE	RIGHT_RING
#define	BOTH_SIDES	(LEFT_SIDE | RIGHT_SIDE)

#define WORN_ARMOR	W_ARM	/* 040000L */
#define WORN_CLOAK	W_ARMC	/* 0100000L */
#define WORN_HELMET	W_ARMH	/* 0200000L */
#define WORN_SHIELD	W_ARMS	/* 0400000L */
#define WORN_GLOVES	W_ARMG	/* 01000000L */
#define WORN_BOOTS	W_ARMF	/* 02000000L */
#define	WORN_AMUL	W_AMUL	/* 04000000L */
#define	WORN_BLINDF	W_TOOL	/* 010000000L */
#ifdef SHIRT
#define	WORN_SHIRT	W_ARMU	/* 01000L */
#endif
#define	INTRINSIC	040000000L


	long p_flgs;
	int (*p_tofn)();	/* called after timeout */
};

struct you {
	xchar ux, uy;
	schar dx, dy, dz;	/* direction of move (or zap or ... ) */
	schar di;		/* direction of FF */
	xchar ux0, uy0;		/* initial position FF */
	xchar udisx, udisy;	/* last display pos */
	uchar usym;		/* usually '@' */
	int last_str_turn;	/* 0: none, 1: half turn, 2: full turn */
				/* +: turn right, -: turn left */
	boolean umoved;		/* changed map location (post-move) */
	unsigned udispl;	/* @ on display */
	unsigned ulevel;	/* 1 - MAXULEV */
	unsigned utrap;		/* trap timeout */
	unsigned utraptype;	/* defined if utrap nonzero */
#define	TT_BEARTRAP	0
#define	TT_PIT		1
#define	TT_WEB		2
	unsigned uinshop;	/* used only in shk.c - (roomno+1) of shop */
	int	 uhunger;	/* refd only in eat.c and shk.c */
	unsigned uhs;		/* hunger state - see eat.c */

	struct prop uprops[LAST_PROP+1];

	unsigned umconf;
	const char *usick_cause;
/* For messages referring to hands, eyes, feet, etc... when polymorphed */
#define ARM 0
#define EYE 1
#define FACE 2
#define FINGER 3
#define FINGERTIP 4
#define FOOT 5
#define HAND 6
#define HANDED 7
#define HEAD 8
#define LEG 9
#define LIGHT_HEADED 10
#define NECK 11
#define SPINE 12
#define TOE 13
#ifdef POLYSELF
	int mh, mhmax, mtimedone, umonnum;	/* for polymorph-self */
	struct attribs	macurr,			/* for monster attribs */
			mamax;			/* for monster attribs */
	int ulycn;				/* lycanthrope type */
#endif
	unsigned ucreamed;
	unsigned uswallow;		/* set if swallowed by a monster */
	unsigned uswldtim;		/* time you have been swallowed */
#ifdef POLYSELF
	Bitfield(uundetected,1);	/* if you're a hiding monster/piercer */
#endif
#if defined(THEOLOGY) && defined(ELBERETH)
	Bitfield(uhand_of_elbereth,1);	/* if you become Hand of Elbereth */
#endif
#ifdef MEDUSA
	Bitfield(ukilled_medusa,1);	/* if you kill the medusa */
#endif
	Bitfield(uhave_amulet,1);	/* you're carrying the Amulet */
#ifdef HARD
	Bitfield(udemigod,1);		/* once you kill the wiz */
	unsigned udg_cnt;		/* how long you have been demigod */
#endif
	struct	attribs	acurr,		/* your current attributes (eg. str) */
			abon,		/* your bonus attributes (eg. str) */
			amax,		/* your max attributes (eg. str) */
			atemp,		/* used for temporary loss/gain */
			atime;		/* used for loss/gain countdown */
#define U_CHAOTIC      -1		/* the value range of ualigntyp */
#define U_NEUTRAL	0
#define U_LAWFUL	1
	int 	ualign;			/* running alignment score */
	schar 	ualigntyp;		/* basic character alignment */
#ifdef THEOLOGY
#define CONVERT 	2
	schar   ualignbase[CONVERT];	/* for ualigntyp conversion record */
#endif
	schar uluck, moreluck;		/* luck and luck bonus */
#define	LUCKADD		3	/* added value when carrying luck stone */
#define Luck	(u.uluck + u.moreluck)
#define	LUCKMAX		10	/* on moonlit nights 11 */
#define	LUCKMIN		(-10)
	schar	udaminc;
	schar	uac;
	int	uhp,uhpmax;
#ifdef SPELLS
	int	uen, uenmax;		/* magical energy - M. Stephenson */
#endif
#ifdef THEOLOGY
	int ugangr;			/* if the gods are angry at you */
	int ublessed, ublesscnt;	/* blessing/duration from #pray */
#endif
	long	ugold, ugold0;
	long	uexp, urexp;
#ifdef ALTARS
	long 	ucleansed;	/* to record moves when player was cleansed */
#endif
	int uinvault;
	struct monst *ustuck;
	int ugrave_arise; /* you die and become something aside from a ghost */
	int nr_killed[NUMMONS]; 	/* used for experience bookkeeping */
};

#endif /* YOU_H /**/

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