Wikia

Wikihack

Source:SLASH'EM 0.0.7E7F2/config.h

2,032pages on
this wiki
Talk0

Below is the full text to config.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/config.h#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.
1.    /*	SCCS Id: @(#)config.h	3.4	2003/12/06	*/
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.    #undef SHORT_FILENAMES
9.    
10.   
11.   /*#define DEBUG*/
12.   /*#define DDEBUG*/
13.   /*#define MONITOR_HEAP*/
14.   #if defined(MONITOR_HEAP) && (defined(UNIX) || defined(WIN32))
15.   #define INTERNAL_MALLOC		/* Use internal malloc implementation */
16.   #endif
17.   
18.   /*
19.    * Section 1:	Operating and window systems selection.
20.    *		Select the version of the OS you are using.
21.    *		For "UNIX" select BSD, ULTRIX, SYSV, or HPUX in unixconf.h.
22.    *		A "VMS" option is not needed since the VMS C-compilers
23.    *		provide it (no need to change sec#1, vmsconf.h handles it).
24.    */
25.   
26.   #define UNIX		/* delete if no fork(), exec() available */
27.   
28.   /* #define MSDOS */	/* in case it's not auto-detected */
29.     
30.   /* #define OS2 */	/* in case it's not auto-detected */
31.     
32.   /* #define TOS */	/* define for Atari ST/TT */
33.     
34.   /* #define STUPID */	/* avoid some complicated expressions if
35.     			   your C compiler chokes on them */
36.   /* #define MINIMAL_TERM */
37.   			/* if a terminal handles highlighting or tabs poorly,
38.     			   try this define, used in pager.c and termcap.c */
39.   /* #define ULTRIX_CC20 */
40.   			/* define only if using cc v2.0 on a DECstation */
41.   /* #define ULTRIX_PROTO */
42.   			/* define for Ultrix 4.0 (or higher) on a DECstation;
43.     			 * if you get compiler errors, don't define this. */
44.     			/* Hint: if you're not developing code, don't define
45.     			   ULTRIX_PROTO. */
46.     
47.   #include "config1.h"	/* should auto-detect MSDOS, MAC, AMIGA, WIN32 and OS2 */
48.     
49.   /* Windowing systems...
50.    * Define all of those you want supported in your binary.
51.    * Some combinations make no sense.  See the installation document.
52.    */
53.   #define TTY_GRAPHICS		/* good old tty based graphics */
54.   /* #define X11_GRAPHICS */	/* X11 interface */
55.   /* #define QT_GRAPHICS */	/* Qt Interface */
56.   /* #define KDE */		/* KDE Interface */
57.   /* #define GTK_GRAPHICS */	/* GTK Interface */
58.   /* #define GNOME_GRAPHICS */	/* Gnome interface */
59.   /* #define PROXY_GRAPHICS */	/* Plug-in interfaces */
60.   /* #define MSWIN_GRAPHICS */	/* Windows NT, CE, Graphics */
61.   /* #define GL_GRAPHICS */	/* OpenGL graphics */
62.   /* #define SDL_GRAPHICS */	/* Software SDL graphics */
63.   
64.   /*
65.    * Define the default window system.  This should be one that is compiled
66.    * into your system (see defines above).  Known window systems are:
67.    *
68.    *	tty, X11, mac, amii, BeOS, Qt, Gem, Gnome, gtk, proxy, GL, SDL
69.    */
70.   
71.   /* MAC also means MAC windows */
72.   #ifdef MAC
73.   # ifndef	AUX
74.   #  define DEFAULT_WINDOW_SYS "Mac"
75.   # endif
76.   #endif
77.   
78.   /* Amiga supports AMII_GRAPHICS and/or TTY_GRAPHICS */
79.   #ifdef AMIGA
80.   # define AMII_GRAPHICS			/* (optional) */
81.   # define DEFAULT_WINDOW_SYS "amii"	/* "amii", "amitile" or "tty" */
82.   #endif
83.   
84.   #if 0 /* Removed in 3.3.0 */
85.   /* Windows NT supports TTY_GRAPHICS */
86.   #ifdef WIN32
87.   #  define DEFAULT_WINDOW_SYS "tty"
88.   #endif
89.   #endif
90.   
91.   /* Atari supports GEM_GRAPHICS and/or TTY_GRAPHICS */
92.   #ifdef TOS
93.   # define GEM_GRAPHICS			/* Atari GEM interface (optional) */
94.   # define DEFAULT_WINDOW_SYS "Gem"	/* "Gem" or "tty" */
95.   #endif
96.   
97.   #ifdef __BEOS__
98.   #define BEOS_GRAPHICS /* (optional) */
99.   #define DEFAULT_WINDOW_SYS "BeOS"  /* "tty" */
100.  #ifndef HACKDIR	/* override the default hackdir below */
101.  # define HACKDIR "/boot/apps/NetHack"
102.  #endif
103.  #endif
104.  
105.  #ifdef QT_GRAPHICS
106.  # define DEFAULT_WC_TILED_MAP   /* Default to tiles if users doesn't say wc_ascii_map */
107.  # define USER_SOUNDS		/* Use sounds */
108.  # ifndef __APPLE__
109.  #  define USER_SOUNDS_REGEX
110.  # endif
111.  # define USE_XPM		/* Use XPM format for images (required) */
112.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.xpm) */
113.  # ifndef DEFAULT_WINDOW_SYS
114.  #  define DEFAULT_WINDOW_SYS "Qt"
115.  # endif
116.  #endif
117.  
118.  #ifdef GNOME_GRAPHICS
119.  # define USE_XPM		/* Use XPM format for images (required) */
120.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.ppm) */
121.  # ifndef DEFAULT_WINDOW_SYS
122.  #  define DEFAULT_WINDOW_SYS "Gnome"
123.  # endif
124.  #endif
125.  
126.  #ifdef GTK_GRAPHICS
127.  # define USE_XPM		/* Use XPM format for images (required) */
128.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.xpm) */
129.  /* # define GTK_PROXY */	/* Build for proxy interface */
130.  # ifndef DEFAULT_WINDOW_SYS
131.  #  define DEFAULT_WINDOW_SYS "gtk"
132.  # endif
133.  #endif
134.  
135.  #ifdef PROXY_GRAPHICS
136.  # define USE_XPM		/* Use XPM format for images */
137.  /*
138.   * The proxy interface shouldn't be used as the default window system.
139.   * This will cause it to always be initialized with undesirable side
140.   * effects. Instead, use the windowtype option.  --ALI
141.   */
142.  #endif
143.  
144.  #ifdef MSWIN_GRAPHICS
145.  # ifndef DEFAULT_WINDOW_SYS
146.  #  define DEFAULT_WINDOW_SYS "mswin"
147.  # endif
148.  # define HACKDIR "\\nethack"
149.  #endif
150.  
151.  #ifdef GL_GRAPHICS
152.  # ifndef DEFAULT_WINDOW_SYS
153.  #  define DEFAULT_WINDOW_SYS "GL"
154.  # endif
155.  #endif
156.  
157.  #ifdef SDL_GRAPHICS
158.  # ifndef DEFAULT_WINDOW_SYS
159.  #  define DEFAULT_WINDOW_SYS "SDL"
160.  # endif
161.  #endif
162.  
163.  #if defined(GL_GRAPHICS) || defined(SDL_GRAPHICS)
164.  # define GRAPHIC_TOMBSTONE     /* Use graphical tombstone */
165.  /* -AJA- workaround for clash with ZLIB headers */
166.  # if defined(VANILLA_GLHACK)
167.  #  define compress    nh_compress
168.  #  define uncompress  nh_uncompress
169.  # endif
170.  #endif
171.  
172.  #ifndef DEFAULT_WINDOW_SYS
173.  # define DEFAULT_WINDOW_SYS "tty"
174.  #endif
175.  
176.  #ifdef X11_GRAPHICS
177.  /*
178.   * There are two ways that X11 tiles may be defined.  (1) using a custom
179.   * format loaded by NetHack code, or (2) using the XPM format loaded by
180.   * the free XPM library.  The second option allows you to then use other
181.   * programs to generate tiles files.  For example, the PBMPlus tools
182.   * would allow:
183.   *  xpmtoppm <x11tiles.xpm | pnmscale 1.25 | pnmdepth 255 |
184.   *     ppmquant 90 | ppmtoxpm >x11tiles_big.xpm
185.   */
186.  /* # define USE_XPM */		/* Disable if you do not have the XPM library */
187.  # ifdef USE_XPM
188.  #  define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.xpm) */
189.  # endif
190.  #endif
191.  
192.  /*
193.   * Section 2:	Some global parameters and filenames.
194.   *		Commenting out WIZARD, LOGFILE, NEWS or PANICLOG removes that
195.   *		feature from the game; otherwise set the appropriate wizard
196.   *		name.  LOGFILE, NEWS and PANICLOG refer to files in the
197.   *		playground.
198.   */
199.  
200.  #ifndef WIZARD		/* allow for compile-time or Makefile changes */
201.  # ifndef KR1ED
202.  #  define WIZARD  "wizard" /* the person allowed to use the -D option */
203.  # else
204.  #  define WIZARD
205.  #  define WIZARD_NAME "wizard"
206.  # endif
207.  #endif
208.  
209.  #define LOGFILE "logfile"	/* larger file for debugging purposes */
210.  #define LOGAREA FILE_AREA_VAR
211.  #define NEWS "news"		/* the file containing the latest hack news */
212.  #define NEWS_AREA FILE_AREA_SHARE
213.  #define PANICLOG "paniclog"	/* log of panic and impossible events */
214.  
215.  /*
216.   *	If COMPRESS is defined, it should contain the full path name of your
217.   *	'compress' program.  Defining INTERNAL_COMP causes NetHack to do
218.   *	simpler byte-stream compression internally.  Both COMPRESS and
219.   *	INTERNAL_COMP create smaller bones/level/save files, but require
220.   *	additional code and time.  Currently, only UNIX fully implements
221.   *	COMPRESS; other ports should be able to uncompress save files a
222.   *	la unixmain.c if so inclined.
223.   *	If you define COMPRESS, you must also define COMPRESS_EXTENSION
224.   *	as the extension your compressor appends to filenames after
225.   *	compression.
226.   */
227.  
228.  #ifdef UNIX
229.  /* path and file name extension for compression program */
230.  # define COMPRESS "/usr/bin/compress" /* Lempel-Ziv compression */
231.  # define COMPRESS_EXTENSION ".Z"	     /* compress's extension */
232.  
233.  /* An example of one alternative you might want to use: */
234.  /* # define COMPRESS "/usr/local/bin/gzip" */   /* FSF gzip compression */
235.  /* # define COMPRESS_EXTENSION ".gz" */	     /* normal gzip extension */
236.  
237.  /* # define COMPRESS "/usr/bin/bzip2"	*//* bzip2 compression */
238.  /* # define COMPRESS_EXTENSION ".bz2"	*//* bzip2 extension */
239.  #endif
240.  #ifndef COMPRESS
241.  # define INTERNAL_COMP	/* control use of NetHack's compression routines */
242.  #endif
243.  
244.  /*
245.   *	Data librarian.  Defining DLB places most of the support files into
246.   *	a tar-like file, thus making a neater installation.  See *conf.h
247.   *	for detailed configuration.
248.   */
249.  /* #define DLB */             /* not supported on all platforms */
250.  
251.  /*
252.   *	Defining INSURANCE slows down level changes, but allows games that
253.   *	died due to program or system crashes to be resumed from the point
254.   *	of the last level change, after running a utility program.
255.   */
256.  #define INSURANCE	/* allow crashed game recovery */
257.  
258.  #ifndef MAC
259.  # define CHDIR		/* delete if no chdir() available */
260.  #endif
261.  
262.  #ifdef CHDIR
263.  /*
264.   * If you define HACKDIR, then this will be the default playground;
265.   * otherwise it will be the current directory.
266.   */
267.  # ifndef HACKDIR
268.  #  ifdef __APPLE__
269.  #    define HACKDIR "nethackdir"      /* nethack directory */
270.  #  else
271.  #    define HACKDIR "."
272.  #  endif
273.  # endif
274.  
275.  /*
276.   * Some system administrators are stupid enough to make Hack suid root
277.   * or suid daemon, where daemon has other powers besides that of reading or
278.   * writing Hack files.  In such cases one should be careful with chdir's
279.   * since the user might create files in a directory of his choice.
280.   * Of course SECURE is meaningful only if HACKDIR is defined.
281.   */
282.  /* #define SECURE */	/* do setuid(getuid()) after chdir() */
283.  
284.  /*
285.   * If it is desirable to limit the number of people that can play Hack
286.   * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS.
287.   * #define MAX_NR_OF_PLAYERS 6
288.   */
289.  #endif /* CHDIR */
290.  
291.  
292.  
293.  /*
294.   * Section 3:	Definitions that may vary with system type.
295.   *		For example, both schar and uchar should be short ints on
296.   *		the AT&T 3B2/3B5/etc. family.
297.   */
298.  
299.  /*
300.   * Uncomment the following line if your compiler doesn't understand the
301.   * 'void' type (and thus would give all sorts of compile errors without
302.   * this definition).
303.   */
304.  /* #define NOVOID */			/* define if no "void" data type. */
305.  
306.  /*
307.   * Uncomment the following line if your compiler falsely claims to be
308.   * a standard C compiler (i.e., defines __STDC__ without cause).
309.   * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc.
310.   */
311.  /* #define NOTSTDC */			/* define for lying compilers */
312.  
313.  #include "tradstdc.h"
314.  
315.  /*
316.   * type schar: small signed integers (8 bits suffice) (eg. TOS)
317.   *
318.   *	typedef char	schar;
319.   *
320.   *      will do when you have signed characters; otherwise use
321.   *
322.   *	typedef short int schar;
323.   */
324.  #ifdef AZTEC
325.  # define schar	char
326.  #else
327.  typedef signed char	schar;
328.  #endif
329.  
330.  /*
331.   * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not)
332.   *
333.   *	typedef unsigned char	uchar;
334.   *
335.   *	will be satisfactory if you have an "unsigned char" type;
336.   *	otherwise use
337.   *
338.   *	typedef unsigned short int uchar;
339.   */
340.  #ifndef _AIX32		/* identical typedef in system file causes trouble */
341.  typedef unsigned char	uchar;
342.  #endif
343.  
344.  #define RECORD_CONDUCT /* Record conduct challenges in logfile */
345.  
346.  /*
347.   * Various structures have the option of using bitfields to save space.
348.   * If your C compiler handles bitfields well (e.g., it can initialize structs
349.   * containing bitfields), you can define BITFIELDS.  Otherwise, the game will
350.   * allocate a separate character for each bitfield.  (The bitfields used never
351.   * have more than 7 bits, and most are only 1 bit.)
352.   */
353.  #define BITFIELDS	/* Good bitfield handling */
354.  
355.  /* #define STRNCMPI */ /* compiler/library has the strncmpi function */
356.  
357.  /*
358.   * There are various choices for the NetHack vision system.  There is a
359.   * choice of two algorithms with the same behavior.  Defining VISION_TABLES
360.   * creates huge (60K) tables at compile time, drastically increasing data
361.   * size, but runs slightly faster than the alternate algorithm.  (MSDOS in
362.   * particular cannot tolerate the increase in data size; other systems can
363.   * flip a coin weighted to local conditions.)
364.   *
365.   * If VISION_TABLES is not defined, things will be faster if you can use
366.   * MACRO_CPATH.  Some cpps, however, cannot deal with the size of the
367.   * functions that have been macroized.
368.   */
369.  /* WAC Can be defined under DJGPP,  even though it's DOS*/
370.  /*#define VISION_TABLES */ /* use vision tables generated at compile time */
371.  #ifndef VISION_TABLES
372.  # ifndef NO_MACRO_CPATH
373.  #  define MACRO_CPATH	/* use clear_path macros instead of functions */
374.  # endif
375.  #endif
376.  
377.  /*
378.   * Section 4:  THE FUN STUFF!!!
379.   *
380.   * Conditional compilation of special options are controlled here.
381.   * If you define the following flags, you will add not only to the
382.   * complexity of the game but also to the size of the load module.
383.   */
384.  
385.  /* dungeon features */
386.  #define SINKS		/* Kitchen sinks - Janet Walz */
387.  #define LIGHT_SRC_SPELL /* WAC Light sourced spells (wac@intergate.bc.ca)*/
388.  
389.  /* dungeon levels */
390.  #define WALLIFIED_MAZE	/* Fancy mazes - Jean-Christophe Collet */
391.  /* #define REINCARNATION */     /* Special Rogue-like levels */
392.  #define BLACKMARKET     /* Massimo Campostrini (campo@sunthpi3.difi.unipi.it) */
393.  
394.  /* monsters & objects */
395.  #define KOPS		/* Keystone Kops by Scott R. Turner */
396.  #define SEDUCE		/* Succubi/incubi seduction, by KAA, suggested by IM */
397.  #define INVISIBLE_OBJECTS /* Not yet fully implemented */
398.  #define UNPOLYPILE	/* WAC -- Items can unpolymorph */
399.  #define WALLET_O_P      /* Perseus' Wallet, and all related code (tsanth@iname.com)*/
400.  #define LIGHTSABERS
401.  #ifdef LIGHTSABERS
402.  # define D_SABER	/* Enable WEAPON(dimsaber), and all related code (tsanth@iname.com)*/
403.  #endif
404.  #define P_SPOON         /* Enable WEPTOOL(spoon), and all related code (tsanth@iname.com)*/
405.  #define FIREARMS	/* KMH -- Guns and bullets */
406.  #define EATEN_MEMORY	/* WAC -- Remember which monsters have been eaten */
407.  #define STEED		/* The ability to ride monsters */
408.  
409.  /* Roles */
410.  #define DWARF		/* Dwarf Patch, Osku Salerma (osku@iki.fi) */
411.  #define TOURIST		/* Tourist players with cameras and Hawaiian shirts */
412.  #define YEOMAN		/* KMH -- Yeoman class  */
413.  /* #define ZOUTHERN */	/* KMH -- Zoutherner class and its animals */
414.  
415.  /* I/O */
416.  #define REDO		/* support for redoing last command - DGK */
417.  #if !defined(MAC)
418.  # define CLIPPING	/* allow smaller screens -- ERS */
419.  #endif
420.  #ifdef TTY_GRAPHICS
421.  # define MENU_COLOR
422.  #endif
423.  
424.  #if defined(UNIX)
425.  #define USE_REGEX_MATCH
426.  /* if USE_REGEX_MATCH is defined, use regular expressions (GNU regex.h)
427.   * otherwise use pmatch() to match menu color lines.
428.   * pmatch() provides basic globbing: '*' and '?' wildcards.
429.   */
430.  #endif
431.  
432.  /* difficulty */
433.  #define ELBERETH	/* Engraving the E-word repels monsters */
434.  /* #define NOARTIFACTWISH */  /* No wishing for special artifacts -- swhite@cs.mun.ca */
435.  /* #define NO_BONES */	/*Disables loading and saving bones levels*/
436.  
437.  /* The following are best left disabled until their bugs are completely fixed */
438.  
439.  
440.  /* User_sounds are sounds matches with messages.  The messages are defined
441.   * in the player's .nethackrc using lines of the form:
442.   *
443.   * SOUND=MESG <message-regex-pattern> <sound-filename> <volume>
444.   *
445.   * For example:
446.   *
447.   * SOUND=MESG "board beneath .....* squeaks" "squeak.au" 60
448.   *
449.   * By default, the filenames are relative to the nethack install directory,
450.   * but this can be set in the .nethackrc via:
451.   *
452.   * SOUNDDIR=<directory>
453.   */
454.  /* #define USER_SOUNDS */   /* Allow user-defined regex mappings from messages to sounds */
455.                        /* Only supported on Qt with NAS - Network Audio System */
456.  
457.  
458.  #ifdef REDO
459.  # define DOAGAIN '\001'	/* ^A, the "redo" key used in cmd.c and getline.c */
460.  #endif
461.  
462.  #define EXP_ON_BOTL	/* Show experience on bottom line */
463.  /* #define SCORE_ON_BOTL */	/* added by Gary Erickson (erickson@ucivax) */
464.  /* #define BORG */            /* Works only under DOS */
465.  /* #define KEEP_SAVE */       /* Keep savefiles after Restore (wac@intergate.bc.ca)*/
466.  /* #define CHARON */	/* Charon's boat, enables Cerebus - not implemented */
467.  #define SHOW_DMG        /* WAC made dmg reports optional (wac@intergate.bc.ca)*/
468.  #define SHOW_WEIGHT     /* [max] added display of object weight when picking up */
469.                          /* and in inventory (madmax@fly.cc.fer.hr). */
470.                          /* Originally added by zaga. */
471.  #define OTHER_SERVICES  /* shopkeeper services */
472.  #define DUNGEON_GROWTH
473.  
474.  /* #define SHOUT */ /* JRN -- shouting and petcommands - not implemented */
475.  
476.  #define DISPLAY_LAYERS	/* Improved support for transparent tile sets - ALI */
477.  
478.  /*
479.   * Section 5:  EXPERIMENTAL STUFF
480.   *
481.   * Conditional compilation of new or experimental options are controlled here.
482.   * Enable any of these at your own risk -- there are almost certainly
483.   * bugs left here.
484.   */
485.  
486.  /*#define GOLDOBJ */	/* Gold is kept on obj chains - Helge Hafting */
487.  /*#define AUTOPICKUP_EXCEPTIONS */ /* exceptions to autopickup */
488.  
489.  /* End of Section 5 */
490.  
491.  #include "global.h"	/* Define everything else according to choices above */
492.  
493.  #endif /* CONFIG_H */

Around Wikia's network

Random Wiki