diff --git a/include/dlb.h b/include/dlb.h index 3af446201..b29ca19ac 100644 --- a/include/dlb.h +++ b/include/dlb.h @@ -130,7 +130,7 @@ long FDECL(dlb_ftell, (DLB_P)); #else #define WRTMODE "w+" #endif -#if (defined(MICRO) && !defined(AMIGA)) || defined(THINK_C) || defined(__MWERKS__) +#if (defined(MICRO) && !defined(AMIGA)) || defined(THINK_C) || defined(__MWERKS__) || defined(WIN32) # define RDBMODE "rb" # define WRBMODE "w+b" #else diff --git a/include/extern.h b/include/extern.h index 7a1b38010..b9bb78d20 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1176,7 +1176,7 @@ E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P, E void FDECL(create_mplayers, (int,BOOLEAN_P)); E void FDECL(mplayer_talk, (struct monst *)); -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) /* ### msdos.c,os2.c,tos.c,winnt.c ### */ @@ -1226,7 +1226,7 @@ E int NDECL((*nt_kbhit)); E void FDECL(Delay, (int)); # endif /* WIN32 */ -#endif /* MICRO */ +#endif /* MICRO || WIN32 */ /* ### mthrowu.c ### */ @@ -1366,15 +1366,15 @@ E int NDECL(dohistory); /* ### pcmain.c ### */ -#if defined(MICRO) +#if defined(MICRO) || defined(WIN32) # ifdef CHDIR E void FDECL(chdirx, (char *,BOOLEAN_P)); # endif /* CHDIR */ -#endif /* MICRO */ +#endif /* MICRO || WIN32 */ /* ### pcsys.c ### */ -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) E void NDECL(flushout); E int NDECL(dosh); # ifdef MFLOPPY @@ -1390,11 +1390,11 @@ E void FDECL(getreturn, (const char *)); E void VDECL(msmsg, (const char *,...)); # endif E FILE *FDECL(fopenp, (const char *,const char *)); -#endif /* MICRO */ +#endif /* MICRO || WIN32 */ /* ### pctty.c ### */ -#if defined(MICRO) +#if defined(MICRO) || defined(WIN32) E void NDECL(gettty); E void FDECL(settty, (const char *)); E void NDECL(setftty); @@ -1402,7 +1402,7 @@ E void VDECL(error, (const char *,...)); #if defined(TIMED_DELAY) && defined(_MSC_VER) E void FDECL(msleep, (unsigned)); #endif -#endif /* MICRO */ +#endif /* MICRO || WIN32 */ /* ### pcunix.c ### */ diff --git a/include/global.h b/include/global.h index f21f02adc..8ab869048 100644 --- a/include/global.h +++ b/include/global.h @@ -225,7 +225,7 @@ typedef xchar boolean; /* 0 or 1 */ #endif #if defined(MICRO) -#if !defined(AMIGA) && !defined(TOS) && !defined(OS2_HPFS) && !defined(WIN32) +#if !defined(AMIGA) && !defined(TOS) && !defined(OS2_HPFS) #define SHORT_FILENAMES /* filenames are 8.3 */ #endif #endif diff --git a/include/ntconf.h b/include/ntconf.h index 4d848714d..b359df33a 100644 --- a/include/ntconf.h +++ b/include/ntconf.h @@ -18,9 +18,7 @@ #define PC_LOCKING /* Prevent overwrites of aborted or in-progress games */ /* without first receiving confirmation. */ -#define NOCWD_ASSUMPTIONS /* Allow paths to be specified for HACKDIR, - LEVELDIR, SAVEDIR, BONESDIR, DATADIR, - SCOREDIR, LOCKDIR, and CONFIGDIR */ + /* * ----------------------------------------------------------------- @@ -29,7 +27,15 @@ */ /* #define SHORT_FILENAMES /* All NT filesystems support long names now */ -#define MICRO /* always define this! */ +#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, and CONFIGDIR */ #define NO_TERMS #define ASCIIGRAPH @@ -104,11 +110,22 @@ #define FILENAME_CMP stricmp /* case insensitive */ #endif -#ifdef MICRO -# ifndef MICRO_H -#include "micro.h" /* contains necessary externs for [os_name].c */ -# endif +#if 0 +#ifndef C +#define C(c) (0x1f & (c)) #endif +#ifndef M +#define M(c) (0x80 | (c)) +#endif +extern char levels[], bones[], permbones[], +#endif /* 0 */ + +/* this was part of the MICRO stuff in the past */ +extern const char *alllevels, *allbones; +extern char hackdir[]; +#define ABORT C('a') +#define getuid() 1 +#define getlogin() ((char *)0) #include #ifndef __BORLANDC__ diff --git a/src/allmain.c b/src/allmain.c index bcdc12be1..13c71c6d9 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -19,7 +19,7 @@ STATIC_DCL void NDECL(do_positionbar); void moveloop() { -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) char ch; int abort_lev; #endif @@ -315,7 +315,7 @@ moveloop() flags.move = 1; if(multi >= 0 && occupation) { -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) abort_lev = 0; if (kbhit()) { if ((ch = Getchar()) == ABORT) @@ -331,14 +331,14 @@ moveloop() #endif occupation = 0; if( -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) abort_lev || #endif monster_nearby()) { stop_occupation(); reset_eat(); } -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) if (!(++occtime % 7)) display_nhwindow(WIN_MAP, FALSE); #endif diff --git a/src/alloc.c b/src/alloc.c index e8f7e9ddd..e545eeace 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -56,7 +56,7 @@ register unsigned int lth; #if defined(MONITOR_HEAP) || defined(WIZARD) -# ifdef MICRO +# if defined(MICRO) || defined(WIN32) /* we actually want to know which systems have an ANSI run-time library * to know which support the new %p format for printing pointers. * due to the presence of things like gcc, NHSTDC is not a good test. diff --git a/src/decl.c b/src/decl.c index a8f5e719c..08d6b57bd 100644 --- a/src/decl.c +++ b/src/decl.c @@ -77,10 +77,12 @@ NEARDATA long yn_number = 0L; const char disclosure_options[] = "iavgc"; -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) char hackdir[PATHLEN]; /* where rumors, help, record are */ +# ifdef MICRO char levels[PATHLEN]; /* where levels are */ -#endif /* MICRO */ +# endif +#endif /* MICRO || WIN32 */ #ifdef MFLOPPY diff --git a/src/end.c b/src/end.c index 5cbdd73ae..29ccd006a 100644 --- a/src/end.c +++ b/src/end.c @@ -240,6 +240,10 @@ register struct monst *mtmp; return; } +#if defined(WIN32) +#define NOTIFY_NETHACK_BUGS +#endif + /*VARARGS1*/ void panic VA_DECL(const char *, str) @@ -260,15 +264,25 @@ panic VA_DECL(const char *, str) "Program initialization has failed." : "Suddenly, the dungeon collapses."); #if defined(WIZARD) && !defined(MICRO) +# if defined(NOTIFY_NETHACK_BUGS) + if (!wizard) + raw_printf("Report error to \"%s\".\n%s.\n", + "nethack-bugs@nethack.org", + !program_state.something_worth_saving ? "" : + "An error save file will be created.\n"); + else if (program_state.something_worth_saving) + raw_print("\nAn error save file will be created.\n"); +# else if (!wizard) raw_printf("Report error to \"%s\"%s.", -# ifdef WIZARD_NAME /*(KR1ED)*/ +# ifdef WIZARD_NAME /*(KR1ED)*/ WIZARD_NAME, -# else +# else WIZARD, -# endif +# endif !program_state.something_worth_saving ? "" : " and it may be possible to rebuild."); +# endif if (program_state.something_worth_saving) { set_error_savefile(); (void) dosave0(); diff --git a/src/files.c b/src/files.c index 20b80ef6e..c2f7bd560 100644 --- a/src/files.c +++ b/src/files.c @@ -238,7 +238,7 @@ int lev; set_levelfile_name(lock, lev); fq_lock = fqname(lock, LEVELPREFIX, 0); -#if defined(MICRO) +#if defined(MICRO) || defined(WIN32) /* Use O_TRUNC to force the file to be shortened if it already * exists and is currently longer. */ @@ -249,7 +249,7 @@ int lev; # else fd = creat(fq_lock, FCMASK); # endif -#endif /* MICRO */ +#endif /* MICRO || WIN32 */ if (fd >= 0) level_info[lev].flags |= LFILE_EXISTS; @@ -377,7 +377,7 @@ char **bonesid; file = set_bonestemp_name(); file = fqname(file, BONESPREFIX, 0); -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) /* Use O_TRUNC to force the file to be shortened if it already * exists and is currently longer. */ @@ -399,7 +399,7 @@ char **bonesid; */ (void) chmod(file, FCMASK | 007); /* allow other users full access */ # endif /* VMS && !SECURE */ -#endif /* MICRO */ +#endif /* MICRO || WIN32*/ return fd; } @@ -499,7 +499,7 @@ set_savefile_name() regularize(SAVEF+7); Strcat(SAVEF, ";1"); #else -# if defined(MICRO) && !defined(WIN32) +# if defined(MICRO) Strcpy(SAVEF, SAVEP); # ifdef AMIGA strncat(SAVEF, bbs_id, PATHLEN); @@ -566,7 +566,7 @@ create_savefile() int fd; fq_save = fqname(SAVEF, SAVEPREFIX, 0); -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) fd = open(fq_save, O_WRONLY | O_BINARY | O_CREAT | O_TRUNC, FCMASK); #else # ifdef MAC @@ -1112,7 +1112,7 @@ const char *filename; } } -#if defined(MICRO) || defined(MAC) || defined(__BEOS__) +#if defined(MICRO) || defined(MAC) || defined(__BEOS__) || defined(WIN32) if ((fp = fopenp(fqname(configfile, CONFIGPREFIX, 0), "r")) != (FILE *)0) return(fp); @@ -1538,7 +1538,7 @@ const char *filename; #define tmp_levels (char *)0 #define tmp_ramdisk (char *)0 -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) #undef tmp_levels char tmp_levels[PATHLEN]; # ifdef MFLOPPY @@ -1553,7 +1553,7 @@ const char *filename; if (!(fp = fopen_config_file(filename))) return; -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) # ifdef MFLOPPY # ifndef AMIGA tmp_ramdisk[0] = 0; @@ -1735,7 +1735,7 @@ const char *dir; wait_synch(); } #endif /* !UNIX && !VMS */ -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) char tmp[PATHLEN]; # ifdef OS2_CODEVIEW /* explicit path on opening for OS/2 */ @@ -1768,7 +1768,7 @@ const char *dir; (void) close(fd); } else /* open succeeded */ (void) close(fd); -#else /* MICRO */ +#else /* MICRO || WIN32*/ # ifdef MAC /* Create the "record" file, if necessary */ @@ -1777,7 +1777,7 @@ const char *dir; if (fd != -1) macclose (fd); # endif /* MAC */ -#endif /* MICRO */ +#endif /* MICRO || WIN32*/ } /* ---------- END SCOREBOARD CREATION ----------- */ diff --git a/src/options.c b/src/options.c index 4568766d7..e8ce17a3d 100644 --- a/src/options.c +++ b/src/options.c @@ -62,7 +62,7 @@ static struct Bool_Opt #else {"checkspace", (boolean *)0, FALSE, SET_IN_FILE}, #endif -# ifdef MICRO +# if defined(MICRO) || defined(WIN32) {"color", &iflags.wc_color,TRUE, SET_IN_GAME}, /*WC*/ # else /* systems that support multiple terminals, many monochrome */ {"color", &iflags.wc_color, FALSE, SET_IN_GAME}, /*WC*/ @@ -144,7 +144,7 @@ static struct Bool_Opt {"prayconfirm", &flags.prayconfirm, TRUE, SET_IN_GAME}, {"preload_tiles", &iflags.wc_preload_tiles, TRUE, DISP_IN_GAME}, /*WC*/ {"pushweapon", &flags.pushweapon, FALSE, SET_IN_GAME}, -#if defined(MICRO) && !defined(AMIGA) && !defined(MSWIN_GRAPHICS) +#if defined(MICRO) && !defined(AMIGA) {"rawio", &iflags.rawio, FALSE, DISP_IN_GAME}, #else {"rawio", (boolean *)0, FALSE, SET_IN_FILE}, @@ -2198,7 +2198,7 @@ map_menu_cmd(ch) } -#if defined(MICRO) || defined(MAC) +#if defined(MICRO) || defined(MAC) || defined(WIN32) # define OPTIONS_HEADING "OPTIONS" #else # define OPTIONS_HEADING "NETHACKOPTIONS" diff --git a/src/restore.c b/src/restore.c index 7038693a1..6c9edb31f 100644 --- a/src/restore.c +++ b/src/restore.c @@ -6,7 +6,7 @@ #include "lev.h" #include "tcap.h" /* for TERMLIB and ASCIIGRAPH */ -#ifdef MICRO +#if defined(MICRO) extern int dotcnt; /* shared with save */ extern int dotrow; /* shared with save */ #endif diff --git a/src/topten.c b/src/topten.c index a2f6e52b5..7ceb275e1 100644 --- a/src/topten.c +++ b/src/topten.c @@ -37,7 +37,7 @@ static long final_fpos; #define POINTSMIN 1 /* must be > 0 */ #define ENTRYMAX 100 /* must be >= 10 */ -#if !defined(MICRO) && !defined(MAC) +#if !defined(MICRO) && !defined(MAC) && !defined(WIN32) #define PERS_IS_UID /* delete for PERSMAX per name; now per uid */ #endif struct toptenentry { diff --git a/sys/share/pcsys.c b/sys/share/pcsys.c index fc252c9ef..0216ace2c 100644 --- a/sys/share/pcsys.c +++ b/sys/share/pcsys.c @@ -56,7 +56,7 @@ STATIC_DCL boolean NDECL(comspec_exists); extern int GUILaunched; /* from nttty.c */ #endif -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) void flushout() @@ -528,25 +528,4 @@ static void msexit() #endif return; } -#ifdef WIN32 -/* - * This is a kludge. Just before the release of 3.3.0 the latest - * version of a popular MAPI mail product was found to exhibit - * a strange result where the current directory was changed out - * from under NetHack resulting in a failure of all subsequent - * file operations in NetHack. This routine is called prior - * to all file open/renames/deletes in file.c. - * - * A more elegant solution will be sought after 3.3.0 is released. - */ -void dircheck() -{ - char dirbuf[BUFSZ]; - dirbuf[0] = '\0'; - if (getcwd(dirbuf, sizeof dirbuf) != (char *)0) - /* pline("%s,%s",dirbuf,hackdir); */ - if (strcmp(dirbuf,hackdir) != 0) - chdir(hackdir); /* chdir, not chdirx */ -} -#endif #endif /* MICRO || WIN32 || OS2 */ diff --git a/sys/share/pcunix.c b/sys/share/pcunix.c index ee112821d..04620c9ab 100644 --- a/sys/share/pcunix.c +++ b/sys/share/pcunix.c @@ -48,7 +48,7 @@ int fd; return(0); } # else -# if defined(MICRO) && !defined(NO_FSTAT) +# if (defined(MICRO) || defined(WIN32)) && !defined(NO_FSTAT) if(fstat(fd, &buf)) { if(moves > 1) pline("Cannot get status of saved level? "); else pline("Cannot get status of saved game"); diff --git a/util/lev_main.c b/util/lev_main.c index 0d11275b5..ae837ae70 100644 --- a/util/lev_main.c +++ b/util/lev_main.c @@ -47,7 +47,7 @@ # define O_BINARY 0 #endif -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) # define OMASK FCMASK #else # define OMASK 0644 diff --git a/util/makedefs.c b/util/makedefs.c index 34978d47c..46c21c2f8 100644 --- a/util/makedefs.c +++ b/util/makedefs.c @@ -703,7 +703,7 @@ static const char *build_opts[] = { #ifdef TERMINFO "terminal info library", #else -# if defined(TERMLIB) || (!defined(MICRO) && defined(TTY_GRAPHICS)) +# if defined(TERMLIB) || ((!defined(MICRO) && !defined(WIN32)) && defined(TTY_GRAPHICS)) "terminal capability library", # endif #endif diff --git a/win/share/tile.h b/win/share/tile.h index 4bfbe7ff5..4dd763344 100644 --- a/win/share/tile.h +++ b/win/share/tile.h @@ -38,7 +38,7 @@ extern int NDECL(fclose_text_file); extern void NDECL(init_colormap); extern void NDECL(merge_colormap); -#if defined(MICRO) +#if defined(MICRO) || defined(WIN32) #undef exit # if !defined(MSDOS) && !defined(WIN32) extern void FDECL(exit, (int)); diff --git a/win/share/tilemap.c b/win/share/tilemap.c index a8bbfcc76..bca662b93 100644 --- a/win/share/tilemap.c +++ b/win/share/tilemap.c @@ -13,7 +13,7 @@ const char * FDECL(tilename, (int, int)); void NDECL(init_tilemap); void FDECL(process_substitutions, (FILE *)); -#ifdef MICRO +#if defined(MICRO) || defined(WIN32) #undef exit #if !defined(MSDOS) && !defined(WIN32) extern void FDECL(exit, (int));