1 /* NetHack 3.7 config.h $NHDT-Date: 1610141601 2021/01/08 21:33:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.148 $ */ 2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3 /*-Copyright (c) Robert Patrick Rankin, 2016. */ 4 /* NetHack may be freely redistributed. See license for details. */ 5 6 #ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice */ 7 #define CONFIG_H 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 * MacOSX uses the UNIX configuration, not the old MAC one. 16 */ 17 18 #define UNIX /* delete if no fork(), exec() available */ 19 20 /* #define MSDOS */ /* in case it's not auto-detected */ 21 22 /* #define OS2 */ /* define for OS/2 */ 23 24 /* #define TOS */ /* define for Atari ST/TT */ 25 26 /* #define STUPID */ /* avoid some complicated expressions if 27 your C compiler chokes on them */ 28 /* #define MINIMAL_TERM */ 29 /* if a terminal handles highlighting or tabs poorly, 30 try this define, used in pager.c and termcap.c */ 31 /* #define ULTRIX_CC20 */ 32 /* define only if using cc v2.0 on a DECstation */ 33 /* #define ULTRIX_PROTO */ 34 /* define for Ultrix 4.0 (or higher) on a DECstation; 35 * if you get compiler errors, don't define this. */ 36 /* Hint: if you're not developing code, don't define 37 ULTRIX_PROTO. */ 38 39 #include "config1.h" /* should auto-detect MSDOS, MAC, AMIGA, and WIN32 */ 40 41 /* 42 * Consolidated version, patchlevel, development status. 43 */ 44 #ifdef SHORT_FILENAMES 45 #include "patchlev.h" 46 #else 47 #include "patchlevel.h" 48 #endif 49 50 51 /* Windowing systems... 52 * Define all of those you want supported in your binary. 53 * Some combinations make no sense. See the installation document. 54 */ 55 #if !defined(NOTTYGRAPHICS) 56 #define TTY_GRAPHICS /* good old tty based graphics */ 57 #endif 58 /* #define CURSES_GRAPHICS *//* Curses interface - Karl Garrison*/ 59 /* #define X11_GRAPHICS */ /* X11 interface */ 60 /* #define QT_GRAPHICS */ /* Qt interface */ 61 /* #define MSWIN_GRAPHICS */ /* Windows NT, CE, Graphics */ 62 63 /* 64 * Define the default window system. This should be one that is compiled 65 * into your system (see defines above). Known window systems are: 66 * 67 * tty, X11, mac, amii, BeOS, Qt, Gem, Gnome, shim 68 */ 69 70 /* MAC also means MAC windows */ 71 #ifdef MAC 72 #ifndef AUX 73 #define DEFAULT_WINDOW_SYS "mac" 74 #endif 75 #endif 76 77 /* Amiga supports AMII_GRAPHICS and/or TTY_GRAPHICS */ 78 #ifdef AMIGA 79 #define AMII_GRAPHICS /* (optional) */ 80 #define DEFAULT_WINDOW_SYS "amii" /* "amii", "amitile" or "tty" */ 81 #endif 82 83 /* Atari supports GEM_GRAPHICS and/or TTY_GRAPHICS */ 84 #ifdef TOS 85 #define GEM_GRAPHICS /* Atari GEM interface (optional) */ 86 #define DEFAULT_WINDOW_SYS "Gem" /* "Gem" or "tty" */ 87 #endif 88 89 #ifdef __BEOS__ 90 #define BEOS_GRAPHICS /* (optional) */ 91 #define DEFAULT_WINDOW_SYS "BeOS" /* "tty" */ 92 #ifndef HACKDIR /* override the default hackdir below */ 93 #define HACKDIR "/boot/apps/NetHack" 94 #endif 95 #endif 96 97 #ifdef QT_GRAPHICS 98 #ifndef DEFAULT_WC_TILED_MAP 99 #define DEFAULT_WC_TILED_MAP /* Default to tiles if users doesn't say \ 100 wc_ascii_map */ 101 #endif 102 #ifndef NOUSER_SOUNDS 103 #define USER_SOUNDS /* Use sounds */ 104 #endif 105 #ifndef USE_XPM 106 #define USE_XPM /* Use XPM format for images (required) */ 107 #endif 108 #ifndef GRAPHIC_TOMBSTONE 109 #define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.ppm) */ 110 #endif 111 #ifndef DEFAULT_WINDOW_SYS 112 #define DEFAULT_WINDOW_SYS "Qt" 113 #endif 114 #endif 115 116 #ifdef GNOME_GRAPHICS 117 #ifndef USE_XPM 118 #define USE_XPM /* Use XPM format for images (required) */ 119 #endif 120 #ifndef GRAPHIC_TOMBSTONE 121 #define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.ppm) */ 122 #endif 123 #ifndef DEFAULT_WINDOW_SYS 124 #define DEFAULT_WINDOW_SYS "Gnome" 125 #endif 126 #endif 127 128 #ifdef MSWIN_GRAPHICS 129 #ifndef DEFAULT_WINDOW_SYS 130 #define DEFAULT_WINDOW_SYS "mswin" 131 #endif 132 #define HACKDIR "\\xnethack" 133 #endif 134 135 #ifdef TTY_GRAPHICS 136 #ifndef DEFAULT_WINDOW_SYS 137 #define DEFAULT_WINDOW_SYS "tty" 138 #endif 139 #endif 140 141 #ifdef CURSES_GRAPHICS 142 #ifndef DEFAULT_WINDOW_SYS 143 #define DEFAULT_WINDOW_SYS "curses" 144 #endif 145 #endif 146 147 #ifdef SHIM_GRAPHICS 148 #ifndef DEFAULT_WINDOW_SYS 149 #define DEFAULT_WINDOW_SYS "shim" 150 #endif 151 #endif 152 153 #ifdef X11_GRAPHICS 154 /* 155 * There are two ways that X11 tiles may be defined. (1) using a custom 156 * format loaded by NetHack code, or (2) using the XPM format loaded by 157 * the free XPM library. The second option allows you to then use other 158 * programs to generate tiles files. For example, the PBMPlus tools 159 * would allow: 160 * xpmtoppm <x11tiles.xpm | pnmscale 1.25 | ppmquant 90 >x11tiles_big.xpm 161 */ 162 /* # define USE_XPM */ /* Disable if you do not have the XPM library */ 163 #ifdef USE_XPM 164 #ifndef GRAPHIC_TOMBSTONE 165 #define GRAPHIC_TOMBSTONE /* Use graphical tombstone (rip.xpm) */ 166 #endif 167 #endif 168 #ifndef DEFAULT_WC_TILED_MAP 169 #define DEFAULT_WC_TILED_MAP /* Default to tiles */ 170 #endif 171 #endif 172 173 /* 174 * Section 2: Some global parameters and filenames. 175 * 176 * LOGFILE, XLOGFILE, LIVELOGFILE, NEWS and PANICLOG refer to 177 * files in the playground directory. Commenting out LOGFILE, 178 * XLOGFILE, LIVELOGFILE, NEWS or PANICLOG removes that feature 179 * from the game. 180 * 181 * Building with debugging features enabled is now unconditional; 182 * the old WIZARD setting for that has been eliminated. 183 * If SYSCF is enabled, WIZARD_NAME will be overridden at 184 * runtime by the SYSCF WIZARDS value. 185 * 186 * SYSCF: (not supported by all ports) 187 * If SYSCF is defined, the following configuration info is 188 * available in a global config space, with the compiled-in 189 * entries as defaults: 190 * WIZARDS (a space-separated list of usernames of users who 191 * can run the game in debug mode, aka wizard mode; 192 * a value of * allows anyone to debug; 193 * this does NOT default to compiled-in value) 194 * EXPLORERS (who can use explore mode, aka discover mode) 195 * SHELLERS (who can use ! to execute a shell subprocess) 196 * MAXPLAYERS (see MAX_NR_OF_PLAYERS below and nethack.sh) 197 * SUPPORT (how to get local support) [no default] 198 * RECOVER (how to recover a game at your site) [no default] 199 * For the record file (see topten.c): 200 * PERSMAX (max entries for one person) 201 * ENTRYMAX (max entries in the record file) 202 * POINTSMIN (min points to get an entry) 203 * PERS_IS_UID (0 or 1 - person is name or (numeric) userid) 204 * Can force incubi/succubi behavior to be toned down to nymph-like: 205 * SEDUCE (0 or 1 - runtime disable/enable SEDUCE option) 206 * Live-logging 207 * LIVELOG (0-0xFFFF - bitmask for level/type of live-logging 208 * See comments in 'sysconf' for details) 209 * The following options pertain to crash reporting: 210 * GREPPATH (the path to the system grep(1) utility) 211 * GDBPATH (the path to the system gdb(1) program) 212 * Regular nethack options can also be specified in order to 213 * provide system-wide default values local to your system: 214 * OPTIONS (same as in users' .xnethackrc or defaults.nh) 215 * 216 * In the future there may be other ways to supply SYSCF 217 * information (Windows registry, Apple resource forks, etc) 218 * but at present the only supported method is via a text file. 219 * If the program is built with SYSCF enabled, the file *must* 220 * exist and be readable, otherwise the game will complain and 221 * refuse to start. 222 * SYSCF_FILE: file containing the SYSCF options shown above; 223 * default is 'sysconf' in nethack's playground. 224 */ 225 226 #ifndef WIZARD_NAME /* allow for compile-time or Makefile changes */ 227 #define WIZARD_NAME "wizard" /* value is ignored if SYSCF is enabled */ 228 #endif 229 230 #ifndef SYSCF 231 #define SYSCF /* use a global configuration */ 232 #define SYSCF_FILE "sysconf" /* global configuration is in a file */ 233 #endif 234 235 #ifndef GDBPATH 236 #define GDBPATH "/usr/bin/gdb" 237 #endif 238 #ifndef GREPPATH 239 #define GREPPATH "/bin/grep" 240 #endif 241 242 /* note: "larger" is in comparison with 'record', the high-scores file 243 (whose name can be overridden via #define in global.h if desired) */ 244 #define LOGFILE "logfile" /* larger file for debugging purposes */ 245 #define XLOGFILE "xlogfile" /* even larger logfile */ 246 #define NEWS "news" /* the file containing the latest hack news */ 247 #define PANICLOG "paniclog" /* log of panic and impossible events */ 248 249 /* alternative paniclog format, better suited for public servers with 250 many players, as it saves the player name and the game start time */ 251 /* #define PANICLOG_FMT2 */ 252 253 /* 254 * PERSMAX, POINTSMIN, ENTRYMAX, PERS_IS_UID: 255 * These control the contents of 'record', the high-scores file. 256 * They used to be located in topten.c rather than config.h, and 257 * their values can be overridden at runtime (to increase ENTRYMAX, the 258 * maximum number of scores to keep, for example) if SYSCF is enabled. 259 */ 260 #ifndef PERSMAX 261 #define PERSMAX 3 /* entries per name/uid per char. allowed */ 262 #endif 263 #ifndef POINTSMIN 264 #define POINTSMIN 1 /* must be > 0 */ 265 #endif 266 #ifndef ENTRYMAX 267 #define ENTRYMAX 100 /* must be >= 10 */ 268 #endif 269 #ifndef PERS_IS_UID 270 #if !defined(MICRO) && !defined(MAC) && !defined(WIN32) 271 #define PERS_IS_UID 1 /* delete for PERSMAX per name; now per uid */ 272 #else 273 #define PERS_IS_UID 0 274 #endif 275 #endif 276 277 /* 278 * If COMPRESS is defined, it should contain the full path name of your 279 * 'compress' program. 280 * 281 * If you define COMPRESS, you must also define COMPRESS_EXTENSION 282 * as the extension your compressor appends to filenames after 283 * compression. Currently, only UNIX fully implements 284 * COMPRESS; other ports should be able to uncompress save files a 285 * la unixmain.c if so inclined. 286 * 287 * Defining ZLIB_COMP builds in support for zlib compression. If you 288 * define ZLIB_COMP, you must link with a zlib library. Not all ports 289 * support ZLIB_COMP. 290 * 291 * COMPRESS and ZLIB_COMP are mutually exclusive. 292 * 293 */ 294 295 #if defined(UNIX) && !defined(ZLIB_COMP) && !defined(COMPRESS) 296 /* path and file name extension for compression program */ 297 /* #define COMPRESS "/usr/bin/compress" */ /* Lempel-Ziv compression */ 298 /* #define COMPRESS_EXTENSION ".Z" */ /* compress's extension */ 299 /* An example of one alternative you might want to use: */ 300 #define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */ 301 #define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ 302 #endif 303 304 #ifndef COMPRESS 305 /* # define ZLIB_COMP */ /* ZLIB for compression */ 306 #endif 307 308 /* 309 * Internal Compression Options 310 * 311 * Internal compression options RLECOMP and ZEROCOMP alter the data 312 * that gets written to the save file by NetHack, in contrast 313 * to COMPRESS or ZLIB_COMP which compress the entire file after 314 * the NetHack data is written out. 315 * 316 * Defining RLECOMP builds in support for internal run-length 317 * compression of level structures. If RLECOMP support is included 318 * it can be toggled on/off at runtime via the config file option 319 * rlecomp. 320 * 321 * Defining ZEROCOMP builds in support for internal zero-comp 322 * compression of data. If ZEROCOMP support is included it can still 323 * be toggled on/off at runtime via the config file option zerocomp. 324 * 325 * RLECOMP and ZEROCOMP support can be included even if 326 * COMPRESS or ZLIB_COMP support is included. One reason for doing 327 * so would be to provide savefile read compatibility with a savefile 328 * where those options were in effect. With RLECOMP and/or ZEROCOMP 329 * defined, NetHack can read an rlecomp or zerocomp savefile in, yet 330 * re-save without them. 331 * 332 * Using any compression option will create smaller bones/level/save 333 * files at the cost of additional code and time. 334 */ 335 336 /* # define INTERNAL_COMP */ /* defines both ZEROCOMP and RLECOMP */ 337 /* # define ZEROCOMP */ /* Support ZEROCOMP compression */ 338 /* # define RLECOMP */ /* Support RLECOMP compression */ 339 340 /* 341 * Data librarian. Defining DLB places most of the support files into 342 * a tar-like file, thus making a neater installation. See *conf.h 343 * for detailed configuration. 344 */ 345 /* #define DLB */ /* not supported on all platforms */ 346 347 /* 348 * Defining REPRODUCIBLE_BUILD causes 'util/makedefs -v' to construct 349 * date+time in include/date.h (to be shown by nethack's 'v' command) 350 * from SOURCE_DATE_EPOCH in the build environment rather than use 351 * current date+time when makedefs is run. 352 * 353 * [The version string will show "last revision <date><time>" instead 354 * of "last build <date><time>" if SOURCE_DATE_EPOCH has a value 355 * which seems valid at the time date.h is generated. The person 356 * building the program is responsible for setting it correctly, 357 * and the value should be in UTC rather than local time. NetHack 358 * normally uses local time and doesn't display timezone so toggling 359 * REPRODUCIBLE_BUILD on or off might yield a date+time that appears 360 * to be incorrect relative to what the other setting produced.] 361 * 362 * Intent is to be able to rebuild the program with the same value 363 * and obtain an identical copy as was produced by a previous build. 364 * Not necessary for normal game play.... 365 */ 366 /* #define REPRODUCIBLE_BUILD */ /* use getenv("SOURCE_DATE_EPOCH") instead 367 of current time when creating date.h */ 368 369 /* 370 * Defining INSURANCE slows down level changes, but allows games that 371 * died due to program or system crashes to be resumed from the point 372 * of the last level change, after running a utility program. 373 */ 374 #define INSURANCE /* allow crashed game recovery */ 375 376 #ifndef MAC 377 #define CHDIR /* delete if no chdir() available */ 378 #endif 379 380 #ifdef CHDIR 381 /* 382 * If you define HACKDIR, then this will be the default playground; 383 * otherwise it will be the current directory. 384 */ 385 #ifndef HACKDIR 386 #define HACKDIR "/usr/local/share/xnethack" 387 #endif 388 389 /* 390 * Some system administrators are stupid enough to make Hack suid root 391 * or suid daemon, where daemon has other powers besides that of reading or 392 * writing Hack files. In such cases one should be careful with chdir's 393 * since the user might create files in a directory of his choice. 394 * Of course SECURE is meaningful only if HACKDIR is defined. 395 */ 396 /* #define SECURE */ /* do setuid(getuid()) after chdir() */ 397 398 /* 399 * If it is desirable to limit the number of people that can play Hack 400 * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS (or use 401 * MAXPLAYERS under SYSCF). 402 * #define MAX_NR_OF_PLAYERS 6 403 */ 404 #endif /* CHDIR */ 405 406 /* 407 * Section 3: Definitions that may vary with system type. 408 * For example, both schar and uchar should be short ints on 409 * the AT&T 3B2/3B5/etc. family. 410 */ 411 412 /* 413 * Uncomment the following line if your compiler doesn't understand the 414 * 'void' type (and thus would give all sorts of compile errors without 415 * this definition). 416 */ 417 /* #define NOVOID */ /* define if no "void" data type. */ 418 419 /* 420 * Uncomment the following line if your compiler falsely claims to be 421 * a standard C compiler (i.e., defines __STDC__ without cause). 422 * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc. 423 */ 424 /* #define NOTSTDC */ /* define for lying compilers */ 425 426 #include "tradstdc.h" 427 428 /* 429 * type schar: 430 * small signed integers (8 bits suffice) (eg. TOS) 431 * typedef char schar; 432 * will do when you have signed characters; otherwise use 433 * typedef short int schar; 434 */ 435 #ifdef AZTEC 436 #define schar char 437 #else 438 typedef signed char schar; 439 #endif 440 441 /* 442 * type uchar: 443 * small unsigned integers (8 bits suffice - but 7 bits do not) 444 * typedef unsigned char uchar; 445 * will be satisfactory if you have an "unsigned char" type; otherwise use 446 * typedef unsigned short int uchar; 447 */ 448 #ifndef _AIX32 /* identical typedef in system file causes trouble */ 449 typedef unsigned char uchar; 450 #endif 451 452 /* 453 * Various structures have the option of using bitfields to save space. 454 * If your C compiler handles bitfields well (e.g., it can initialize structs 455 * containing bitfields), you can define BITFIELDS. Otherwise, the game will 456 * allocate a separate character for each bitfield. (The bitfields used never 457 * have more than 7 bits, and most are only 1 bit.) 458 */ 459 #define BITFIELDS /* Good bitfield handling */ 460 461 /* #define STRNCMPI */ /* compiler/library has the strncmpi function */ 462 463 /* 464 * Vision choices. 465 * 466 * Things will be faster if you can use MACRO_CPATH. Some cpps, however, 467 * cannot deal with the size of the functions that have been macroized. 468 */ 469 470 #ifndef NO_MACRO_CPATH 471 #define MACRO_CPATH /* use clear_path macros instead of functions */ 472 #endif 473 474 #if !defined(MAC) 475 #if !defined(NOCLIPPING) 476 #define CLIPPING /* allow smaller screens -- ERS */ 477 #endif 478 #endif 479 480 /* The "repeat" key used in cmd.c as NHKF_DOAGAIN; if commented out or the 481 * value is changed from C('A') to 0, it won't be bound to any keystroke 482 * unless you use the run-time configuration file's BIND directive for it. 483 * [Note: C() macro isn't defined yet but it will be before DOAGAIN is used.] 484 */ 485 #define DOAGAIN C('A') /* repeat previous command; default is ^A, '\001' */ 486 487 /* CONFIG_ERROR_SECURE: If user makes NETHACKOPTIONS point to a file ... 488 * TRUE: Show the first error, nothing else. 489 * FALSE: Show all errors as normal, with line numbers and context. 490 */ 491 #ifndef CONFIG_ERROR_SECURE 492 # define CONFIG_ERROR_SECURE TRUE 493 #endif 494 495 /* 496 * Section 4: EXPERIMENTAL STUFF 497 * 498 * Conditional compilation of new or experimental options are controlled here. 499 * Enable any of these at your own risk -- there are almost certainly 500 * bugs left here. 501 */ 502 503 /* SELECTSAVED: Enable the 'selectsaved' run-time option, allowing it 504 * to be set in user's config file or NETHACKOPTIONS. When set, if 505 * player is about to be given the "who are you?" prompt, check for 506 * save files and if any are found, put up a menu of them for choosing 507 * one to restore (plus extra menu entries "new game" and "quit"). 508 * 509 * Not useful if players are forced to use a specific character name 510 * such as their user name. However in some cases, players can set 511 * their character name to one which is classified as generic in the 512 * sysconf file (such as "player" or "games") 513 * nethack -u player 514 * to force the "who are you?" prompt in which case 'selectsaved' will 515 * be honored. 516 * 517 * Comment out if the wildcard file name lookup in files.c doesn't 518 * compile or doesn't work as intended. 519 */ 520 #define SELECTSAVED /* support for restoring via menu */ 521 522 /* TTY_TILES_ESCCODES: Enable output of special console escape codes 523 * which act as hints for external programs such as EbonHack, or hterm. 524 * 525 * TTY_SOUND_ESCCODES: Enable output of special console escape codes 526 * which act as hints for theoretical external programs to play sound effect. 527 * 528 * Only for TTY_GRAPHICS. 529 * 530 * All of the escape codes are in the format ESC [ N z, where N can be 531 * one or more positive integer values, separated by semicolons. 532 * For example ESC [ 1 ; 0 ; 120 z 533 * 534 * Possible TTY_TILES_ESCCODES codes are: 535 * ESC [ 1 ; 0 ; n ; m z Start a glyph (aka a tile) number n, with flags m 536 * ESC [ 1 ; 1 z End a glyph. 537 * ESC [ 1 ; 2 ; n z Select a window n to output to. 538 * ESC [ 1 ; 3 z End of data. NetHack has finished sending data, 539 * and is waiting for input. 540 * Possible TTY_SOUND_ESCCODES codes are: 541 * ESC [ 1 ; 4 ; n ; m z Play specified sound n, volume m 542 * 543 * Whenever NetHack outputs anything, it will first output the "select window" 544 * code. Whenever NetHack outputs a tile, it will first output the "start 545 * glyph" code, then the escape codes for color and the glyph character 546 * itself, and then the "end glyph" code. 547 * 548 * To compile NetHack with this, add tile.c to WINSRC and tile.o to WINOBJ 549 * in the hints file or Makefile. 550 * Set boolean option vt_xdata in your config file to turn either of these on. 551 * Note that gnome-terminal at least doesn't work with this. */ 552 /* #define TTY_TILES_ESCCODES */ 553 /* #define TTY_SOUND_ESCCODES */ 554 555 /* NetHack will execute an external program whenever a new message-window 556 * message is shown. The program to execute is given in environment variable 557 * NETHACK_MSGHANDLER. It will get the message as the only parameter. 558 * Only available with POSIX_TYPES or GNU C */ 559 /* #define MSGHANDLER */ 560 561 /* enable status highlighting via STATUS_HILITE directives in run-time 562 config file and the 'statushilites' option */ 563 #define STATUS_HILITES /* support hilites of status fields */ 564 565 /* #define WINCHAIN */ /* stacked window systems */ 566 567 /* #define DEBUG_MIGRATING_MONS */ /* add a wizard-mode command to help debug 568 migrating monsters */ 569 570 /* SCORE_ON_BOTL is neither experimental nor inadequately tested, 571 but doesn't seem to fit in any other section... */ 572 /* #define SCORE_ON_BOTL */ /* enable the 'showscore' option to 573 show estimated score on status line */ 574 575 /* FREE_ALL_MEMORY is neither experimental nor inadequately tested, 576 but it isn't necessary for successful operation of the program */ 577 #define FREE_ALL_MEMORY /* free all memory at exit */ 578 579 /* Extra enhancements borrowed from nao343 and elsewhere for dgamelaunch-based 580 * server play. If you're not running a server, you probably don't need any of 581 * these features. 582 * DGAMELAUNCH doesn't mean anything in nethack itself, it's just a handy 583 * compile-time toggle switch for all server-specfic features. */ 584 /* #define DGAMELAUNCH */ 585 586 #ifdef DGAMELAUNCH 587 588 /* Livelogging: writing important events into a file that another program can 589 * read from. By default, the name of this file is LIVELOGFILE in the 590 * playground. */ 591 #define LIVELOG_ENABLE 592 #ifdef LIVELOG_ENABLE 593 #define LIVELOGFILE "livelog" /* in-game events recorded live */ 594 #ifdef LIVELOGFILE 595 /* LL_flags defined in global.h. Value below is ignored if SYSCF is enabled */ 596 /* #define LIVELOG_DETAIL (LL_WISH | LL_ACHIEVE | LL_UMONST) */ 597 #define LIVELOG_DETAIL 0x1FFF 598 #endif 599 #endif /* LIVELOG_ENABLE */ 600 601 /* Extrainfo contains some brief bits of information that are useful to show in 602 * a menu listing games that are currently in play on a server */ 603 #define EXTRAINFO_FN "/dgldir/extrainfo-xnh/%n.extrainfo" 604 605 /* How many moves between checking for more incoming mail. */ 606 #define MAILCKFREQ 5 /* SIMPLE_MAIL is in unixconf.h */ 607 608 /* Write out player's current location to player.whereis */ 609 #define WHEREIS_FILE "whereis/%n.whereis" 610 611 #endif /* DGAMELAUNCH */ 612 613 /* End-of-game dump logs showing the map, messages, stats, identified 614 * possessions, vanquished monsters, etc. */ 615 #ifndef DUMPLOG 616 #define DUMPLOG 617 #endif 618 619 /* EXTRA_SANITY_CHECKS adds extra impossible calls, 620 * probably not useful for normal play */ 621 /* #define EXTRA_SANITY_CHECKS */ 622 623 /* BREADCRUMBS employs the use of predefined compiler macros 624 * __FUNCTION__ and __LINE__ to store some caller breadcrumbs 625 * for use during heavy debugging sessions. Only define if your 626 * compiler supports those predefined macros and you are debugging */ 627 /* #define BREADCRUMBS */ 628 629 /* EDIT_GETLIN makes the string input in TTY, curses, Qt4, and X11 630 for some prompts be pre-loaded with previously input text (from 631 a previous instance of the same prompt) as the default response. 632 In some cases, the previous instance can only be within the same 633 session; in others, such as #annotate, the previous input can be 634 from any session because the response is saved and restored with 635 the map. The 'edit' capability is just <delete> or <backspace> 636 to strip off characters at the end, or <escape> to discard the 637 whole thing, then type a new end for the text. */ 638 /* #define EDIT_GETLIN */ 639 640 #if defined(DUMPLOG) || defined(DUMPHTML) 641 642 #ifndef DUMPLOG_MSG_COUNT 643 #define DUMPLOG_MSG_COUNT 50 644 #endif 645 646 #ifdef DUMPLOG 647 648 #ifndef DUMPLOG_FILE 649 #define DUMPLOG_FILE "/tmp/xnethack.%v.%u.%n.%D.log" 650 /* DUMPLOG_FILE allows following placeholders: 651 %% literal '%' 652 %v version (eg. "3.6.3-0") 653 %u game UID 654 %t game start time, UNIX timestamp format 655 %T current time, UNIX timestamp format 656 %d game start time, YYYYMMDDhhmmss format 657 %D current time, YYYYMMDDhhmmss format 658 %n player name 659 %N first character of player name 660 DUMPLOG_FILE is not used if SYSCF is defined 661 */ 662 #endif 663 664 #endif /* DUMPLOG */ 665 666 #ifdef DUMPHTML 667 668 #ifndef DUMPHTML_FILE 669 #define DUMPHTML_FILE "/tmp/xnethack.%n.%d.html" 670 /* Placeholders as above 671 * DUMPHTML_FILE is not used if SYSCF is defiined 672 */ 673 674 #endif 675 676 #endif /* DUMPHTML */ 677 678 #endif /* DUMPLOG || DUMPHTML */ 679 680 #define USE_ISAAC64 /* Use cross-plattform, bundled RNG */ 681 682 /* End of Section 4 */ 683 684 #ifdef TTY_TILES_ESCCODES 685 # ifndef USE_TILES 686 # define USE_TILES 687 # endif 688 #endif 689 690 #include "global.h" /* Define everything else according to choices above */ 691 692 #endif /* CONFIG_H */ 693