diff --git a/include/extern.h b/include/extern.h index c51c314be..d6c855abe 100644 --- a/include/extern.h +++ b/include/extern.h @@ -2400,6 +2400,10 @@ E unsigned long FDECL(get_feature_notice_ver, (char *)); E unsigned long NDECL(get_current_feature_ver); E const char *FDECL(copyright_banner_line, (int)); +#ifdef RUNTIME_PORT_ID +E void FDECL(append_port_id, (char *)); +#endif + /* ### video.c ### */ #ifdef MSDOS diff --git a/include/wceconf.h b/include/wceconf.h index 079877449..1df61faf8 100644 --- a/include/wceconf.h +++ b/include/wceconf.h @@ -1,5 +1,4 @@ /* NetHack 3.5 wceconf.h $Date$ $Revision$ */ -/* SCCS Id: @(#)wceconf.h 3.5 2005/01/23 */ /* Copyright (C) 2001 by Alex Kompel */ /* NetHack may be freely redistributed. See license for details. */ @@ -272,6 +271,7 @@ struct tm { extern struct tm * __cdecl localtime(const time_t *); extern time_t __cdecl time(time_t *); +extern time_t __cdecl mktime(struct tm * tb); /* __stdio.h__ */ #ifndef BUFSIZ diff --git a/src/files.c b/src/files.c index 2db4e8424..13fe43ff5 100644 --- a/src/files.c +++ b/src/files.c @@ -45,7 +45,7 @@ extern int errno; #include #endif -#if defined(UNIX) || defined(VMS) || defined(_MSC_VER) +#if defined(UNIX) || defined(VMS) || !defined(NO_SIGNAL) #include #endif diff --git a/sys/share/pcmain.c b/sys/share/pcmain.c index ae1de4352..da1873f81 100644 --- a/sys/share/pcmain.c +++ b/sys/share/pcmain.c @@ -1,5 +1,4 @@ /* NetHack 3.5 pcmain.c $Date$ $Revision$ */ -/* SCCS Id: @(#)pcmain.c 3.5 2008/01/30 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -236,7 +235,7 @@ char *argv[]; */ if (!strncmp(argv[1], "-s", 2)) { #if defined(MSWIN_GRAPHICS) || defined(WIN32CON) - int sfd = _fileno(stdout); + int sfd = (int)_fileno(stdout); redirect_stdout = (sfd >= 0) ? !isatty(sfd) : 0; # ifdef MSWIN_GRAPHICS diff --git a/sys/wince/celib.c b/sys/wince/celib.c index 75d60cff9..4c0d0b487 100644 --- a/sys/wince/celib.c +++ b/sys/wince/celib.c @@ -1,5 +1,4 @@ /* NetHack 3.5 celib.c $Date$ $Revision$ */ -/* SCCS Id: @(#)celib.c 3.5 2005/01/23 */ /* Copyright (C) 2001 by Alex Kompel */ /* NetHack may be freely redistributed. See license for details. */ @@ -67,6 +66,21 @@ time_t __cdecl time(time_t * timeptr) return _t_cnv.t_val; } +time_t __cdecl mktime(struct tm * tb) +{ + if(!tb) return (time_t)-1; + + _t_cnv.tm_val.yr = tb->tm_year; + _t_cnv.tm_val.mo = tb->tm_mon; + _t_cnv.tm_val.dd = tb->tm_mday; + _t_cnv.tm_val.hh = tb->tm_hour; + _t_cnv.tm_val.mm = tb->tm_min; + _t_cnv.tm_val.ss = tb->tm_sec; + _t_cnv.tm_val.wd = tb->tm_wday; + + return _t_cnv.t_val; +} + /*------------------------------------------------------------------------------*/ /* __io.h__ */ /* Hack io.h function with stdio.h functions */ diff --git a/sys/wince/cesetup.bat b/sys/wince/cesetup.bat index e459a0417..9f7215434 100755 --- a/sys/wince/cesetup.bat +++ b/sys/wince/cesetup.bat @@ -17,6 +17,7 @@ copy ..\..\win\win32\mnunsel.uu ..\..\wince\mnunsel.uu copy ..\..\win\win32\petmark.uu ..\..\wince\petmark.uu copy ..\..\sys\wince\menubar.uu ..\..\wince\menubar.uu copy ..\..\sys\wince\keypad.uu ..\..\wince\keypad.uu +copy ..\..\sys\wince\nhico.uu ..\..\wince\nhico.uu REM REM Get these files from sys\wince REM diff --git a/sys/wince/mhcmd.c b/sys/wince/mhcmd.c index e27da34db..8000db9ad 100644 --- a/sys/wince/mhcmd.c +++ b/sys/wince/mhcmd.c @@ -1,3 +1,4 @@ +/* NetHack 3.5 mhcmd.c $Date$ $Revision$ */ /* NetHack may be freely redistributed. See license for details. */ #include "winMS.h" @@ -218,7 +219,7 @@ NHCmdPadCell cells_layout_item_handling[NH_CMDPAD_CELLNUM] = { -1, "T", "T", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, { -1, "R", "R", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, { -1, "D", "D", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, - { -1, "Q", "Q", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, + { -1, "=", "=", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, { -1, "i", "i", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, { -1, "Q", "Q", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, { -1, "A", "A", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 }, diff --git a/sys/wince/mhmain.c b/sys/wince/mhmain.c index e725ee7c2..dc1c91c47 100644 --- a/sys/wince/mhmain.c +++ b/sys/wince/mhmain.c @@ -876,21 +876,6 @@ LRESULT onWMCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) DialogBox(GetNHApp()->hApp, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; - case IDM_CMD_DLG: { - char input[BUFSZ]; - char* p; - boolean ctrl = FALSE; - mswin_getlin("Enter command", input); - for(p=input; *p; p++) { - if( *p == '^' ) { - ctrl = TRUE; - continue; - } - NHEVENT_KBD(ctrl? C(*p) : *p); - ctrl = FALSE; - } - } break; - case IDM_EXIT: done2(); break; @@ -1090,7 +1075,7 @@ void mswin_select_map_mode(int mode) /* update "Fit To Screen" item text */ { TCHAR wbuf[BUFSZ]; - MENUITEMINFO mi; + TBBUTTONINFO tbbi; ZeroMemory( wbuf, sizeof(wbuf) ); if( !LoadString( @@ -1101,17 +1086,15 @@ void mswin_select_map_mode(int mode) panic("cannot load main menu strings"); } - ZeroMemory( &mi, sizeof(mi) ); - mi.cbSize = sizeof(mi); - mi.fType = MFT_STRING; - mi.fMask = MIIM_TYPE; - mi.dwTypeData = wbuf; - mi.cch = wcslen(wbuf); - if( !SetMenuItemInfo( - hmenuMap, + ZeroMemory( &tbbi, sizeof(tbbi) ); + tbbi.cbSize = sizeof(tbbi); + tbbi.dwMask = TBIF_TEXT; + tbbi.pszText = wbuf; + if( !SendMessage( + GetNHApp()->hMenuBar, + TB_SETBUTTONINFO, IDM_MAP_FIT_TO_SCREEN, - FALSE, - &mi) ) { + (LPARAM)&tbbi) ) { error( "Cannot update IDM_MAP_FIT_TO_SCREEN menu item." ); } } diff --git a/sys/wince/mhtext.c b/sys/wince/mhtext.c index 43ade1b50..01581df62 100644 --- a/sys/wince/mhtext.c +++ b/sys/wince/mhtext.c @@ -259,6 +259,10 @@ void LayoutText(HWND hWnd) LRESULT CALLBACK NHTextControlWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { + /* tell Windows not to process arrow keys (we want them) */ + case WM_GETDLGCODE: + return DLGC_WANTARROWS; + case WM_KEYDOWN: switch( wParam ) { case VK_SPACE: diff --git a/sys/wince/resource.h b/sys/wince/resource.h index babfb343f..25c7179f3 100644 --- a/sys/wince/resource.h +++ b/sys/wince/resource.h @@ -149,16 +149,15 @@ #define IDM_HELP_MENU 32828 #define IDM_VIEW_OPTIONS 32829 #define IDM_DIRECT_COMMAND 32830 -#define IDM_CMD_DLG 32832 -#define IDS_TEXT_WRAP 32833 -#define IDS_TEXT_UNWRAP 32834 +#define IDS_TEXT_WRAP 32831 +#define IDS_TEXT_UNWRAP 32832 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 155 -#define _APS_NEXT_COMMAND_VALUE 32831 +#define _APS_NEXT_COMMAND_VALUE 32833 #define _APS_NEXT_CONTROL_VALUE 1334 #define _APS_NEXT_SYMED_VALUE 110 #endif diff --git a/sys/wince/winMS.h b/sys/wince/winMS.h index f2ac5a3fb..4d85c4467 100644 --- a/sys/wince/winMS.h +++ b/sys/wince/winMS.h @@ -182,4 +182,7 @@ void mswin_write_reg(void); BOOL mswin_has_keyboard(void); void mswin_set_fullscreen(BOOL is_fullscreen); + +extern winid WIN_STATUS; + #endif /* WINmswin_H */ diff --git a/sys/wince/winhack.c b/sys/wince/winhack.c index d94b09e17..17ecf17eb 100644 --- a/sys/wince/winhack.c +++ b/sys/wince/winhack.c @@ -24,7 +24,7 @@ static void win_hack_init(int, char **); static void __cdecl mswin_moveloop(void *); static BOOL setMapTiles(const char* fname); -extern void FDECL(pcmain, (int,char **)); +extern boolean FDECL(pcmain, (int,char **)); #define MAX_CMDLINE_PARAM 255 @@ -41,6 +41,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, TCHAR* p; TCHAR wbuf[NHSTR_BUFSIZE]; char buf[NHSTR_BUFSIZE]; + boolean resuming; sys_early_init(); @@ -122,9 +123,9 @@ int APIENTRY WinMain(HINSTANCE hInstance, GetModuleFileName(NULL, wbuf, BUFSZ); argv[0] = _strdup(NH_W2A(wbuf, buf, BUFSZ)); - pcmain(argc,argv); + resuming = pcmain(argc,argv); - moveloop(); + moveloop(resuming); return 0; } diff --git a/sys/wince/winhcksp.rc b/sys/wince/winhcksp.rc index ddc3bf54c..04b335ffa 100644 --- a/sys/wince/winhcksp.rc +++ b/sys/wince/winhcksp.rc @@ -37,12 +37,12 @@ IDI_WINHACK ICON DISCARDABLE "..\\..\\wince\\NETHACK.ICO" IDC_WINHACK MENU DISCARDABLE BEGIN - MENUITEM "Type Cmd", IDM_DIRECT_COMMAND + MENUITEM "Entire Map", IDM_MAP_FIT_TO_SCREEN POPUP "Menu" BEGIN MENUITEM "Options", IDM_VIEW_OPTIONS MENUITEM "Keypad", IDM_VIEW_KEYPAD - MENUITEM "Cmd", IDM_CMD_DLG + MENUITEM "Cmd", IDM_DIRECT_COMMAND MENUITEM SEPARATOR MENUITEM "ASCII", IDM_MAP_ASCII8X8 MENUITEM "Tiles", IDM_MAP_TILES @@ -232,7 +232,7 @@ END IDC_WINHACK SHMENUBAR DISCARDABLE BEGIN IDC_WINHACK, 2, - I_IMAGENONE, IDM_DIRECT_COMMAND, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, IDM_DIRECT_COMMAND, 0, NOMENU, + I_IMAGENONE, IDM_MAP_FIT_TO_SCREEN, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, IDM_MAP_FIT_TO_SCREEN, 0, NOMENU, I_IMAGENONE, ID_VIEW, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_VIEW, 0, 1, END @@ -313,7 +313,6 @@ END STRINGTABLE DISCARDABLE BEGIN IDM_MAP_FIT_TO_SCREEN "Entire Map" - IDM_DIRECT_COMMAND "Type Cmd" IDS_CAP_FILE "File" IDS_CAP_HELP "Help" IDS_CAP_MAP "Map"