NHDT->ANH, in most cases
[aNetHack.git] / include / wceconf.h
blob73ea2e6aa206334c977ce64e10803a9e015097f4
1 /* NetHack 3.6 wceconf.h $ANH-Date: 1432512776 2015/05/25 00:12:56 $ $ANH-Branch: master $:$ANH-Revision: 1.22 $ */
2 /* Copyright (C) 2001 by Alex Kompel */
3 /* NetHack may be freely redistributed. See license for details. */
5 #ifndef WCECONF_H
6 #define WCECONF_H
8 #pragma warning(disable : 4142) /* benign redefinition of type */
10 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
12 #include <windows.h>
14 /* Detect the target device */
15 #if defined(WIN32_PLATFORM_PSPC)
16 #if _WIN32_WCE >= 300
17 #define WIN_CE_POCKETPC
18 #else
19 #define WIN_CE_PS2xx
20 #endif
21 #elif defined(WIN32_PLATFORM_HPCPRO)
22 #define WIN_CE_HPCPRO
23 #elif defined(WIN32_PLATFORM_WFSP)
24 #define WIN_CE_SMARTPHONE
25 #else
26 #error "Unsupported Windows CE platform"
27 #endif
29 /* #define SHELL /* nt use of pcsys routines caused a hang */
31 #define RANDOM /* have Berkeley random(3) */
32 #define TEXTCOLOR /* Color text */
34 #define EXEPATH /* Allow .exe location to be used as HACKDIR */
35 #define TRADITIONAL_GLYPHMAP /* Store glyph mappings at level change time */
37 #define PC_LOCKING /* Prevent overwrites of aborted or in-progress games */
38 /* without first receiving confirmation. */
40 #define SELF_RECOVER /* Allow the game itself to recover from an aborted \
41 game */
43 #define NOTSTDC /* no strerror() */
45 #define USER_SOUNDS
48 * -----------------------------------------------------------------
49 * The remaining code shouldn't need modification.
50 * -----------------------------------------------------------------
52 /* #define SHORT_FILENAMES /* All NT filesystems support long names now
55 #ifdef MICRO
56 #undef MICRO /* never define this! */
57 #endif
59 #define NOCWD_ASSUMPTIONS /* Always define this. There are assumptions that \
60 it is defined for WIN32. \
61 Allow paths to be specified for HACKDIR, \
62 LEVELDIR, SAVEDIR, BONESDIR, DATADIR, \
63 SCOREDIR, LOCKDIR, CONFIGDIR, and TROUBLEDIR */
64 #define NO_TERMS
65 #define ASCIIGRAPH
67 #ifdef OPTIONS_USED
68 #undef OPTIONS_USED
69 #endif
70 #ifdef MSWIN_GRAPHICS
71 #define OPTIONS_USED "guioptions"
72 #else
73 #define OPTIONS_USED "ttyoptions"
74 #endif
75 #define OPTIONS_FILE OPTIONS_USED
77 #define PORT_HELP "porthelp"
79 #define SAFERHANGUP /* Define SAFERHANGUP to delay hangup processing \
80 * until the main command loop. 'safer' because it \
81 * avoids certain cheats and also avoids losing \
82 * objects being thrown when the hangup occurs. \
85 #if defined(WIN_CE_POCKETPC)
86 #define PORT_CE_PLATFORM "Pocket PC"
87 #elif defined(WIN_CE_PS2xx)
88 #define PORT_CE_PLATFORM "Palm-size PC 2.11"
89 #elif defined(WIN_CE_HPCPRO)
90 #define PORT_CE_PLATFORM "H/PC Pro 2.11"
91 #elif defined(WIN_CE_SMARTPHONE)
92 #define PORT_CE_PLATFORM "Smartphone 2002"
93 #endif
95 #if defined(ARM)
96 #define PORT_CE_CPU "ARM"
97 #elif defined(PPC)
98 #define PORT_CE_CPU "PPC"
99 #elif defined(ALPHA)
100 #define PORT_CE_CPU "ALPHA"
101 #elif defined(SH3)
102 #define PORT_CE_CPU "SH3"
103 #elif defined(SH4)
104 #define PORT_CE_CPU "SH4"
105 #elif defined(MIPS)
106 #define PORT_CE_CPU "MIPS"
107 #elif defined(X86) || defined(_X86_)
108 #define PORT_CE_CPU "X86"
109 #else
110 #error Only ARM, PPC, ALPHA, SH3, SH4, MIPS and X86 supported
111 #endif
113 #define RUNTIME_PORT_ID /* trigger run-time port identification since \
114 Makedefs is bootstrapped on a cross-platform. */
116 #include <string.h> /* Provides prototypes of strncmpi(), etc. */
117 #ifdef STRNCMPI
118 #define strncmpi(a, b, c) _strnicmp(a, b, c)
119 #endif
121 #ifdef STRCMPI
122 #define strcmpi(a, b) _stricmp(a, b)
123 #define stricmp(a, b) _stricmp(a, b)
124 #endif
126 #include <stdlib.h>
128 #define PATHLEN BUFSZ /* maximum pathlength */
129 #define FILENAME BUFSZ /* maximum filename length (conservative) */
131 #if defined(_MAX_PATH) && defined(_MAX_FNAME)
132 #if (_MAX_PATH < BUFSZ) && (_MAX_FNAME < BUFSZ)
133 #undef PATHLEN
134 #undef FILENAME
135 #define PATHLEN _MAX_PATH
136 #define FILENAME _MAX_FNAME
137 #endif
138 #endif
140 #define NO_SIGNAL
141 #define index strchr
142 #define rindex strrchr
143 #define USE_STDARG
144 #ifdef RANDOM
145 /* Use the high quality random number routines. */
146 #define Rand() random()
147 #else
148 #define Rand() rand()
149 #endif
151 #define FCMASK 0660 /* file creation mask */
152 #define regularize nt_regularize
153 #define HLOCK "NHPERM"
155 #ifndef M
156 #define M(c) ((char) (0x80 | (c)))
157 /* #define M(c) ((c) - 128) */
158 #endif
160 #ifndef C
161 #define C(c) (0x1f & (c))
162 #endif
164 #if defined(DLB)
165 #define FILENAME_CMP _stricmp /* case insensitive */
166 #endif
168 #if 0
169 extern char levels[], bones[], permbones[],
170 #endif /* 0 */
172 /* this was part of the MICRO stuff in the past */
173 extern const char *alllevels, *allbones;
174 extern char hackdir[];
175 #define ABORT C('a')
176 #define getuid() 1
177 #define getlogin() ((char *) 0)
178 extern void NDECL(win32_abort);
179 #ifdef WIN32CON
180 extern void FDECL(nttty_preference_update, (const char *));
181 extern void NDECL(toggle_mouse_support);
182 #endif
184 #ifndef alloca
185 #define ALLOCA_HACK /* used in util/panic.c */
186 #endif
188 #ifdef _MSC_VER
189 #if 0
190 #pragma warning(disable : 4018) /* signed/unsigned mismatch */
191 #pragma warning(disable : 4305) /* init, conv from 'const int' to 'char' */
192 #endif
193 #pragma warning(disable : 4761) /* integral size mismatch in arg; conv \
194 supp*/
195 #ifdef YYPREFIX
196 #pragma warning(disable : 4102) /* unreferenced label */
197 #endif
198 #endif
200 /* UNICODE stuff */
201 #define NHSTR_BUFSIZE 255
202 #ifdef UNICODE
203 #define NH_W2A(w, a, cb) \
204 (WideCharToMultiByte(CP_ACP, 0, (w), -1, (a), (cb), NULL, NULL), (a))
206 #define NH_A2W(a, w, cb) \
207 (MultiByteToWideChar(CP_ACP, 0, (a), -1, (w), (cb)), (w))
208 #else
209 #define NH_W2A(w, a, cb) (strncpy((a), (w), (cb)))
211 #define NH_A2W(a, w, cb) (strncpy((w), (a), (cb)))
212 #endif
214 extern int FDECL(set_win32_option, (const char *, const char *));
217 * 3.4.3 addition - Stuff to help the user with some common, yet significant
218 * errors
219 * Let's make it NOP for now
221 #define interject_assistance(_1, _2, _3, _4)
222 #define interject(_1)
224 /* Missing definitions */
225 extern int mswin_have_input();
226 #define kbhit mswin_have_input
228 #define getenv(a) ((char *) NULL)
230 /* __stdio.h__ */
231 #define perror(a)
232 #define freopen(a, b, c) fopen(a, b)
233 extern int isatty(int);
235 /* __time.h___ */
236 #ifndef _TIME_T_DEFINED
237 typedef __int64 time_t; /* time value */
238 #define _TIME_T_DEFINED /* avoid multiple def's of time_t */
239 #endif
241 #ifndef _TM_DEFINED
242 struct tm {
243 int tm_sec; /* seconds after the minute - [0,59] */
244 int tm_min; /* minutes after the hour - [0,59] */
245 int tm_hour; /* hours since midnight - [0,23] */
246 int tm_mday; /* day of the month - [1,31] */
247 int tm_mon; /* months since January - [0,11] */
248 int tm_year; /* years since 1900 */
249 int tm_wday; /* days since Sunday - [0,6] */
250 int tm_yday; /* days since January 1 - [0,365] */
251 int tm_isdst; /* daylight savings time flag - - NOT IMPLEMENTED */
253 #define _TM_DEFINED
254 #endif
256 extern struct tm *__cdecl localtime(const time_t *);
257 extern time_t __cdecl time(time_t *);
258 extern time_t __cdecl mktime(struct tm *tb);
260 /* __stdio.h__ */
261 #ifndef BUFSIZ
262 #define BUFSIZ 255
263 #endif
265 #define rewind(stream) (void) fseek(stream, 0L, SEEK_SET)
267 /* __io.h__ */
268 typedef long off_t;
270 extern int __cdecl close(int);
271 extern int __cdecl creat(const char *, int);
272 extern int __cdecl eof(int);
273 extern long __cdecl lseek(int, long, int);
274 extern int __cdecl open(const char *, int, ...);
275 extern int __cdecl read(int, void *, unsigned int);
276 extern int __cdecl unlink(const char *);
277 extern int __cdecl write(int, const void *, unsigned int);
278 extern int __cdecl rename(const char *, const char *);
279 extern int __cdecl access(const char *, int);
281 #ifdef DeleteFile
282 #undef DeleteFile
283 #endif
284 #define DeleteFile(a) unlink(a)
286 int chdir(const char *dirname);
287 extern char *getcwd(char *buffer, int maxlen);
289 /* __stdlib.h__ */
290 #define abort() (void) TerminateProcess(GetCurrentProcess(), 0)
291 #ifndef strdup
292 #define strdup _strdup
293 #endif
295 /* sys/stat.h */
296 #define S_IWRITE GENERIC_WRITE
297 #define S_IREAD GENERIC_READ
299 /* CE 2.xx is missing even more stuff */
300 #if defined(WIN_CE_PS2xx) || defined(WIN32_PLATFORM_HPCPRO)
301 #define ZeroMemory(p, s) memset((p), 0, (s))
303 extern int __cdecl isupper(int c);
304 extern int __cdecl isdigit(int c);
305 extern int __cdecl isspace(int c);
306 extern int __cdecl isprint(int c);
308 extern char *__cdecl _strdup(const char *s);
309 extern char *__cdecl strrchr(const char *string, int c);
310 extern int __cdecl _stricmp(const char *a, const char *b);
312 extern FILE *__cdecl fopen(const char *filename, const char *mode);
313 extern int __cdecl fscanf(FILE *f, const char *format, ...);
314 extern int __cdecl fprintf(FILE *f, const char *format, ...);
315 extern int __cdecl vfprintf(FILE *f, const char *format, va_list args);
316 extern int __cdecl fgetc(FILE *f);
317 extern char *__cdecl fgets(char *s, int size, FILE *f);
318 extern int __cdecl printf(const char *format, ...);
319 extern int __cdecl vprintf(const char *format, va_list args);
320 extern int __cdecl puts(const char *s);
321 extern FILE *__cdecl _getstdfilex(int desc);
322 extern int __cdecl fclose(FILE *f);
323 extern size_t __cdecl fread(void *p, size_t size, size_t count, FILE *f);
324 extern size_t __cdecl fwrite(const void *p, size_t size, size_t count,
325 FILE *f);
326 extern int __cdecl fflush(FILE *f);
327 extern int __cdecl feof(FILE *f);
328 extern int __cdecl fseek(FILE *f, long offset, int from);
329 extern long __cdecl ftell(FILE *f);
331 #endif
333 /* ARM - the processor; avoids conflict with ARM in hack.h */
334 #ifdef ARM
335 #undef ARM
336 #endif
338 /* leave - Windows CE defines leave as part of exception handling (__leave)
339 It conflicts with existing sources and since we don't use exceptions it is
340 safe
341 to undefine it */
342 #ifdef leave
343 #undef leave
344 #endif
346 #endif /* WCECONF_H */