Report of no error msg deliverd by NetHackw.exe for some startup issues
This commit is contained in:
@@ -282,4 +282,5 @@ extern void FDECL(nhassert_failed, (const char * exp, const char * file,
|
|||||||
|
|
||||||
#define nethack_enter(argc, argv) nethack_enter_winnt()
|
#define nethack_enter(argc, argv) nethack_enter_winnt()
|
||||||
extern void FDECL(nethack_exit, (int)) NORETURN;
|
extern void FDECL(nethack_exit, (int)) NORETURN;
|
||||||
|
extern boolean FDECL(file_exists, (const char *));
|
||||||
#endif /* NTCONF_H */
|
#endif /* NTCONF_H */
|
||||||
|
|||||||
@@ -22,6 +22,15 @@ mswin_destroy_reg()
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
mswin_raw_print_flush()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
mswin_raw_print(const char *str)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/* MINGW32 has trouble with both a main() and WinMain()
|
/* MINGW32 has trouble with both a main() and WinMain()
|
||||||
* so we move main for the MINGW tty version into this stub
|
* so we move main for the MINGW tty version into this stub
|
||||||
|
|||||||
@@ -240,19 +240,28 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
|||||||
/*
|
/*
|
||||||
* It seems you really want to play.
|
* It seems you really want to play.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (argc >= 1
|
if (argc >= 1
|
||||||
&& !strcmpi(default_window_sys, "mswin")
|
&& !strcmpi(default_window_sys, "mswin")
|
||||||
&& (strstri(argv[0], "nethackw.exe") || GUILaunched))
|
&& (strstri(argv[0], "nethackw.exe") || GUILaunched))
|
||||||
iflags.windowtype_locked = TRUE;
|
iflags.windowtype_locked = TRUE;
|
||||||
|
|
||||||
windowtype = default_window_sys;
|
windowtype = default_window_sys;
|
||||||
|
|
||||||
|
if (!dlb_init()) {
|
||||||
|
pline("%s\n%s\n%s\n%s\n\n",
|
||||||
|
copyright_banner_line(1), copyright_banner_line(2),
|
||||||
|
copyright_banner_line(3), copyright_banner_line(4));
|
||||||
|
pline("NetHack was unable to open the required file \"%s\"",DLBFILE);
|
||||||
|
if (file_exists(DLBFILE))
|
||||||
|
pline("\nAre you perhaps trying to run NetHack within a zip utility?");
|
||||||
|
error("dlb_init failure.");
|
||||||
|
}
|
||||||
|
|
||||||
if (!iflags.windowtype_locked) {
|
if (!iflags.windowtype_locked) {
|
||||||
#if defined(TTY_GRAPHICS)
|
#if defined(TTY_GRAPHICS)
|
||||||
Strcpy(default_window_sys, "tty");
|
Strcpy(default_window_sys, "tty");
|
||||||
#else
|
#else
|
||||||
#if defined(CURSES_GRAPHICS)
|
#if defined(CURSES_GRAPHICS)
|
||||||
Strcpy(default_window_sys, "curses");
|
Strcpy(default_window_sys, "curses");
|
||||||
#endif /* CURSES */
|
#endif /* CURSES */
|
||||||
#endif /* TTY */
|
#endif /* TTY */
|
||||||
if (iflags.windowtype_deferred && chosen_windowtype[0])
|
if (iflags.windowtype_deferred && chosen_windowtype[0])
|
||||||
@@ -260,16 +269,6 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
|||||||
}
|
}
|
||||||
choose_windows(windowtype);
|
choose_windows(windowtype);
|
||||||
|
|
||||||
if (!dlb_init()) {
|
|
||||||
pline(
|
|
||||||
"%s\n%s\n%s\n%s\n\nNetHack was unable to open the required file "
|
|
||||||
"\"%s\".%s",
|
|
||||||
copyright_banner_line(1), copyright_banner_line(2),
|
|
||||||
copyright_banner_line(3), copyright_banner_line(4), DLBFILE,
|
|
||||||
"\nAre you perhaps trying to run NetHack within a zip utility?");
|
|
||||||
error("dlb_init failure.");
|
|
||||||
}
|
|
||||||
|
|
||||||
u.uhp = 1; /* prevent RIP on early quits */
|
u.uhp = 1; /* prevent RIP on early quits */
|
||||||
u.ux = 0; /* prevent flush_screen() */
|
u.ux = 0; /* prevent flush_screen() */
|
||||||
|
|
||||||
@@ -931,4 +930,17 @@ gotlock:
|
|||||||
}
|
}
|
||||||
#endif /* PC_LOCKING */
|
#endif /* PC_LOCKING */
|
||||||
|
|
||||||
|
boolean
|
||||||
|
file_exists(path)
|
||||||
|
const char *path;
|
||||||
|
{
|
||||||
|
struct stat sb;
|
||||||
|
|
||||||
|
/* Just see if it's there */
|
||||||
|
if (stat(path, &sb)) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/*windmain.c*/
|
/*windmain.c*/
|
||||||
|
|||||||
@@ -212,6 +212,9 @@ return &szFullPath[0];
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern void NDECL(mswin_raw_print_flush);
|
||||||
|
extern void FDECL(mswin_raw_print, (const char *));
|
||||||
|
|
||||||
/* fatal error */
|
/* fatal error */
|
||||||
/*VARARGS1*/
|
/*VARARGS1*/
|
||||||
void error
|
void error
|
||||||
@@ -233,6 +236,8 @@ VA_DECL(const char *, s)
|
|||||||
Strcat(buf, "\n");
|
Strcat(buf, "\n");
|
||||||
raw_printf(buf);
|
raw_printf(buf);
|
||||||
}
|
}
|
||||||
|
if (windowprocs.win_raw_print == mswin_raw_print)
|
||||||
|
mswin_raw_print_flush();
|
||||||
VA_END();
|
VA_END();
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user