Source:NetHack 2.3e/decl.c

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to decl.c from the source code of NetHack 2.3e.

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

Screenshots and source code from Hack are used under the CWI license.

1.    /*	SCCS Id: @(#)decl.c	2.3	87/12/16
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    
4.    #include	"hack.h"
5.    char nul[40];			/* contains zeros */
6.    char plname[PL_NSIZ];		/* player name */
7.    
8.    #ifdef GRAPHICS
9.    struct symbols defsyms = {
10.       ' ', '|', '-', '-', '-', '-', '-', '+', '.', '#', '<', '>', '^',
11.   # ifdef FOUNTAINS
12.       '}', '{',
13.   # endif
14.   # ifdef NEWCLASS
15.       '\\',
16.   # endif
17.   # ifdef SPIDERS
18.       '"',
19.   # endif
20.   #ifdef SINKS
21.       '#',
22.   #endif
23.   };
24.   
25.   struct symbols showsyms;	/* will contain the symbols actually used */
26.   
27.   #endif	/* GRAPHICS /**/
28.   
29.   #ifdef DGK
30.   char hackdir[PATHLEN];		/* where rumors, help, record are */
31.   char levels[PATHLEN];		/* where levels are */
32.   char lock[FILENAME];		/* pathname of level files */
33.   char permbones[PATHLEN];	/* where permanent copy of bones go */
34.   int ramdisk = FALSE;		/* whether to copy bones to levels or not */
35.   int saveprompt = TRUE;
36.   char *alllevels = "levels.*";
37.   char *allbones = "bones.*";
38.   char *configfile = "NetHack.cnf";	/* read by read_config_file() */
39.   #else
40.   char lock[PL_NSIZ+4] = "1lock";		/* long enough for login name .99 */
41.   #endif
42.   
43.   boolean in_mklev, restoring;
44.   struct rm levl[COLNO][ROWNO];		/* level map */
45.   
46.   #ifndef QUEST
47.   #include "mkroom.h"
48.   struct mkroom rooms[MAXNROFROOMS+1];
49.   coord doors[DOORMAX];
50.   #endif
51.   
52.   struct monst *fmon = 0;
53.   struct trap *ftrap = 0;
54.   struct gold *fgold = 0;
55.   struct obj *fobj = 0, *fcobj = 0, *invent = 0, *uwep = 0, *uarm = 0,
56.   #ifdef SHIRT
57.           *uarmu = 0,		/* under-wear, so to speak */
58.   #endif
59.   	*uarm2 = 0, *uarmh = 0, *uarms = 0, *uarmg = 0, *uright = 0,
60.   	*uleft = 0, *uchain = 0, *uball = 0;
61.   struct flag flags;
62.   struct you u;
63.   
64.   #ifdef SPELLS
65.   struct spell spl_book[MAXSPELL + 1];
66.   #endif
67.   
68.   struct monst youmonst;	/* dummy; used as return value for boomhit */
69.   
70.   xchar dlevel = 1;
71.   xchar xupstair, yupstair, xdnstair, ydnstair;
72.   char *save_cm = 0, *killer, *nomovemsg;
73.   
74.   long moves = 1;
75.   long wailmsg = 0;
76.   int multi = 0;
77.   char	*occtxt;
78.   #ifdef DGKMOD
79.   int	occtime;
80.   #endif
81.   #ifdef REDO
82.   int	in_doagain = FALSE;
83.   #endif
84.   
85.   char *HI, *HE;		/* set up in termcap.c */
86.   #ifdef MSDOSCOLOR
87.   char *HI_MON, *HI_OBJ;	/* set up in termcap.c */
88.   #endif
89.   
90.   char genocided[60];
91.   char fut_geno[60];
92.   #ifdef KAA
93.   boolean	stoned;				/* done to monsters hit by 'c' */
94.   boolean	unweapon;
95.   #endif
96.    
97.   xchar curx,cury;
98.   xchar seelx, seehx, seely, seehy;	/* corners of lit room */
99.   
100.  coord bhitpos;
101.  
102.  char quitchars[] = " \r\n\033";