Source:NetHack 3.0.0/global.h

From NetHackWiki
Revision as of 04:41, 4 March 2008 by Kernigh bot (talk | contribs) (NetHack 3.0.0/global.h moved to Source:NetHack 3.0.0/global.h: Robot: moved page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Below is the full text to global.h from the source code of NetHack 3.0.0. To link to a particular line, write [[NetHack 3.0.0/global.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: @(#)global.h	3.0	89/07/12
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef GLOBAL_H
6.    #define	GLOBAL_H
7.    
8.    #include <stdio.h>
9.    
10.   
11.   /* #define BETA		/* if a beta-test copy  [MRS] */
12.   #define VERSION	"3.0e"	/* version number. */
13.   
14.   /*
15.    * Files expected to exist in the playground directory.
16.    */
17.   
18.   #define RECORD	"record"  /* the file containing the list of topscorers */
19.   #define	HELP	"help"	  /* the file containing command descriptions */
20.   #define	SHELP	"hh"	  /* abbreviated form of the same */
21.   #define	RUMORFILE	"rumors"	/* a file with fortune cookies */
22.   #define ORACLEFILE	"oracles"	/* a file with oracular information */
23.   #define	DATAFILE	"data"	/* a file giving the meaning of symbols used */
24.   #define CMDHELPFILE	"cmdhelp"	/* file telling what commands do */
25.   #define HISTORY		"history"	/* a file giving nethack's history */
26.   #define LICENSE		"license"	/* file with license information */
27.   #define OPTIONFILE	"opthelp"	/* a file explaining runtime options */
28.   
29.   
30.   
31.   /* Assorted definitions that may depend on selections in config.h. */
32.   
33.   /*
34.    * for DUMB preprocessor and compiler, e.g., cpp and pcc supplied
35.    * with Microport SysV/AT, which have small symbol tables;
36.    * DUMB if needed is defined in CFLAGS
37.    */
38.   #ifdef DUMB
39.   #ifdef BITFIELDS
40.   #undef BITFIELDS
41.   #endif
42.   #ifndef STUPID
43.   #define STUPID
44.   #endif
45.   #ifndef STUPID_CPP
46.   #define STUPID_CPP
47.   #endif
48.   #endif	/* DUMB */
49.   
50.   /*
51.    * type xchar: small integers in the range 0 - 127, usually coordinates
52.    * although they are nonnegative they must not be declared unsigned
53.    * since otherwise comparisons with signed quantities are done incorrectly
54.    */
55.   typedef schar	xchar;
56.   typedef	xchar	boolean;		/* 0 or 1 */
57.   
58.   #define	TRUE	((boolean)1)
59.   #define	FALSE	((boolean)0)
60.   
61.   #ifdef BITFIELDS
62.   #define	Bitfield(x,n)	unsigned x:n
63.   #else
64.   #define	Bitfield(x,n)	uchar x
65.   #endif
66.   
67.   
68.   #define	SIZE(x)	(int)(sizeof(x) / sizeof(x[0]))
69.   
70.   /* (No, LARGEST_INT doesn't have to correspond to the largest integer on
71.    * a particular machine.)
72.    */
73.   #define LARGEST_INT	((1 << 15) - 1)
74.   
75.   
76.   #ifdef STRONGHOLD
77.   # ifdef ALTARS
78.   #  ifdef THEOLOGY
79.   #define ENDGAME
80.   #  endif
81.   # endif
82.   #endif
83.   
84.   #ifdef REDO
85.   #define Getchar pgetchar
86.   #endif
87.   
88.   /*
89.    * Automatic inclusions for the subsidiary files.
90.    * Please don't change the order.  It does matter.
91.    */
92.   
93.   #ifndef COORD_H
94.   #include "coord.h"
95.   #endif
96.   #if defined(UNIX) && !defined(UNIXCONF_H)
97.   # include "unixconf.h"
98.   #endif
99.   
100.  #if defined(MSDOS) && !defined(PCCONF_H)
101.  # include "pcconf.h"
102.  #endif
103.  
104.  #if defined(TOS) && !defined(TOSCONF_H)
105.  # include "tosconf.h"
106.  #endif
107.  
108.  #if defined(AMIGA) && !defined(AMICONF_H)
109.  # include "amiconf.h"
110.  #endif
111.  
112.  
113.  
114.  /*
115.   * Configurable internal parameters.
116.   *
117.   * Please be very careful if you are going to change one of these.  Any
118.   * changes in these parameters, unless properly done, can render the
119.   * executable inoperative.
120.   */
121.  
122.  /* size of terminal screen is (at least) (ROWNO+3) by COLNO */
123.  #define	COLNO	80
124.  #define	ROWNO	21
125.  
126.  #define	MAXNROFROOMS	20	/* max number of rooms per level */
127.  #define	DOORMAX		120	/* max number of doors per level */
128.  
129.  #define	BUFSZ		256	/* for getlin buffers */
130.  
131.  #define	PL_NSIZ		32	/* name of player, ghost, shopkeeper */
132.  #define	PL_CSIZ		20	/* sizeof pl_character */
133.  #define PL_FSIZ		32	/* fruit name */
134.  
135.  #define	MAXLEVEL	50	/* max number of levels in the dungeon */
136.  #ifdef ENDGAME
137.  #define ENDLEVEL (MAXLEVEL+1)	/* endgame level */
138.  #endif
139.  #define HELLLEVEL	30	/* first hell level (varies ifdef STRONGHOLD) */
140.  #define	MAXULEV		30	/* max character experience level */
141.  
142.  #define	MAXMONNO	120	/* geno monst after this number killed */
143.  #define MHPMAX		500	/* maximum monster hp */
144.  
145.  #endif /* GLOBAL_H /**/