abstract
| - Below is the full text to config.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.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.3 1999/08/16 */ 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. 49. /* 50. * Define the default window system. This should be one that is compiled 51. * into your system (see defines above). Known window systems are: 52. * 53. * tty, X11, mac, amii, Qt 54. */ 55. 56. /* MAC also means MAC windows */ 57. #ifdef MAC 58. # ifndef AUX 59. # define DEFAULT_WINDOW_SYS "mac" 60. # endif 61. #endif 62. 63. /* Amiga supports AMII_GRAPHICS and/or TTY_GRAPHICS */ 64. #ifdef AMIGA 65. # define AMII_GRAPHICS /* (optional) */ 66. # define DEFAULT_WINDOW_SYS "amii" /* "amii", "amitile" or "tty" */ 67. #endif 68. 69. #ifdef __BEOS__ 70. /* leave at tty graphics for now */ 71. /* # define DEFAULT_WINDOW_SYS "be" */ 72. #endif 73. 74. #ifdef QT_GRAPHICS 75. # define USE_XPM /* Use XPM format for images (required) */ 76. # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.ppm) */ 77. # ifndef DEFAULT_WINDOW_SYS 78. # define DEFAULT_WINDOW_SYS "Qt" 79. # endif 80. #endif 81. 82. #ifndef DEFAULT_WINDOW_SYS 83. # define DEFAULT_WINDOW_SYS "tty" 84. #endif 85. 86. #ifdef X11_GRAPHICS 87. /* 88. * There are two ways that X11 tiles may be defined. (1) using a custom 89. * format loaded by NetHack code, or (2) using the XPM format loaded by 90. * the free XPM library. The second option allows you to then use other 91. * programs to generate tiles files. For example, the PBMPlus tools 92. * would allow: 93. * xpmtoppm x11tiles_big.xpm 94. */ 95. /* # define USE_XPM */ /* Disable if you do not have the XPM library */ 96. # ifdef USE_XPM 97. # define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ 98. # endif 99. #endif 100. 101. 102. /* 103. * Section 2: Some global parameters and filenames. 104. * Commenting out WIZARD, LOGFILE, or NEWS removes that feature 105. * from the game; otherwise set the appropriate wizard name. 106. * LOGFILE and NEWS refer to files in the playground. 107. */ 108. 109. #ifndef WIZARD /* allow for compile-time or Makefile changes */ 110. # ifndef KR1ED 111. # define WIZARD "wizard" /* the person allowed to use the -D option */ 112. # else 113. # define WIZARD 114. # define WIZARD_NAME "wizard" 115. # endif 116. #endif 117. 118. #define LOGFILE "logfile" /* larger file for debugging purposes */ 119. #define NEWS "news" /* the file containing the latest hack news */ 120. 121. /* 122. * If COMPRESS is defined, it should contain the full path name of your 123. * 'compress' program. Defining INTERNAL_COMP causes NetHack to do 124. * simpler byte-stream compression internally. Both COMPRESS and 125. * INTERNAL_COMP create smaller bones/level/save files, but require 126. * additional code and time. Currently, only UNIX fully implements 127. * COMPRESS; other ports should be able to uncompress save files a 128. * la unixmain.c if so inclined. 129. * If you define COMPRESS, you must also define COMPRESS_EXTENSION 130. * as the extension your compressor appends to filenames after 131. * compression. 132. */ 133. 134. #ifdef UNIX 135. /* path and file name extension for compression program */ 136. #define COMPRESS "/usr/bin/compress" /* Lempel-Ziv compression */ 137. #define COMPRESS_EXTENSION ".Z" /* compress's extension */ 138. /* An example of one alternative you might want to use: */ 139. /* #define COMPRESS "/usr/local/bin/gzip" */ /* FSF gzip compression */ 140. /* #define COMPRESS_EXTENSION ".gz" */ /* normal gzip extension */ 141. #endif 142. 143. #ifndef COMPRESS 144. # define INTERNAL_COMP /* control use of NetHack's compression routines */ 145. #endif 146. 147. /* 148. * Data librarian. Defining DLB places most of the support files into 149. * a tar-like file, thus making a neater installation. See *conf.h 150. * for detailed configuration. 151. */ 152. /* #define DLB */ /* not supported on all platforms */ 153. 154. /* 155. * Defining INSURANCE slows down level changes, but allows games that 156. * died due to program or system crashes to be resumed from the point 157. * of the last level change, after running a utility program. 158. */ 159. #define INSURANCE /* allow crashed game recovery */ 160. 161. #ifndef MAC 162. # define CHDIR /* delete if no chdir() available */ 163. #endif 164. 165. #ifdef CHDIR 166. /* 167. * If you define HACKDIR, then this will be the default playground; 168. * otherwise it will be the current directory. 169. */ 170. # ifndef HACKDIR 171. # define HACKDIR "/usr/games/lib/nethackdir" /* nethack directory */ 172. # endif 173. 174. /* 175. * Some system administrators are stupid enough to make Hack suid root 176. * or suid daemon, where daemon has other powers besides that of reading or 177. * writing Hack files. In such cases one should be careful with chdir's 178. * since the user might create files in a directory of his choice. 179. * Of course SECURE is meaningful only if HACKDIR is defined. 180. */ 181. /* #define SECURE */ /* do setuid(getuid()) after chdir() */ 182. 183. /* 184. * If it is desirable to limit the number of people that can play Hack 185. * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. 186. * #define MAX_NR_OF_PLAYERS 6 187. */ 188. #endif /* CHDIR */ 189. 190. 191. 192. /* 193. * Section 3: Definitions that may vary with system type. 194. * For example, both schar and uchar should be short ints on 195. * the AT&T 3B2/3B5/etc. family. 196. */ 197. 198. /* 199. * Uncomment the following line if your compiler doesn't understand the 200. * 'void' type (and thus would give all sorts of compile errors without 201. * this definition). 202. */ 203. /* #define NOVOID */ /* define if no "void" data type. */ 204. 205. /* 206. * Uncomment the following line if your compiler falsely claims to be 207. * a standard C compiler (i.e., defines __STDC__ without cause). 208. * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc. 209. */ 210. /* #define NOTSTDC */ /* define for lying compilers */ 211. 212. #include "tradstdc.h" 213. 214. /* 215. * type schar: small signed integers (8 bits suffice) (eg. TOS) 216. * 217. * typedef char schar; 218. * 219. * will do when you have signed characters; otherwise use 220. * 221. * typedef short int schar; 222. */ 223. #ifdef AZTEC 224. # define schar char 225. #else 226. typedef signed char schar; 227. #endif 228. 229. /* 230. * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not) 231. * 232. * typedef unsigned char uchar; 233. * 234. * will be satisfactory if you have an "unsigned char" type; 235. * otherwise use 236. * 237. * typedef unsigned short int uchar; 238. */ 239. #ifndef _AIX32 /* identical typedef in system file causes trouble */ 240. typedef unsigned char uchar; 241. #endif 242. 243. /* 244. * Various structures have the option of using bitfields to save space. 245. * If your C compiler handles bitfields well (e.g., it can initialize structs 246. * containing bitfields), you can define BITFIELDS. Otherwise, the game will 247. * allocate a separate character for each bitfield. (The bitfields used never 248. * have more than 7 bits, and most are only 1 bit.) 249. */ 250. #define BITFIELDS /* Good bitfield handling */ 251. 252. /* #define STRNCMPI */ /* compiler/library has the strncmpi function */ 253. 254. /* 255. * There are various choices for the NetHack vision system. There is a 256. * choice of two algorithms with the same behavior. Defining VISION_TABLES 257. * creates huge (60K) tables at compile time, drastically increasing data 258. * size, but runs slightly faster than the alternate algorithm. (MSDOS in 259. * particular cannot tolerate the increase in data size; other systems can 260. * flip a coin weighted to local conditions.) 261. * 262. * If VISION_TABLES is not defined, things will be faster if you can use 263. * MACRO_CPATH. Some cpps, however, cannot deal with the size of the 264. * functions that have been macroized. 265. */ 266. 267. /* #define VISION_TABLES */ /* use vision tables generated at compile time */ 268. #ifndef VISION_TABLES 269. # ifndef NO_MACRO_CPATH 270. # define MACRO_CPATH /* use clear_path macros instead of functions */ 271. # endif 272. #endif 273. 274. /* 275. * Section 4: THE FUN STUFF!!! 276. * 277. * Conditional compilation of special options are controlled here. 278. * If you define the following flags, you will add not only to the 279. * complexity of the game but also to the size of the load module. 280. */ 281. 282. /* dungeon features */ 283. #define SINKS /* Kitchen sinks - Janet Walz */ 284. /* dungeon levels */ 285. #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */ 286. #define REINCARNATION /* Special Rogue-like levels */ 287. /* monsters & objects */ 288. #define KOPS /* Keystone Kops by Scott R. Turner */ 289. #define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */ 290. #define STEED /* Riding steeds */ 291. #define TOURIST /* Tourist players with cameras and Hawaiian shirts */ 292. /* difficulty */ 293. #define ELBERETH /* Engraving the E-word repels monsters */ 294. /* I/O */ 295. #define REDO /* support for redoing last command - DGK */ 296. #if !defined(MAC) 297. # define CLIPPING /* allow smaller screens -- ERS */ 298. #endif 299. 300. #ifdef REDO 301. # define DOAGAIN '\001' /* ^A, the "redo" key used in cmd.c and getline.c */ 302. #endif 303. 304. #define EXP_ON_BOTL /* Show experience on bottom line */ 305. /* #define SCORE_ON_BOTL */ /* added by Gary Erickson (erickson@ucivax) */ 306. 307. #include "global.h" /* Define everything else according to choices above */ 308. 309. #endif /* CONFIG_H */
|