Source:NetHack 3.0.0/you.h

From NetHackWiki
(Redirected from NetHack 3.0.0/you.h)
Jump to navigation Jump to search

Below is the full text to you.h from the source code of NetHack 3.0.0. To link to a particular line, write [[NetHack 3.0.0/you.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

1.    /*	SCCS Id: @(#)you.h	3.0	88/04/25
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef YOU_H
6.    #define YOU_H
7.    
8.    #ifndef ATTRIB_H
9.    #include "attrib.h"
10.   #endif
11.   #ifndef MONST_H
12.   #include "monst.h"
13.   #endif
14.   #ifndef YOUPROP_H
15.   #include "youprop.h"
16.   #endif
17.   
18.   struct prop {
19.   
20.   #define	TIMEOUT		007777	/* mask */
21.   
22.   #define	LEFT_RING	W_RINGL	/* 010000L */
23.   #define	RIGHT_RING	W_RINGR	/* 020000L */
24.   #define	LEFT_SIDE	LEFT_RING
25.   #define	RIGHT_SIDE	RIGHT_RING
26.   #define	BOTH_SIDES	(LEFT_SIDE | RIGHT_SIDE)
27.   
28.   #define WORN_ARMOR	W_ARM	/* 040000L */
29.   #define WORN_CLOAK	W_ARMC	/* 0100000L */
30.   #define WORN_HELMET	W_ARMH	/* 0200000L */
31.   #define WORN_SHIELD	W_ARMS	/* 0400000L */
32.   #define WORN_GLOVES	W_ARMG	/* 01000000L */
33.   #define WORN_BOOTS	W_ARMF	/* 02000000L */
34.   #define	WORN_AMUL	W_AMUL	/* 04000000L */
35.   #define	WORN_BLINDF	W_TOOL	/* 010000000L */
36.   #ifdef SHIRT
37.   #define	WORN_SHIRT	W_ARMU	/* 020000000L */
38.   #endif
39.   #define	INTRINSIC	040000000L
40.   
41.   
42.   	long p_flgs;
43.   	int (*p_tofn)();	/* called after timeout */
44.   };
45.   
46.   struct you {
47.   	xchar ux, uy;
48.   	schar dx, dy, dz;	/* direction of move (or zap or ... ) */
49.   	schar di;		/* direction of FF */
50.   	xchar ux0, uy0;		/* initial position FF */
51.   	xchar udisx, udisy;	/* last display pos */
52.   	uchar usym;		/* usually '@' */
53.   	int last_str_turn;	/* 0: none, 1: half turn, 2: full turn */
54.   				/* +: turn right, -: turn left */
55.   	boolean umoved;		/* changed map location (post-move) */
56.   	unsigned udispl;	/* @ on display */
57.   	unsigned ulevel;	/* 1 - MAXULEV */
58.   	unsigned utrap;		/* trap timeout */
59.   	unsigned utraptype;	/* defined if utrap nonzero */
60.   #define	TT_BEARTRAP	0
61.   #define	TT_PIT		1
62.   #define	TT_WEB		2
63.   	unsigned uinshop;	/* used only in shk.c - (roomno+1) of shop */
64.   	int	 uhunger;	/* refd only in eat.c and shk.c */
65.   	unsigned uhs;		/* hunger state - see eat.c */
66.   
67.   	struct prop uprops[LAST_PROP+1];
68.   
69.   	unsigned umconf;
70.   	char *usick_cause;
71.   /* For messages referring to hands, eyes, feet, etc... when polymorphed */
72.   #define ARM 0
73.   #define EYE 1
74.   #define FACE 2
75.   #define FINGER 3
76.   #define FINGERTIP 4
77.   #define FOOT 5
78.   #define HAND 6
79.   #define HANDED 7
80.   #define HEAD 8
81.   #define LEG 9
82.   #define LIGHT_HEADED 10
83.   #define NECK 11
84.   #define TOE 12
85.   #ifdef POLYSELF
86.   	int mh, mhmax, mtimedone, umonnum;	/* for polymorph-self */
87.   	struct attribs	macurr,			/* for monster attribs */
88.   			mamax;			/* for monster attribs */
89.   	int ulycn;				/* lycanthrope type */
90.   #endif
91.   	unsigned ucreamed;
92.   	unsigned uswallow;		/* set if swallowed by a monster */
93.   	unsigned uswldtim;		/* time you have been swallowed */
94.   #ifdef POLYSELF
95.   	Bitfield(uundetected,1);	/* if you're a hiding monster/piercer */
96.   #endif
97.   #if defined(THEOLOGY) && defined(ELBERETH)
98.   	Bitfield(uhand_of_elbereth,1);	/* if you become Hand of Elbereth */
99.   #endif
100.  #ifdef MEDUSA
101.  	Bitfield(ukilled_medusa,1);	/* if you kill the medusa */
102.  #endif
103.  	Bitfield(uhave_amulet,1);	/* you're carrying the Amulet */
104.  #ifdef HARD
105.  	Bitfield(udemigod,1);		/* once you kill the wiz */
106.  	unsigned udg_cnt;		/* how long you have been demigod */
107.  #endif
108.  	struct	attribs	acurr,		/* your current attributes (eg. str) */
109.  			abon,		/* your bonus attributes (eg. str) */
110.  			amax,		/* your max attributes (eg. str) */
111.  			atemp,		/* used for temporary loss/gain */
112.  			atime;		/* used for loss/gain countdown */
113.  #define U_CHAOTIC      -1		/* the value range of ualigntyp */
114.  #define U_NEUTRAL	0
115.  #define U_LAWFUL	1
116.  	int 	ualign;			/* running alignment score */
117.  	schar 	ualigntyp;		/* basic character alignment */
118.  #ifdef THEOLOGY
119.  #define CONVERT 	2
120.  	schar   ualignbase[CONVERT];	/* for ualigntyp conversion record */
121.  #endif
122.  	schar uluck, moreluck;		/* luck and luck bonus */
123.  #define	LUCKADD		3	/* added value when carrying luck stone */
124.  #define Luck	(u.uluck + u.moreluck)
125.  #define	LUCKMAX		10	/* on moonlit nights 11 */
126.  #define	LUCKMIN		(-10)
127.  	schar	udaminc;
128.  	schar	uac;
129.  	int	uhp,uhpmax;
130.  #ifdef SPELLS
131.  	int	uen, uenmax;		/* magical energy - M. Stephenson */
132.  #endif
133.  #ifdef THEOLOGY
134.  	int ugangr;			/* if the gods are angry at you */
135.  	int ublessed, ublesscnt;	/* blessing/duration from #pray */
136.  #endif
137.  	long	ugold, ugold0;
138.  	long	uexp, urexp;
139.  #ifdef ALTARS
140.  	long 	ucleansed;	/* to record moves when player was cleansed */
141.  #endif
142.  	int uinvault;
143.  	struct monst *ustuck;
144.  	int ugrave_arise; /* you die and become something aside from a ghost */
145.  	int nr_killed[NUMMONS]; 	/* used for experience bookkeeping */
146.  };
147.  
148.  #endif /* YOU_H /**/