Source:NetHack 3.4.0/config.h

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

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

1.   /*	SCCS Id: @(#)config.h	3.4	2002/03/17	*/ 2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3.    /* NetHack may be freely redistributed. See license for details. */ 4.     5.    #ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice */ 6.   #define CONFIG_H 7.    8.     9.    /*  10.    * Section 1:	Operating and window systems selection. 11.   *		Select the version of the OS you are using. 12.   *		For "UNIX" select BSD, ULTRIX, SYSV, or HPUX in unixconf.h.  13. *		A "VMS" option is not needed since the VMS C-compilers 14.   *		provide it (no need to change sec#1, vmsconf.h handles it). 15.   */  16.    17.   #define UNIX		/* delete if no fork, exec available */ 18.   19.   /* #define MSDOS */	/* in case it's not auto-detected */ 20.   21.   /* #define OS2 */	/* define for OS/2 */ 22.   23.   /* #define TOS */	/* define for Atari ST/TT */ 24.   25.   /* #define STUPID */	/* avoid some complicated expressions if  26. your C compiler chokes on them */ 27.  /* #define MINIMAL_TERM */ 28.  			/* if a terminal handles highlighting or tabs poorly, 29.  			   try this define, used in pager.c and termcap.c */ 30.  /* #define ULTRIX_CC20 */ 31.  			/* define only if using cc v2.0 on a DECstation */ 32.  /* #define ULTRIX_PROTO */ 33.  			/* define for Ultrix 4.0 (or higher) on a DECstation; 34.  			 * if you get compiler errors, don't define this. */ 35.   			/* Hint: if you're not developing code, don't define 36.  			   ULTRIX_PROTO. */ 37.    38.   #include "config1.h"	/* should auto-detect MSDOS, MAC, AMIGA, and WIN32 */ 39.   40.    41.   /* Windowing systems...  42. * Define all of those you want supported in your binary. 43.   * Some combinations make no sense. See the installation document. 44.   */  45.   #define TTY_GRAPHICS	/* good old tty based graphics */ 46.  /* #define X11_GRAPHICS */	/* X11 interface */ 47.  /* #define QT_GRAPHICS */	/* Qt interface */ 48.  /* #define GNOME_GRAPHICS */	/* Gnome interface */ 49.  /* #define MSWIN_GRAPHICS */	/* Windows NT, CE, Graphics */ 50.   51.   /*  52.    * Define the default window system. This should be one that is compiled 53.   * into your system (see defines above). Known window systems are: 54.   *  55.    *	tty, X11, mac, amii, BeOS, Qt, Gem, Gnome 56.   */  57.    58.   /* MAC also means MAC windows */ 59.  #ifdef MAC 60.  # ifndef	AUX 61.  #  define DEFAULT_WINDOW_SYS "mac" 62.  # endif 63.  #endif 64.   65.   /* Amiga supports AMII_GRAPHICS and/or TTY_GRAPHICS */ 66.  #ifdef AMIGA 67.  # define AMII_GRAPHICS			/* (optional) */ 68.  # define DEFAULT_WINDOW_SYS "amii"	/* "amii", "amitile" or "tty" */ 69.  #endif 70.   71.   /* Atari supports GEM_GRAPHICS and/or TTY_GRAPHICS */ 72.  #ifdef TOS 73.  # define GEM_GRAPHICS			/* Atari GEM interface (optional) */ 74.  # define DEFAULT_WINDOW_SYS "Gem"	/* "Gem" or "tty" */ 75.  #endif 76.   77.   #ifdef __BEOS__ 78.  #define BEOS_GRAPHICS /* (optional) */ 79.  #define DEFAULT_WINDOW_SYS "BeOS"  /* "tty" */ 80.  #ifndef HACKDIR	/* override the default hackdir below */ 81.  # define HACKDIR "/boot/apps/NetHack" 82.  #endif 83.  #endif 84.   85.   #ifdef QT_GRAPHICS 86.  # define USER_SOUNDS		/* Use sounds */ 87.  # define USE_XPM		/* Use XPM format for images (required) */ 88.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.ppm) */ 89.  # ifndef DEFAULT_WINDOW_SYS 90.  #  define DEFAULT_WINDOW_SYS "Qt" 91.  # endif 92.  #endif 93.   94.   #ifdef GNOME_GRAPHICS 95.  # define USE_XPM		/* Use XPM format for images (required) */ 96.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.ppm) */ 97.  # ifndef DEFAULT_WINDOW_SYS 98.  #  define DEFAULT_WINDOW_SYS "Gnome" 99.  # endif 100. #endif 101.  102.  #ifdef MSWIN_GRAPHICS 103. # ifdef TTY_GRAPHICS 104. # undef TTY_GRAPHICS 105. # endif 106. # ifndef DEFAULT_WINDOW_SYS 107. #  define DEFAULT_WINDOW_SYS "mswin" 108. # endif 109. # define HACKDIR "\\nethack" 110. #endif 111.  112.  #ifndef DEFAULT_WINDOW_SYS 113. # define DEFAULT_WINDOW_SYS "tty" 114. #endif 115.  116.  #ifdef X11_GRAPHICS 117. /*  118.   * There are two ways that X11 tiles may be defined. (1) using a custom 119.  * format loaded by NetHack code, or (2) using the XPM format loaded by  120. * the free XPM library. The second option allows you to then use other 121.  * programs to generate tiles files. For example, the PBMPlus tools 122.  * would allow: 123.  *  xpmtoppm x11tiles_big.xpm 124.  */  125.  /* # define USE_XPM */		/* Disable if you do not have the XPM library */ 126. # ifdef USE_XPM 127. #  define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.xpm) */ 128. # endif 129. #endif 130.  131.   132.  /*  133.   * Section 2:	Some global parameters and filenames. 134.  *		Commenting out WIZARD, LOGFILE, or NEWS removes that feature 135.  *		from the game; otherwise set the appropriate wizard name. 136.  *		LOGFILE and NEWS refer to files in the playground. 137.  */  138.   139.  #ifndef WIZARD		/* allow for compile-time or Makefile changes */ 140. # ifndef KR1ED 141. #  define WIZARD  "wizard" /* the person allowed to use the -D option */ 142. # else 143. #  define WIZARD 144. #  define WIZARD_NAME "wizard" 145. # endif 146. #endif 147.  148.  #define LOGFILE "logfile"	/* larger file for debugging purposes */ 149. #define NEWS "news"		/* the file containing the latest hack news */ 150.  151.  /*  152.   *	If COMPRESS is defined, it should contain the full path name of your 153.  *	'compress' program. Defining INTERNAL_COMP causes NetHack to do 154. *	simpler byte-stream compression internally. Both COMPRESS and 155.  *	INTERNAL_COMP create smaller bones/level/save files, but require 156.  *	additional code and time. Currently, only UNIX fully implements 157.  *	COMPRESS; other ports should be able to uncompress save files a  158. *	la unixmain.c if so inclined. 159.  *	If you define COMPRESS, you must also define COMPRESS_EXTENSION 160.  *	as the extension your compressor appends to filenames after 161.  *	compression. 162.  */  163.   164.  #ifdef UNIX 165. /* path and file name extension for compression program */ 166. #define COMPRESS "/usr/bin/compress"	/* Lempel-Ziv compression */ 167. #define COMPRESS_EXTENSION ".Z"		/* compress's extension */ 168. /* An example of one alternative you might want to use: */ 169. /* #define COMPRESS "/usr/local/bin/gzip" */	/* FSF gzip compression */ 170. /* #define COMPRESS_EXTENSION ".gz" */		/* normal gzip extension */ 171. #endif 172.  173.  #ifndef COMPRESS 174. # define INTERNAL_COMP	/* control use of NetHack's compression routines */ 175. #endif 176.  177.  /*  178.   *	Data librarian. Defining DLB places most of the support files into 179.  *	a tar-like file, thus making a neater installation. See *conf.h 180. *	for detailed configuration. 181.  */  182.  /* #define DLB */	/* not supported on all platforms */ 183.  184.  /*  185.   *	Defining INSURANCE slows down level changes, but allows games that 186.  *	died due to program or system crashes to be resumed from the point 187.  *	of the last level change, after running a utility program. 188.  */  189.  #define INSURANCE	/* allow crashed game recovery */ 190.  191.  #ifndef MAC 192. # define CHDIR		/* delete if no chdir available */ 193. #endif 194.  195.  #ifdef CHDIR 196. /*  197.   * If you define HACKDIR, then this will be the default playground; 198.  * otherwise it will be the current directory. 199.  */  200.  # ifndef HACKDIR 201. #  ifdef __APPLE__ 202. #    define HACKDIR "nethackdir"	/* nethack directory */ 203. #  else 204. #    define HACKDIR "/usr/games/lib/nethackdir" 205. #  endif 206. # endif 207.  208.  /*  209.   * Some system administrators are stupid enough to make Hack suid root 210.  * or suid daemon, where daemon has other powers besides that of reading or  211. * writing Hack files. In such cases one should be careful with chdir's 212. * since the user might create files in a directory of his choice. 213.  * Of course SECURE is meaningful only if HACKDIR is defined. 214.  */  215.  /* #define SECURE */	/* do setuid(getuid) after chdir */ 216.  217.  /*  218.   * If it is desirable to limit the number of people that can play Hack 219.  * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. 220.  * #define MAX_NR_OF_PLAYERS 6 221.  */  222.  #endif /* CHDIR */ 223.  224.   225.   226.  /*  227.   * Section 3:	Definitions that may vary with system type. 228.  *		For example, both schar and uchar should be short ints on  229. *		the AT&T 3B2/3B5/etc. family. 230.  */  231.   232.  /*  233.   * Uncomment the following line if your compiler doesn't understand the 234.  * 'void' type (and thus would give all sorts of compile errors without  235.   * this definition). 236.  */  237.  /* #define NOVOID */			/* define if no "void" data type. */ 238.   239.  /*  240.   * Uncomment the following line if your compiler falsely claims to be  241. * a standard C compiler (i.e., defines __STDC__ without cause). 242.  * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc. 243.  */  244.  /* #define NOTSTDC */			/* define for lying compilers */ 245.  246.  #include "tradstdc.h"  247. 248. /*  249.   * type schar: small signed integers (8 bits suffice) (eg. TOS) 250.  *  251.   *	typedef char	schar; 252.  *  253.   *	will do when you have signed characters; otherwise use 254.  *  255.   *	typedef short int schar; 256.  */  257.  #ifdef AZTEC 258. # define schar	char 259. #else 260. typedef signed char	schar; 261. #endif 262.  263.  /*  264.   * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not) 265.  *  266.   *	typedef unsigned char	uchar; 267.  *  268.   *	will be satisfactory if you have an "unsigned char" type; 269.  *	otherwise use 270.  *  271.   *	typedef unsigned short int uchar; 272.  */  273.  #ifndef _AIX32		/* identical typedef in system file causes trouble */ 274. typedef unsigned char	uchar; 275. #endif 276.  277.  /*  278.   * Various structures have the option of using bitfields to save space. 279.  * If your C compiler handles bitfields well (e.g., it can initialize structs  280.   * containing bitfields), you can define BITFIELDS. Otherwise, the game will 281.  * allocate a separate character for each bitfield. (The bitfields used never 282.   * have more than 7 bits, and most are only 1 bit.) 283.  */  284.  #define BITFIELDS	/* Good bitfield handling */ 285.  286.  /* #define STRNCMPI */	/* compiler/library has the strncmpi function */ 287.  288.  /*  289.   * There are various choices for the NetHack vision system. There is a 290. * choice of two algorithms with the same behavior. Defining VISION_TABLES 291.  * creates huge (60K) tables at compile time, drastically increasing data 292.  * size, but runs slightly faster than the alternate algorithm. (MSDOS in 293.   * particular cannot tolerate the increase in data size; other systems can  294.   * flip a coin weighted to local conditions.) 295.  *  296.   * If VISION_TABLES is not defined, things will be faster if you can use 297.  * MACRO_CPATH. Some cpps, however, cannot deal with the size of the 298.  * functions that have been macroized. 299.  */  300.   301.  /* #define VISION_TABLES */ /* use vision tables generated at compile time */ 302. #ifndef VISION_TABLES 303. # ifndef NO_MACRO_CPATH 304. #  define MACRO_CPATH	/* use clear_path macros instead of functions */ 305. # endif 306. #endif 307.  308.  /*  309.   * Section 4:  THE FUN STUFF!!! 310.  *  311.   * Conditional compilation of special options are controlled here. 312.  * If you define the following flags, you will add not only to the 313.  * complexity of the game but also to the size of the load module. 314.  */  315.   316.  /* dungeon features */ 317. #define SINKS		/* Kitchen sinks - Janet Walz */ 318. /* dungeon levels */ 319. #define WALLIFIED_MAZE	/* Fancy mazes - Jean-Christophe Collet */ 320. #define REINCARNATION	/* Special Rogue-like levels */ 321. /* monsters & objects */ 322. #define KOPS		/* Keystone Kops by Scott R. Turner */ 323. #define SEDUCE		/* Succubi/incubi seduction, by KAA, suggested by IM */ 324. #define STEED		/* Riding steeds */ 325. #define TOURIST		/* Tourist players with cameras and Hawaiian shirts */ 326. /* difficulty */ 327. #define ELBERETH	/* Engraving the E-word repels monsters */ 328. /* I/O */ 329. #define REDO		/* support for redoing last command - DGK */ 330. #if !defined(MAC) 331. # define CLIPPING	/* allow smaller screens -- ERS */ 332. #endif 333.  334.  #ifdef REDO 335. # define DOAGAIN '\001' /* ^A, the "redo" key used in cmd.c and getline.c */ 336. #endif 337.  338.  #define EXP_ON_BOTL	/* Show experience on bottom line */ 339. /* #define SCORE_ON_BOTL */	/* added by Gary Erickson (erickson@ucivax) */ 340.  341.  /*  342.   * Section 5:  EXPERIMENTAL STUFF 343.  *  344.   * Conditional compilation of new or experimental options are controlled here. 345.  * Enable any of these at your own risk -- there are almost certainly 346.  * bugs left here. 347.  */  348.   349.  /*#define GOLDOBJ */	/* Gold is kept on obj chains - Helge Hafting */ 350.  351.  /* End of Section 5 */ 352.  353.  #include "global.h"	/* Define everything else according to choices above */ 354.  355.  #endif /* CONFIG_H */