/* NetHack 3.7 windconf.h $NHDT-Date: 1596498552 2020/08/03 23:49:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.89 $ */ /* Copyright (c) NetHack PC Development Team 1993, 1994. */ /* NetHack may be freely redistributed. See license for details. */ #ifndef WINDCONF_H #define WINDCONF_H /* #define SHELL */ /* nt use of pcsys routines caused a hang */ #define EXEPATH /* Allow .exe location to be used as HACKDIR */ #define TRADITIONAL_GLYPHMAP /* Store glyph mappings at level change time */ #define LAN_FEATURES /* Include code for lan-aware features. Untested in \ 3.4.0*/ #define PC_LOCKING /* Prevent overwrites of aborted or in-progress games */ /* without first receiving confirmation. */ #define SELF_RECOVER /* Allow the game itself to recover from an aborted \ game */ #define SYSCF /* Use a global configuration */ #define SYSCF_FILE "sysconf" /* Use a file to hold the SYSCF configuration */ #ifdef DUMPLOG #define DUMPLOG_FILE "%TEMP%/nethack-%n-%d.log" #endif /*#define CHANGE_COLOR*/ /* allow palette changes */ #define QWERTZ_SUPPORT /* when swap_yz is True, numpad 7 is 'z' not 'y' */ #define OPTIONS_AT_RUNTIME /* build info done at runtime not text file */ #define EARLY_CONFIGFILE_PASS #define TTY_PERM_INVENT /* * ----------------------------------------------------------------- * The remaining code shouldn't need modification. * ----------------------------------------------------------------- */ /* #define SHORT_FILENAMES */ /* All NT filesystems support long names now */ #ifdef DLB #define VERSION_IN_DLB_FILENAME /* Append version digits to nhdat */ #endif #ifdef MICRO #undef MICRO /* never define this! */ #endif #define NOCWD_ASSUMPTIONS /* Always define this. There are assumptions that \ it is defined for WIN32. \ Allow paths to be specified for HACKDIR, \ LEVELDIR, SAVEDIR, BONESDIR, DATADIR, \ SCOREDIR, LOCKDIR, CONFIGDIR, and TROUBLEDIR */ #define NO_TERMS #define ASCIIGRAPH #ifdef OPTIONS_USED #undef OPTIONS_USED #endif #define OPTIONS_USED "options" #define OPTIONS_FILE OPTIONS_USED #define PORT_HELP "porthelp" #define PORT_DEBUG /* include ability to debug international keyboard issues \ */ #define RUNTIME_PORT_ID /* trigger run-time port identification for \ * identification of exe CPU architecture \ */ #define RUNTIME_PASTEBUF_SUPPORT #define SAFERHANGUP /* Define SAFERHANGUP to delay hangup processing \ * until the main command loop. 'safer' because it \ * avoids certain cheats and also avoids losing \ * objects being thrown when the hangup occurs. \ */ #define CONFIG_FILE ".nethackrc" #define CONFIG_TEMPLATE "nethackrc.template" #define SYSCF_TEMPLATE "sysconf.template" #define SYMBOLS_TEMPLATE "symbols.template" #define GUIDEBOOK_FILE "Guidebook.txt" /* Stuff to help the user with some common, yet significant errors */ #define INTERJECT_PANIC 0 #define INTERJECTION_TYPES (INTERJECT_PANIC + 1) extern void interject_assistance(int, int, genericptr_t, genericptr_t); extern void interject(int); extern char *windows_exepath(void); /* *=============================================== * Compiler-specific adjustments *=============================================== */ #ifdef __GNUC__ #define MD_USE_TMPFILE_S # #ifdef strncasecmp #undef strncasecmp #endif #ifdef strcasecmp #undef strcasecmp /* https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/ */ #endif /* extern int getlock(void); */ #endif /* __GNUC__ */ #ifdef _MSC_VER #define MD_USE_TMPFILE_S #define HAS_STDINT #if (_MSC_VER > 1000) /* Visual C 8 warning elimination */ #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE #endif #ifndef _SCL_SECURE_NO_DEPRECATE #define _SCL_SECURE_NO_DEPRECATE #endif #ifndef _CRT_NONSTDC_NO_DEPRECATE #define _CRT_NONSTDC_NO_DEPRECATE #endif #pragma warning(disable : 4996) /* VC8 deprecation warnings */ #pragma warning(disable : 4142) /* benign redefinition */ #pragma warning(disable : 4267) /* conversion from 'size_t' to XX */ #if (_MSC_VER > 1600) #pragma warning(disable : 4459) /* hide global declaration */ #endif /* _MSC_VER > 1600 */ #endif /* _MSC_VER > 1000 */ #pragma warning(disable : 4761) /* integral size mismatch in arg; conv \ supp*/ #ifdef YYPREFIX #pragma warning(disable : 4102) /* unreferenced label */ #endif #ifdef __cplusplus /* suppress a warning in cppregex.cpp */ #pragma warning(disable : 4101) /* unreferenced local variable */ #endif #ifndef HAS_STDINT_H #define HAS_STDINT_H /* force include of stdint.h in integer.h */ #endif /* Turn on some additional warnings */ #pragma warning(3:4389) /* supply ssize_t */ #include typedef SSIZE_T ssize_t; #endif /* _MSC_VER */ /* The following is needed for prototypes of certain functions */ #if defined(_MSC_VER) #include /* Provides prototypes of exit(), spawn() */ #endif #include /* Provides prototypes of strncmpi(), etc. */ #ifdef STRNCMPI #define strncmpi(a, b, c) strnicmp(a, b, c) #endif #include #ifdef __BORLANDC__ #undef randomize #undef random #endif #define PATHLEN BUFSZ /* maximum pathlength */ #define FILENAME BUFSZ /* maximum filename length (conservative) */ #if defined(_MAX_PATH) && defined(_MAX_FNAME) #if (_MAX_PATH < BUFSZ) && (_MAX_FNAME < BUFSZ) #undef PATHLEN #undef FILENAME #define PATHLEN _MAX_PATH #define FILENAME _MAX_FNAME #endif #endif #define NO_SIGNAL #define USE_STDARG /* Use the high quality random number routines. */ #ifdef USE_ISAAC64 #undef RANDOM #else #define RANDOM #define Rand() random() #endif /* Fall back to C's if nothing else, but this really isn't acceptable */ #if !defined(USE_ISAAC64) && !defined(RANDOM) #define Rand() rand() #endif #include #define FCMASK (_S_IREAD | _S_IWRITE) /* file creation mask */ #define regularize nt_regularize #define HLOCK "NHPERM" #ifndef M #define M(c) ((char) (0x80 | (c))) /* #define M(c) ((c) - 128) */ #endif #ifndef C #define C(c) (0x1f & (c)) #endif #if defined(DLB) || defined(_MSC_VER) #define FILENAME_CMP stricmp /* case insensitive */ #endif /* this was part of the MICRO stuff in the past */ extern const char *alllevels, *allbones; #define ABORT C('a') #define getuid() 1 #define getlogin() ((char *) 0) extern void win32_abort(void); extern void consoletty_preference_update(const char *); extern void toggle_mouse_support(void); extern void map_subkeyvalue(char *); extern void set_altkeyhandling(const char *); extern void raw_clear_screen(void); #include #ifndef __BORLANDC__ #include #include #else int _RTLENTRY _EXPFUNC access(const char _FAR *__path, int __amode); int _RTLENTRY _EXPFUNC _chdrive(int __drive); int _RTLENTRYF _EXPFUNC32 chdir(const char _FAR *__path); char _FAR *_RTLENTRY _EXPFUNC getcwd(char _FAR *__buf, int __buflen); int _RTLENTRY _EXPFUNC write(int __handle, const void _FAR *__buf, unsigned __len); int _RTLENTRY _EXPFUNC creat(const char _FAR *__path, int __amode); int _RTLENTRY _EXPFUNC close(int __handle); int _RTLENTRY _EXPFUNC _close(int __handle); int _RTLENTRY _EXPFUNC open(const char _FAR *__path, int __access, ... /*unsigned mode*/); long _RTLENTRY _EXPFUNC lseek(int __handle, long __offset, int __fromwhere); int _RTLENTRY _EXPFUNC read(int __handle, void _FAR *__buf, unsigned __len); #endif #undef kbhit /* Use our special NT kbhit */ #define kbhit (*nt_kbhit) #ifdef LAN_FEATURES #define MAX_LAN_USERNAME 20 #endif #ifndef alloca #define ALLOCA_HACK /* used in util/panic.c */ #endif extern int set_win32_option(const char *, const char *); #define LEFTBUTTON FROM_LEFT_1ST_BUTTON_PRESSED #define RIGHTBUTTON RIGHTMOST_BUTTON_PRESSED #define MIDBUTTON FROM_LEFT_2ND_BUTTON_PRESSED #define MOUSEMASK (LEFTBUTTON | RIGHTBUTTON | MIDBUTTON) #ifdef CHANGE_COLOR extern int alternative_palette(char *); #endif #define nethack_enter(argc, argv) nethack_enter_windows() extern boolean file_exists(const char *); extern boolean file_newer(const char *, const char *); #ifndef SYSTEM_H /* #include "system.h" */ #endif #if defined(WIN_CE) #define QSORTCALLBACK __cdecl #endif /* Override the default version of nhassert. The default version is unable * to generate a string form of the expression due to the need to be * compatible with compilers which do not support macro stringization (i.e. * #x to turn x into its string form). */ extern void nt_assert_failed(const char *, const char *, int); #define nhassert(expression) (void)((!!(expression)) || \ (nt_assert_failed(#expression, __FILE__, __LINE__), 0)) #endif /* WINDCONF_H */