OSDN Git Service

ifdef-ed official patches
[jnethack/source.git] / include / wceconf.h
1 /* NetHack 3.6  wceconf.h       $NHDT-Date: 1432512776 2015/05/25 00:12:56 $  $NHDT-Branch: master $:$NHDT-Revision: 1.22 $ */
2 /* Copyright (C) 2001 by Alex Kompel     */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 #ifndef WCECONF_H
6 #define WCECONF_H
7
8 #pragma warning(disable : 4142) /* benign redefinition of type */
9
10 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
11
12 #include <windows.h>
13
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
28
29 /* #define SHELL        /* nt use of pcsys routines caused a hang */
30
31 #define RANDOM    /* have Berkeley random(3) */
32 #define TEXTCOLOR /* Color text */
33
34 #define EXEPATH              /* Allow .exe location to be used as HACKDIR */
35 #define TRADITIONAL_GLYPHMAP /* Store glyph mappings at level change time */
36
37 #define PC_LOCKING /* Prevent overwrites of aborted or in-progress games */
38 /* without first receiving confirmation. */
39
40 #define SELF_RECOVER /* Allow the game itself to recover from an aborted \
41                         game */
42
43 #define NOTSTDC /* no strerror() */
44
45 #define USER_SOUNDS
46
47 /*
48  * -----------------------------------------------------------------
49  *  The remaining code shouldn't need modification.
50  * -----------------------------------------------------------------
51  */
52 /* #define SHORT_FILENAMES      /* All NT filesystems support long names now
53  */
54
55 #ifdef MICRO
56 #undef MICRO /* never define this! */
57 #endif
58
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
66
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
76
77 #define PORT_HELP "porthelp"
78
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.    \
83                      */
84
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
94
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
112
113 #define RUNTIME_PORT_ID /* trigger run-time port identification since \
114                            Makedefs is bootstrapped on a cross-platform. */
115
116 #include <string.h> /* Provides prototypes of strncmpi(), etc.     */
117 #ifdef STRNCMPI
118 #define strncmpi(a, b, c) _strnicmp(a, b, c)
119 #endif
120
121 #ifdef STRCMPI
122 #define strcmpi(a, b) _stricmp(a, b)
123 #define stricmp(a, b) _stricmp(a, b)
124 #endif
125
126 #include <stdlib.h>
127
128 #define PATHLEN BUFSZ  /* maximum pathlength */
129 #define FILENAME BUFSZ /* maximum filename length (conservative) */
130
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
139
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
150
151 #define FCMASK 0660 /* file creation mask */
152 #define regularize nt_regularize
153 #define HLOCK "NHPERM"
154
155 #ifndef M
156 #define M(c) ((char) (0x80 | (c)))
157 /* #define M(c)         ((c) - 128) */
158 #endif
159
160 #ifndef C
161 #define C(c) (0x1f & (c))
162 #endif
163
164 #if defined(DLB)
165 #define FILENAME_CMP _stricmp /* case insensitive */
166 #endif
167
168 #if 0
169 extern char levels[], bones[], permbones[],
170 #endif /* 0 */
171
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
183
184 #ifndef alloca
185 #define ALLOCA_HACK /* used in util/panic.c */
186 #endif
187
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
199
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))
205
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)))
210
211 #define NH_A2W(a, w, cb) (strncpy((w), (a), (cb)))
212 #endif
213
214 extern int FDECL(set_win32_option, (const char *, const char *));
215
216 /*
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
220  */
221 #define interject_assistance(_1, _2, _3, _4)
222 #define interject(_1)
223
224 /* Missing definitions */
225 extern int mswin_have_input();
226 #define kbhit mswin_have_input
227
228 #define getenv(a) ((char *) NULL)
229
230 /* __stdio.h__ */
231 #define perror(a)
232 #define freopen(a, b, c) fopen(a, b)
233 extern int isatty(int);
234
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
240
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 */
252 };
253 #define _TM_DEFINED
254 #endif
255
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);
259
260 /* __stdio.h__ */
261 #ifndef BUFSIZ
262 #define BUFSIZ 255
263 #endif
264
265 #define rewind(stream) (void) fseek(stream, 0L, SEEK_SET)
266
267 /* __io.h__ */
268 typedef long off_t;
269
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);
280
281 #ifdef DeleteFile
282 #undef DeleteFile
283 #endif
284 #define DeleteFile(a) unlink(a)
285
286 int chdir(const char *dirname);
287 extern char *getcwd(char *buffer, int maxlen);
288
289 /* __stdlib.h__ */
290 #define abort() (void) TerminateProcess(GetCurrentProcess(), 0)
291 #ifndef strdup
292 #define strdup _strdup
293 #endif
294
295 /* sys/stat.h */
296 #define S_IWRITE GENERIC_WRITE
297 #define S_IREAD GENERIC_READ
298
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))
302
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);
307
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);
311
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);
330
331 #endif
332
333 /* ARM - the processor; avoids conflict with ARM in hack.h */
334 #ifdef ARM
335 #undef ARM
336 #endif
337
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
345
346 #endif /* WCECONF_H */