Windows CE port fixes/enhancements (from <Someone>)
A few other fixes: - bug: text window does not scroll left on left arrow - pcmain.c: fix warning: _fileno() returns void* in Windows CE SDK 3.5.0 only: - files.c: compile error: don't include <signal.h> if NO_SIGNAL is defined. WinMo does not support POSIX signals - version.c: compile error: append_port_id() is undeclared - link error: mktime() is unsupported -> define it in celib.c -<Someone>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -45,7 +45,7 @@ extern int errno;
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if defined(UNIX) || defined(VMS) || defined(_MSC_VER)
|
||||
#if defined(UNIX) || defined(VMS) || !defined(NO_SIGNAL)
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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." );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user