rework windows nmake file
Keep object files separate between gui and tty builds as they are not the same binary on windows. The stubs.c file will no longer be necessary.
This commit is contained in:
+1
-1
@@ -254,7 +254,7 @@ typedef uchar nhsym;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(X11_GRAPHICS) || defined(QT_GRAPHICS) || defined(GNOME_GRAPHICS) \
|
#if defined(X11_GRAPHICS) || defined(QT_GRAPHICS) || defined(GNOME_GRAPHICS) \
|
||||||
|| defined(WIN32)
|
|| defined(MSWIN_GRAPHICS)
|
||||||
#ifndef NO_TILE_C
|
#ifndef NO_TILE_C
|
||||||
#ifndef USE_TILES
|
#ifndef USE_TILES
|
||||||
#define USE_TILES /* glyphmap[] with prefilled tile mappings will be available */
|
#define USE_TILES /* glyphmap[] with prefilled tile mappings will be available */
|
||||||
|
|||||||
+1
-1
@@ -561,7 +561,7 @@ static int optfn_##a(int, int, boolean, char *, char *);
|
|||||||
#endif
|
#endif
|
||||||
NHOPTC(statuslines, Status, 20, opt_in, set_in_game,
|
NHOPTC(statuslines, Status, 20, opt_in, set_in_game,
|
||||||
No, Yes, No, No, NoAlias, "2 or 3 lines for status display")
|
No, Yes, No, No, NoAlias, "2 or 3 lines for status display")
|
||||||
#ifdef WIN32
|
#ifdef WIN32CON
|
||||||
NHOPTC(subkeyvalue, Advanced, 7, opt_in, set_in_config,
|
NHOPTC(subkeyvalue, Advanced, 7, opt_in, set_in_config,
|
||||||
No, Yes, Yes, No, NoAlias, "override keystroke value")
|
No, Yes, Yes, No, NoAlias, "override keystroke value")
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
#define DUMPLOG_MSG_COUNT 50
|
#define DUMPLOG_MSG_COUNT 50
|
||||||
|
|
||||||
#define USER_SOUNDS
|
#define USER_SOUNDS
|
||||||
#define TTY_SOUND_ESCCODES
|
/* #define TTY_SOUND_ESCCODES */
|
||||||
|
|
||||||
/*#define CHANGE_COLOR*/ /* allow palette changes */
|
/*#define CHANGE_COLOR*/ /* allow palette changes */
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Systos
|
|||||||
SysBe
|
SysBe
|
||||||
nethack
|
nethack
|
||||||
*.o
|
*.o
|
||||||
|
*.tag
|
||||||
tiles.bmp
|
tiles.bmp
|
||||||
*.moc
|
*.moc
|
||||||
*.lnk
|
*.lnk
|
||||||
@@ -21,4 +22,9 @@ o
|
|||||||
nhdat*
|
nhdat*
|
||||||
date.nmk
|
date.nmk
|
||||||
tilemappings.lst
|
tilemappings.lst
|
||||||
|
objgui/*
|
||||||
|
objtty/*
|
||||||
|
objutil/*
|
||||||
|
objlua/*
|
||||||
|
objpdc/*
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -426,7 +426,7 @@ moveloop_core(void)
|
|||||||
gc.context.move = 1;
|
gc.context.move = 1;
|
||||||
|
|
||||||
if (gm.multi >= 0 && go.occupation) {
|
if (gm.multi >= 0 && go.occupation) {
|
||||||
#if defined(MICRO) || defined(WIN32)
|
#if defined(MICRO) || defined(WIN32CON)
|
||||||
mvl_abort_lev = 0;
|
mvl_abort_lev = 0;
|
||||||
if (kbhit()) {
|
if (kbhit()) {
|
||||||
char ch;
|
char ch;
|
||||||
|
|||||||
+4
-4
@@ -715,7 +715,7 @@ optfn_altkeyhandling(
|
|||||||
if (req == do_set) {
|
if (req == do_set) {
|
||||||
/* altkeyhandling:string */
|
/* altkeyhandling:string */
|
||||||
|
|
||||||
#if defined(WIN32) && defined(TTY_GRAPHICS)
|
#if defined(WIN32CON) && defined(TTY_GRAPHICS)
|
||||||
if (op == empty_optstr || negated)
|
if (op == empty_optstr || negated)
|
||||||
return optn_err;
|
return optn_err;
|
||||||
set_altkeyhandling(op);
|
set_altkeyhandling(op);
|
||||||
@@ -739,7 +739,7 @@ optfn_altkeyhandling(
|
|||||||
#endif
|
#endif
|
||||||
return optn_ok;
|
return optn_ok;
|
||||||
}
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32CON
|
||||||
if (req == do_handler) {
|
if (req == do_handler) {
|
||||||
return set_keyhandling_via_option();
|
return set_keyhandling_via_option();
|
||||||
}
|
}
|
||||||
@@ -3399,7 +3399,7 @@ optfn_statuslines(int optidx, int req, boolean negated, char *opts, char *op)
|
|||||||
return optn_ok;
|
return optn_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32CON
|
||||||
static int
|
static int
|
||||||
optfn_subkeyvalue(int optidx UNUSED, int req, boolean negated UNUSED,
|
optfn_subkeyvalue(int optidx UNUSED, int req, boolean negated UNUSED,
|
||||||
char *opts, char *op UNUSED)
|
char *opts, char *op UNUSED)
|
||||||
@@ -3423,7 +3423,7 @@ optfn_subkeyvalue(int optidx UNUSED, int req, boolean negated UNUSED,
|
|||||||
}
|
}
|
||||||
return optn_ok;
|
return optn_ok;
|
||||||
}
|
}
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32CON */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
optfn_suppress_alert(int optidx, int req, boolean negated,
|
optfn_suppress_alert(int optidx, int req, boolean negated,
|
||||||
|
|||||||
+1252
-680
File diff suppressed because it is too large
Load Diff
@@ -1,228 +0,0 @@
|
|||||||
/* NetHack 3.7 stubs.c $NHDT-Date: 1596498317 2020/08/03 23:45:17 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.31 $ */
|
|
||||||
/* Copyright (c) 2015 by Michael Allison */
|
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
|
||||||
|
|
||||||
#include "win32api.h"
|
|
||||||
#include "hack.h"
|
|
||||||
|
|
||||||
#ifdef GUISTUB
|
|
||||||
#ifdef TTYSTUB
|
|
||||||
#error You cannot compile this with both GUISTUB and TTYSTUB defined.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct window_procs mswin_procs = { WPIDMINUS(guistubs) };
|
|
||||||
|
|
||||||
#ifdef QT_GRAPHICS
|
|
||||||
struct window_procs Qt_procs = { WPIDMINUS(guistubs) };
|
|
||||||
int qt_tilewidth, qt_tileheight, qt_fontsize, qt_compact_mode;
|
|
||||||
#endif
|
|
||||||
void
|
|
||||||
mswin_destroy_reg(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
void
|
|
||||||
mswin_raw_print_flush(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
mswin_raw_print(const char *str)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/* MINGW32 has trouble with both a main() and WinMain()
|
|
||||||
* so we move main for the MINGW tty version into this stub
|
|
||||||
* so that it is out of sight for the gui linkage.
|
|
||||||
*/
|
|
||||||
#ifdef __MINGW32__
|
|
||||||
extern char default_window_sys[];
|
|
||||||
extern int mingw_main(int argc, char **argv);
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
boolean resuming;
|
|
||||||
|
|
||||||
resuming = mingw_main(argc, argv);
|
|
||||||
nethack_exit(EXIT_SUCCESS);
|
|
||||||
/*NOTREACHED*/
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* GUISTUB */
|
|
||||||
|
|
||||||
/* =============================================== */
|
|
||||||
|
|
||||||
#ifdef TTYSTUB
|
|
||||||
|
|
||||||
HANDLE hConIn;
|
|
||||||
HANDLE hConOut;
|
|
||||||
struct window_procs tty_procs = { WPIDMINUS(ttystubs) };
|
|
||||||
#ifdef CURSES_GRAPHICS
|
|
||||||
char erase_char, kill_char;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
win_tty_init(int dir)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
consoletty_open(int mode)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
xputc(int ch)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
xputs(const char *s)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
raw_clear_screen(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
clear_screen(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
backsp(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef NO_MOUSE_ALLOWED
|
|
||||||
void
|
|
||||||
toggle_mouse_support(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PORT_DEBUG
|
|
||||||
void
|
|
||||||
win32con_debug_keystrokes(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
void
|
|
||||||
win32con_handler_info(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
map_subkeyvalue(char *op)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this is used as a printf() replacement when the window
|
|
||||||
* system isn't initialized yet
|
|
||||||
*/
|
|
||||||
void msmsg
|
|
||||||
VA_DECL(const char *, fmt)
|
|
||||||
{
|
|
||||||
VA_START(fmt);
|
|
||||||
VA_INIT(fmt, const char *);
|
|
||||||
VA_END();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*VARARGS1*/
|
|
||||||
void consoletty_error
|
|
||||||
VA_DECL(const char *, s)
|
|
||||||
{
|
|
||||||
VA_START(s);
|
|
||||||
VA_INIT(s, const char *);
|
|
||||||
VA_END();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef TTY_GRAPHICS
|
|
||||||
void
|
|
||||||
synch_cursor(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#ifdef TTY_PERM_INVENT
|
|
||||||
boolean in_tty_perm_invent_toggled = FALSE;
|
|
||||||
|
|
||||||
void
|
|
||||||
tty_perm_invent_toggled(boolean negated)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* TTY_PERM_INVENT */
|
|
||||||
#endif /* TTY_GRAPHICS */
|
|
||||||
|
|
||||||
void
|
|
||||||
more(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
nethack_enter_consoletty(void)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
set_altkeyhandler(const char *inName)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(USER_SOUNDS) && defined(TTY_SOUND_ESCCODES)
|
|
||||||
void
|
|
||||||
play_usersound_via_idx(int idx, int volume)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* USER_SOUNDS && TTY_SOUND_ESCCODES */
|
|
||||||
|
|
||||||
void
|
|
||||||
set_altkeyhandling(const char *inName)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
set_keyhandling_via_option(void)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CURSES_GRAPHICS
|
|
||||||
struct window_procs curses_procs = {WPIDMINUS(curses)};
|
|
||||||
|
|
||||||
int curses_read_attrs(const char *attrs)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
curses_fmt_attrs(char *outbuf)
|
|
||||||
{
|
|
||||||
int attr = iflags.wc2_petattr;
|
|
||||||
outbuf[0] = '\0';
|
|
||||||
Sprintf(outbuf, "+unknown [%d]", attr);
|
|
||||||
return &outbuf[1];
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* TTYSTUBS */
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||||
<OmitFramePointers>true</OmitFramePointers>
|
<OmitFramePointers>true</OmitFramePointers>
|
||||||
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWindDir);$(SysShareDir);$(WinShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(WinWin32Dir);$(IncDir);$(SysWindDir);$(SysShareDir);$(WinShareDir);$(LuaDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32CON;NO_TILE_C;DLB;MSWIN_GRAPHICS;SAFEPROCS;_LIB;HAS_STDINT_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32CON;NO_TILE_C;DLB;SAFEPROCS;_LIB;HAS_STDINT_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
@@ -171,9 +171,6 @@
|
|||||||
<ClCompile Include="$(SysShareDir)random.c" />
|
<ClCompile Include="$(SysShareDir)random.c" />
|
||||||
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
||||||
<ClCompile Include="$(SysWindDir)consoletty.c" />
|
<ClCompile Include="$(SysWindDir)consoletty.c" />
|
||||||
<ClCompile Include="$(SysWindDir)stubs.c">
|
|
||||||
<PreprocessorDefinitions>GUISTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(SysWindDir)windmain.c" />
|
<ClCompile Include="$(SysWindDir)windmain.c" />
|
||||||
<ClCompile Include="$(SysWindDir)windsys.c" />
|
<ClCompile Include="$(SysWindDir)windsys.c" />
|
||||||
<ClCompile Include="$(WinShareDir)safeproc.c" />
|
<ClCompile Include="$(WinShareDir)safeproc.c" />
|
||||||
|
|||||||
@@ -15,6 +15,12 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutDir>$(BinDir)</OutDir>
|
<OutDir>$(BinDir)</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalOptions>/Gs /Oi- /w44774 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Gs /Oi- /w44774 %(AdditionalOptions)</AdditionalOptions>
|
||||||
@@ -167,9 +173,6 @@
|
|||||||
<ClCompile Include="$(SysShareDir)cppregex.cpp" />
|
<ClCompile Include="$(SysShareDir)cppregex.cpp" />
|
||||||
<ClCompile Include="$(SysShareDir)random.c" />
|
<ClCompile Include="$(SysShareDir)random.c" />
|
||||||
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
<ClCompile Include="$(SysWindDir)ntsound.c" />
|
||||||
<ClCompile Include="$(SysWindDir)stubs.c">
|
|
||||||
<PreprocessorDefinitions>TTYSTUB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="$(SysWindDir)windmain.c" />
|
<ClCompile Include="$(SysWindDir)windmain.c" />
|
||||||
<ClCompile Include="$(SysWindDir)windsys.c" />
|
<ClCompile Include="$(SysWindDir)windsys.c" />
|
||||||
<ClCompile Include="$(SysWindDir)win10.c" />
|
<ClCompile Include="$(SysWindDir)win10.c" />
|
||||||
@@ -311,4 +314,4 @@
|
|||||||
<Target Name="AfterRebuild">
|
<Target Name="AfterRebuild">
|
||||||
<MSBuild Projects="$(vsDir)NetHack\afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
<MSBuild Projects="$(vsDir)NetHack\afternethack.proj" Targets="Build" Properties="Configuration=$(Configuration)" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
+35
-3
@@ -32,8 +32,10 @@ extern void nethack_exit(int) NORETURN;
|
|||||||
extern void mswin_destroy_reg(void);
|
extern void mswin_destroy_reg(void);
|
||||||
#endif
|
#endif
|
||||||
#ifdef TTY_GRAPHICS
|
#ifdef TTY_GRAPHICS
|
||||||
|
#ifdef WIN32CON
|
||||||
extern void backsp(void);
|
extern void backsp(void);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
extern void clear_screen(void);
|
extern void clear_screen(void);
|
||||||
|
|
||||||
#ifdef update_file
|
#ifdef update_file
|
||||||
@@ -49,12 +51,14 @@ extern void (*cursesgraphics_mode_callback)(void);
|
|||||||
extern void (*utf8graphics_mode_callback)(void);
|
extern void (*utf8graphics_mode_callback)(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#ifdef kbhit
|
#ifdef kbhit
|
||||||
#undef kbhit
|
#undef kbhit
|
||||||
#endif
|
#endif
|
||||||
#include <conio.h.>
|
#include <conio.h.>
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef PC_LOCKING
|
#ifdef PC_LOCKING
|
||||||
static int eraseoldlocks(void);
|
static int eraseoldlocks(void);
|
||||||
@@ -65,9 +69,13 @@ int windows_nh_poskey(int *, int *, int *);
|
|||||||
void windows_raw_print(const char *);
|
void windows_raw_print(const char *);
|
||||||
char windows_yn_function(const char *, const char *, char);
|
char windows_yn_function(const char *, const char *, char);
|
||||||
static void windows_getlin(const char *, char *);
|
static void windows_getlin(const char *, char *);
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
extern int windows_console_custom_nhgetch(void);
|
extern int windows_console_custom_nhgetch(void);
|
||||||
void safe_routines(void);
|
void safe_routines(void);
|
||||||
int tty_self_recover_prompt(void);
|
int tty_self_recover_prompt(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
int other_self_recover_prompt(void);
|
int other_self_recover_prompt(void);
|
||||||
|
|
||||||
char orgdir[PATHLEN];
|
char orgdir[PATHLEN];
|
||||||
@@ -78,8 +86,11 @@ int windows_startup_state = 0; /* we flag whether to continue with this */
|
|||||||
extern int redirect_stdout; /* from sys/share/pcsys.c */
|
extern int redirect_stdout; /* from sys/share/pcsys.c */
|
||||||
extern int GUILaunched;
|
extern int GUILaunched;
|
||||||
HANDLE hStdOut;
|
HANDLE hStdOut;
|
||||||
|
char default_window_sys[] =
|
||||||
#if defined(MSWIN_GRAPHICS)
|
#if defined(MSWIN_GRAPHICS)
|
||||||
char default_window_sys[] = "mswin";
|
"mswin";
|
||||||
|
#elif defined(TTY_GRAPHICS)
|
||||||
|
"tty";
|
||||||
#endif
|
#endif
|
||||||
#ifdef WANT_GETHDATE
|
#ifdef WANT_GETHDATE
|
||||||
static struct stat hbuf;
|
static struct stat hbuf;
|
||||||
@@ -437,11 +448,14 @@ mingw_main(int argc, char *argv[])
|
|||||||
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
|
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
/*
|
/*
|
||||||
* Get a set of valid safe windowport function
|
* Get a set of valid safe windowport function
|
||||||
* pointers during early startup initialization.
|
* pointers during early startup initialization.
|
||||||
*/
|
*/
|
||||||
safe_routines();
|
safe_routines();
|
||||||
|
#endif /* WIN32CON */
|
||||||
|
|
||||||
early_init();
|
early_init();
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -556,13 +570,17 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
|||||||
iflags.use_background_glyph = FALSE;
|
iflags.use_background_glyph = FALSE;
|
||||||
if (WINDOWPORT(mswin))
|
if (WINDOWPORT(mswin))
|
||||||
iflags.use_background_glyph = TRUE;
|
iflags.use_background_glyph = TRUE;
|
||||||
|
#ifdef WIN32CON
|
||||||
if (WINDOWPORT(tty))
|
if (WINDOWPORT(tty))
|
||||||
consoletty_open(1);
|
consoletty_open(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
init_nhwindows(&argc, argv);
|
init_nhwindows(&argc, argv);
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
if (WINDOWPORT(tty))
|
if (WINDOWPORT(tty))
|
||||||
toggle_mouse_support();
|
toggle_mouse_support();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (gs.symset[PRIMARYSET].handling
|
if (gs.symset[PRIMARYSET].handling
|
||||||
&& !symset_is_compatible(gs.symset[PRIMARYSET].handling,
|
&& !symset_is_compatible(gs.symset[PRIMARYSET].handling,
|
||||||
@@ -760,12 +778,14 @@ process_options(int argc, char * argv[])
|
|||||||
|
|
||||||
nethack_exit(EXIT_SUCCESS);
|
nethack_exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
#ifdef MSWIN_GRAPHICS
|
||||||
if (GUILaunched) {
|
if (GUILaunched) {
|
||||||
if (!strncmpi(argv[1], "-clearreg", 6)) { /* clear registry */
|
if (!strncmpi(argv[1], "-clearreg", 6)) { /* clear registry */
|
||||||
mswin_destroy_reg();
|
mswin_destroy_reg();
|
||||||
nethack_exit(EXIT_SUCCESS);
|
nethack_exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
/* Don't initialize the full window system just to print usage */
|
/* Don't initialize the full window system just to print usage */
|
||||||
if (!strncmp(argv[1], "-?", 2) || !strncmp(argv[1], "/?", 2)) {
|
if (!strncmp(argv[1], "-?", 2) || !strncmp(argv[1], "/?", 2)) {
|
||||||
nhusage();
|
nhusage();
|
||||||
@@ -902,6 +922,7 @@ nhusage(void)
|
|||||||
#undef ADD_USAGE
|
#undef ADD_USAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
void
|
void
|
||||||
safe_routines(void)
|
safe_routines(void)
|
||||||
{
|
{
|
||||||
@@ -914,6 +935,7 @@ safe_routines(void)
|
|||||||
if (!GUILaunched)
|
if (!GUILaunched)
|
||||||
windowprocs.win_nhgetch = windows_console_custom_nhgetch;
|
windowprocs.win_nhgetch = windows_console_custom_nhgetch;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef PORT_HELP
|
#ifdef PORT_HELP
|
||||||
void
|
void
|
||||||
@@ -937,8 +959,8 @@ authorize_wizard_mode(void)
|
|||||||
|
|
||||||
#if defined(WIN32) && !defined(WIN32CON)
|
#if defined(WIN32) && !defined(WIN32CON)
|
||||||
static char exenamebuf[PATHLEN];
|
static char exenamebuf[PATHLEN];
|
||||||
extern HANDLE hConIn;
|
HANDLE hConIn;
|
||||||
extern HANDLE hConOut;
|
HANDLE hConOut;
|
||||||
boolean has_fakeconsole;
|
boolean has_fakeconsole;
|
||||||
|
|
||||||
char *
|
char *
|
||||||
@@ -1166,7 +1188,9 @@ getlock(void)
|
|||||||
const char *fq_lock;
|
const char *fq_lock;
|
||||||
#define OOPS_BUFSZ 512
|
#define OOPS_BUFSZ 512
|
||||||
char oops[OOPS_BUFSZ];
|
char oops[OOPS_BUFSZ];
|
||||||
|
#ifdef WIN32CON
|
||||||
boolean istty = WINDOWPORT(tty);
|
boolean istty = WINDOWPORT(tty);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* we ignore QUIT and INT at this point */
|
/* we ignore QUIT and INT at this point */
|
||||||
if (!lock_file(HLOCK, LOCKPREFIX, 10)) {
|
if (!lock_file(HLOCK, LOCKPREFIX, 10)) {
|
||||||
@@ -1197,9 +1221,11 @@ getlock(void)
|
|||||||
|
|
||||||
(void) nhclose(fd);
|
(void) nhclose(fd);
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
if (WINDOWPORT(tty))
|
if (WINDOWPORT(tty))
|
||||||
prompt_result = tty_self_recover_prompt();
|
prompt_result = tty_self_recover_prompt();
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
prompt_result = other_self_recover_prompt();
|
prompt_result = other_self_recover_prompt();
|
||||||
/*
|
/*
|
||||||
* prompt_result == 1 means recover old game.
|
* prompt_result == 1 means recover old game.
|
||||||
@@ -1212,8 +1238,10 @@ getlock(void)
|
|||||||
: (prompt_result == 1)
|
: (prompt_result == 1)
|
||||||
? "recover the old game"
|
? "recover the old game"
|
||||||
: "not start a new game");
|
: "not start a new game");
|
||||||
|
#ifdef WIN32CON
|
||||||
if (istty)
|
if (istty)
|
||||||
clear_screen();
|
clear_screen();
|
||||||
|
#endif
|
||||||
raw_printf("%s", oops);
|
raw_printf("%s", oops);
|
||||||
if (prompt_result == 1) { /* recover */
|
if (prompt_result == 1) { /* recover */
|
||||||
if (recover_savefile()) {
|
if (recover_savefile()) {
|
||||||
@@ -1231,8 +1259,10 @@ getlock(void)
|
|||||||
}
|
}
|
||||||
} else if (prompt_result < 0) { /* destroy old game */
|
} else if (prompt_result < 0) { /* destroy old game */
|
||||||
if (eraseoldlocks()) {
|
if (eraseoldlocks()) {
|
||||||
|
#ifdef WIN32CON
|
||||||
if (istty)
|
if (istty)
|
||||||
clear_screen(); /* display gets fouled up otherwise */
|
clear_screen(); /* display gets fouled up otherwise */
|
||||||
|
#endif
|
||||||
goto gotlock;
|
goto gotlock;
|
||||||
} else {
|
} else {
|
||||||
unlock_file(HLOCK);
|
unlock_file(HLOCK);
|
||||||
@@ -1320,6 +1350,7 @@ file_newer(const char* a_path, const char* b_path)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
/*
|
/*
|
||||||
* returns:
|
* returns:
|
||||||
* 1 if game should be recovered
|
* 1 if game should be recovered
|
||||||
@@ -1391,6 +1422,7 @@ tty_self_recover_prompt(void)
|
|||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
other_self_recover_prompt(void)
|
other_self_recover_prompt(void)
|
||||||
|
|||||||
+30
-1
@@ -48,6 +48,7 @@ extern int GUILaunched;
|
|||||||
extern boolean getreturn_enabled;
|
extern boolean getreturn_enabled;
|
||||||
int redirect_stdout;
|
int redirect_stdout;
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
typedef HWND(WINAPI *GETCONSOLEWINDOW)();
|
typedef HWND(WINAPI *GETCONSOLEWINDOW)();
|
||||||
static HWND GetConsoleHandle(void);
|
static HWND GetConsoleHandle(void);
|
||||||
static HWND GetConsoleHwnd(void);
|
static HWND GetConsoleHwnd(void);
|
||||||
@@ -66,6 +67,21 @@ extern void safe_routines(void);
|
|||||||
|
|
||||||
int def_kbhit(void);
|
int def_kbhit(void);
|
||||||
int (*nt_kbhit)() = def_kbhit;
|
int (*nt_kbhit)() = def_kbhit;
|
||||||
|
#endif /* WIN32CON */
|
||||||
|
|
||||||
|
#ifndef WIN32CON
|
||||||
|
/* this is used as a printf() replacement when the window
|
||||||
|
* system isn't initialized yet
|
||||||
|
*/
|
||||||
|
void msmsg
|
||||||
|
VA_DECL(const char *, fmt)
|
||||||
|
{
|
||||||
|
VA_START(fmt);
|
||||||
|
VA_INIT(fmt, const char *);
|
||||||
|
VA_END();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
char
|
char
|
||||||
switchar(void)
|
switchar(void)
|
||||||
@@ -187,8 +203,10 @@ return &szFullPath[0];
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef MSWIN_GRAPHICS
|
||||||
extern void mswin_raw_print_flush(void);
|
extern void mswin_raw_print_flush(void);
|
||||||
extern void mswin_raw_print(const char *);
|
extern void mswin_raw_print(const char *);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* fatal error */
|
/* fatal error */
|
||||||
/*VARARGS1*/
|
/*VARARGS1*/
|
||||||
@@ -211,8 +229,10 @@ VA_DECL(const char *, s)
|
|||||||
Strcat(buf, "\n");
|
Strcat(buf, "\n");
|
||||||
raw_printf(buf);
|
raw_printf(buf);
|
||||||
}
|
}
|
||||||
|
#ifdef MSWIN_GRAPHICS
|
||||||
if (windowprocs.win_raw_print == mswin_raw_print)
|
if (windowprocs.win_raw_print == mswin_raw_print)
|
||||||
mswin_raw_print_flush();
|
mswin_raw_print_flush();
|
||||||
|
#endif
|
||||||
VA_END();
|
VA_END();
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
@@ -233,8 +253,10 @@ win32_abort(void)
|
|||||||
exit_nhwindows((char *) 0);
|
exit_nhwindows((char *) 0);
|
||||||
iflags.window_inited = FALSE;
|
iflags.window_inited = FALSE;
|
||||||
}
|
}
|
||||||
|
#ifdef WIN32CON
|
||||||
if (!WINDOWPORT(mswin) && !WINDOWPORT(safestartup))
|
if (!WINDOWPORT(mswin) && !WINDOWPORT(safestartup))
|
||||||
safe_routines();
|
safe_routines();
|
||||||
|
#endif
|
||||||
if (wizard) {
|
if (wizard) {
|
||||||
raw_print("Execute debug breakpoint wizard?");
|
raw_print("Execute debug breakpoint wizard?");
|
||||||
if ((c = nhgetch()) == 'y' || c == 'Y')
|
if ((c = nhgetch()) == 'y' || c == 'Y')
|
||||||
@@ -368,6 +390,7 @@ void port_insert_pastebuf(char *buf)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
static HWND
|
static HWND
|
||||||
GetConsoleHandle(void)
|
GetConsoleHandle(void)
|
||||||
{
|
{
|
||||||
@@ -405,7 +428,7 @@ GetConsoleHwnd(void)
|
|||||||
/* printf("%d iterations\n", iterations); */
|
/* printf("%d iterations\n", iterations); */
|
||||||
return hwndFound;
|
return hwndFound;
|
||||||
}
|
}
|
||||||
|
#endif /* WIN32CON */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RUNTIME_PORT_ID
|
#ifdef RUNTIME_PORT_ID
|
||||||
@@ -447,12 +470,14 @@ nethack_exit(int code)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
if (!GUILaunched) {
|
if (!GUILaunched) {
|
||||||
windowprocs = *get_safe_procs(1);
|
windowprocs = *get_safe_procs(1);
|
||||||
/* use our custom version which works
|
/* use our custom version which works
|
||||||
a little cleaner than the stdio one */
|
a little cleaner than the stdio one */
|
||||||
windowprocs.win_nhgetch = windows_console_custom_nhgetch;
|
windowprocs.win_nhgetch = windows_console_custom_nhgetch;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (getreturn_enabled) {
|
if (getreturn_enabled) {
|
||||||
raw_print("\n");
|
raw_print("\n");
|
||||||
wait_synch();
|
wait_synch();
|
||||||
@@ -460,6 +485,7 @@ nethack_exit(int code)
|
|||||||
exit(code);
|
exit(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32CON
|
||||||
#undef kbhit
|
#undef kbhit
|
||||||
#include <conio.h>
|
#include <conio.h>
|
||||||
|
|
||||||
@@ -488,13 +514,16 @@ getreturn(const char *str)
|
|||||||
in_getreturn = FALSE;
|
in_getreturn = FALSE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* nethack_enter_windows() is called from main immediately after
|
/* nethack_enter_windows() is called from main immediately after
|
||||||
initializing the window port */
|
initializing the window port */
|
||||||
void nethack_enter_windows(void)
|
void nethack_enter_windows(void)
|
||||||
{
|
{
|
||||||
|
#ifdef WIN32CON
|
||||||
if (WINDOWPORT(tty))
|
if (WINDOWPORT(tty))
|
||||||
nethack_enter_consoletty();
|
nethack_enter_consoletty();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CP437 to Unicode mapping according to the Unicode Consortium */
|
/* CP437 to Unicode mapping according to the Unicode Consortium */
|
||||||
|
|||||||
+6
-6
@@ -106,7 +106,7 @@ struct window_procs tty_procs = {
|
|||||||
#ifdef MSDOS
|
#ifdef MSDOS
|
||||||
| WC_TILED_MAP | WC_ASCII_MAP
|
| WC_TILED_MAP | WC_ASCII_MAP
|
||||||
#endif
|
#endif
|
||||||
#if defined(WIN32)
|
#if defined(WIN32CON)
|
||||||
| WC_MOUSE_SUPPORT
|
| WC_MOUSE_SUPPORT
|
||||||
#endif
|
#endif
|
||||||
| WC_COLOR | WC_HILITE_PET | WC_INVERSE | WC_EIGHT_BIT_IN),
|
| WC_COLOR | WC_HILITE_PET | WC_INVERSE | WC_EIGHT_BIT_IN),
|
||||||
@@ -120,7 +120,7 @@ struct window_procs tty_procs = {
|
|||||||
#endif
|
#endif
|
||||||
| WC2_DARKGRAY | WC2_SUPPRESS_HIST | WC2_URGENT_MESG | WC2_STATUSLINES
|
| WC2_DARKGRAY | WC2_SUPPRESS_HIST | WC2_URGENT_MESG | WC2_STATUSLINES
|
||||||
| WC2_U_UTF8STR
|
| WC2_U_UTF8STR
|
||||||
#if !defined(NO_TERMS) || defined(WIN32)
|
#if !defined(NO_TERMS) || defined(WIN32CON)
|
||||||
| WC2_U_24BITCOLOR
|
| WC2_U_24BITCOLOR
|
||||||
#endif
|
#endif
|
||||||
),
|
),
|
||||||
@@ -555,7 +555,7 @@ tty_preference_update(const char *pref)
|
|||||||
new_status_window();
|
new_status_window();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32CON)
|
||||||
consoletty_preference_update(pref);
|
consoletty_preference_update(pref);
|
||||||
#else
|
#else
|
||||||
genl_preference_update(pref);
|
genl_preference_update(pref);
|
||||||
@@ -1531,7 +1531,7 @@ tty_exit_nhwindows(const char *str)
|
|||||||
#ifndef NO_TERMS /*(until this gets added to the window interface)*/
|
#ifndef NO_TERMS /*(until this gets added to the window interface)*/
|
||||||
tty_shutdown(); /* cleanup termcap/terminfo/whatever */
|
tty_shutdown(); /* cleanup termcap/terminfo/whatever */
|
||||||
#endif
|
#endif
|
||||||
#ifdef WIN32
|
#ifdef WIN32CON
|
||||||
consoletty_exit();
|
consoletty_exit();
|
||||||
#endif
|
#endif
|
||||||
iflags.window_inited = 0;
|
iflags.window_inited = 0;
|
||||||
@@ -4085,7 +4085,7 @@ end_glyphout(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32CON
|
||||||
void
|
void
|
||||||
g_putch(int in_ch)
|
g_putch(int in_ch)
|
||||||
{
|
{
|
||||||
@@ -4125,7 +4125,7 @@ g_putch(int in_ch)
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* !WIN32 */
|
#endif /* !WIN32CON */
|
||||||
|
|
||||||
#if defined(ENHANCED_SYMBOLS) && defined(UNIX)
|
#if defined(ENHANCED_SYMBOLS) && defined(UNIX)
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user