/* #define X11_GRAPHICS */ /* X11 interface */
/* #define QT_GRAPHICS */ /* Qt interface */
/* #define GNOME_GRAPHICS */ /* Gnome interface */
+/* #define MSWIN_GRAPHICS */ /* Windows NT, CE, Graphics */
/*
* Define the default window system. This should be one that is compiled
# endif
#endif
+#ifdef MSWIN_GRAPHICS
+# ifdef TTY_GRAPHICS
+# undef TTY_GRAPHICS
+# endif
+# ifndef DEFAULT_WINDOW_SYS
+# define DEFAULT_WINDOW_SYS "mswin"
+# endif
+# define HACKDIR "\\nethack"
+#endif
+
#ifndef DEFAULT_WINDOW_SYS
# define DEFAULT_WINDOW_SYS "tty"
#endif
/*
* Windows NT Autodetection
*/
+#ifdef _WIN32_WCE
+# ifndef WIN32
+# define WIN32
+# endif
+#endif
#ifdef WIN32
# undef UNIX
# define STRNCMPI
# define USE_STDARG
# define NEED_VARARGS
+
+# ifdef UNDER_CE
+# define WIN_CE
+# define STRCMPI
+# endif
+
+/* ARM - the processor; avoids conflict with ARM in hack.h */
+# ifdef ARM
+# undef ARM
+# endif
#endif
#endif
#ifdef WIN32
+#ifdef WIN_CE
+#include "wceconf.h"
+#else
#include "ntconf.h"
#endif
+#endif
/* Displayable name of this port; don't redefine if defined in *conf.h */
#ifndef PORT_ID
#define Delay(a) msleep(a)
# endif
#define Close close
+#ifndef WIN_CE
#define DeleteFile unlink
#endif
+#endif
#ifdef USER_SOUNDS
extern int FDECL(add_sound_mapping, (const char* mapping));
STATIC_DCL boolean FDECL(place_niche,(struct mkroom *,int*,int*,int*));
STATIC_DCL void FDECL(makeniche,(int));
STATIC_DCL void NDECL(make_niches);
+
+#ifdef WIN_CE
+static int __cdecl do_comp(const void *vx, const void *vy);
+#else
STATIC_PTR int FDECL(do_comp,(const genericptr,const genericptr));
+#endif
+
STATIC_DCL void FDECL(dosdoor,(XCHAR_P,XCHAR_P,struct mkroom *,int));
STATIC_DCL void FDECL(join,(int,int,BOOLEAN_P));
STATIC_DCL void FDECL(do_room_or_subroom, (struct mkroom *,int,int,int,int,
/* Args must be (const genericptr) so that qsort will always be happy. */
+#ifdef WIN_CE
+static int __cdecl do_comp(const void *vx, const void *vy)
+#else
STATIC_PTR int
do_comp(vx,vy)
const genericptr vx;
const genericptr vy;
+#endif
{
#ifdef LINT
/* lint complains about possible pointer alignment problems, but we know
#if defined(SYSV) || defined(DGUX)
qsort((genericptr_t) rooms, (unsigned)nroom, sizeof(struct mkroom), do_comp);
#else
+# if defined(WIN_CE)
+ qsort((genericptr_t) rooms, (unsigned)nroom, sizeof(struct mkroom), (int (__cdecl*)(const void *, const void *))do_comp);
+# else
qsort((genericptr_t) rooms, nroom, sizeof(struct mkroom), do_comp);
+# endif
#endif
}
extern const char *killed_by_prefix[];
-#if defined(TTY_GRAPHICS) || defined(X11_GRAPHICS) || defined(GEM_GRAPHICS)
+#if defined(TTY_GRAPHICS) || defined(X11_GRAPHICS) || defined(GEM_GRAPHICS) || defined(MSWIN_GRAPHICS)
# define TEXT_TOMBSTONE
#endif
#if defined(mac) || defined(__BEOS__) || defined(WIN32_GRAPHICS)
#include "winGnome.h"
extern struct window_procs Gnome_procs;
#endif
+#ifdef MSWIN_GRAPHICS
+#include "winMS.h"
+extern struct window_procs mswin_procs;
+#endif
STATIC_DCL void FDECL(def_raw_print, (const char *s));
#endif
#ifdef GNOME_GRAPHICS
{ &Gnome_procs, 0 },
+#endif
+#ifdef MSWIN_GRAPHICS
+ { &mswin_procs, 0 },
#endif
{ 0, 0 } /* must be last */
};
# ifndef WIN32
Strcpy (tmp, str);
# else
- *(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0';
+ #ifdef UNICODE
+ {
+ TCHAR wbuf[BUFSZ];
+ GetModuleFileName((HANDLE)0, wbuf, BUFSZ);
+ WideCharToMultiByte(CP_ACP, 0, wbuf, -1, tmp, bsize, NULL, NULL);
+ }
+ #else
+ *(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0';
+ #endif
# endif
tmp2 = strrchr(tmp, PATH_SEPARATOR);
if (tmp2) *tmp2 = '\0';
#include <ctype.h>
#include <fcntl.h>
-#ifndef MSDOS /* already done */
+#if !defined(MSDOS) && !defined(WIN_CE) /* already done */
#include <process.h>
#endif
#ifdef __GO32__
- Copyright (c) NetHack Development Team 1990-2000
+ Copyright (c) NetHack Development Team 1990-2002
NetHack may be freely redistributed. See license for details.
==============================================================
Instructions for compiling and installing
- NetHack 3.3 on a Windows NT, 2000, or Windows 9x system
+ NetHack 3.3 on a Windows NT, 2000, or XP system
==============================================================
- (or, How to make NetHack 3.3.1 for the WIN32 Console subsystem)
- Last revision: August 2, 2000
-
-Credit for the PC versions of NetHack goes to the PC Development team
-of Paul Winner, Kevin Smolkowski, Michael Allison, Yitzhak Sapir, Bill
-Dyer, Timo Hakulinen, Yamamoto Keizo, Mike Threepoint, Mike Stephenson,
-Stephen White, Ken Washikita and Janet Walz.
+ Last revision: January 12, 2002
Credit for the porting of NetHack to the Win32 Console Subsystem goes to
the NT Porting Team started by Michael Allison.
+Credit for the Win32 Graphical version of NetHack (aka Winhack) goes to
+Alex Kompel.
+
+You can build either the TTY version of NetHack or the Windows Graphical
+version. In either case you will need:
+ o A copy of Microsoft Visual C V6.0 or later. Things may work with
+ earlier version of the compiler, but the current code has not been
+ tested with an earlier compiler.
+
+ o A version of a UUDECODE utility in your path. The Makefiles and
+ the VC Project files assume that a utility called uudecode.exe is
+ in your path.
+
+FIRST STEP:
+
+The first step in building either version of NetHack is to execute
+sys/winnt/Install.nt. Specify either TTY, or GUI. (You can
+substitute WINHACK for GUI if you wish).
+
+For the tty version using the NT Console I/O subsystem:
+ cd sys\winnt
+ nhsetup TTY
+
+For the graphical version (WinHack)
+ cd sys\winnt
+ nhsetup WINHACK
+
+Files appropriate for the selected build will be moved to the
+appropriate place.
+
+If you wish to build the TTY version, proceed now to "BUILDING TTY VERSION."
+If you wish to build the graphical version, proceed now to "BUILDING GRAPHICAL VERSION."
+
+------------------------
+| BUILDING TTY VERSION |
+------------------------
+
This version of NetHack for Win32 is a tty port utilizing the WIN32
Console I/O subsystem.
I. Dispelling the Myths:
- Compiling NetHack is not as easy as it sounds, nor as hard as it looks,
- however it will behoove you to read this entire file through before
- beginning the task.
+ Compiling NetHack for WIN32 TTY is not as easy as it sounds, nor as hard
+ as it looks, however it will behoove you to read this entire section
+ through before beginning the task.
We have provided a Makefile for building NetHack using the
following compiler:
2) The executable produced by this port is a 32-bit, flat-address space,
non-overlayed .exe file, which should run on any true Win32 environment.
-3) If you encounter a bug and wish to report it, please send e-mail to:
+
+------------------------------
+| BUILDING GRAPHICAL VERSION |
+------------------------------
+
+
+This version of NetHack is a Win32 native port built on the Windows API.
+
+I. Dispelling the Myths:
+
+ Compiling WIN32 is straightforward, as long as you have Visual C
+ correctly installed. It is also assumed that you changed your
+ directory to sys\winnt and executed:
+ nhsetup winhack
+ as described at the top of this document.
+
+II. To compile your copy of NetHack on a Windows NT/2000/XP machine:
+
+Setting Up
+
+1. A version of uudecode.exe is required to be in
+ your path when you attempt the build. If you don't have a version
+ of uudecode on your system, then you must find a way to uudecode
+ the following files elsewhere and move the decoded version to its
+ target directory:
+
+ win\win32\mnsel.uu ---> winhacknt\mnsel.bmp
+ win\win32\mnunsel.uu ---> winhacknt\mnunsel.bmp
+ sys\winnt\nhico.uu ---> winhacknt\nethack.ico
+
+ (The winhacknt directory should have been created when you
+ issued the "nhsetup winhack" command earlier.)
+
+2. Make sure all the NetHack files are in the appropriate directory
+ structure. You should have a main directory with subdirectories
+ dat, doc, include, src, sys\share, sys\winnt, util, win\win32,
+ and at this point, you should also have winhacknt (created by
+ nhsetup.bat in sys\winnt.)
+
+ Other subdirectories may also be included in your distribution, but
+ they are not necessary for building the graphical version of NetHack
+ (you can delete them to save space if you wish.)
+
+ Required Directories for a Win32 Console NetHack:
+
+ top
+ |
+ -----------------------------------------/ /---------------
+ | | | | | | | | |
+ util dat doc include src sys win winhacknt binary
+ | |
+ ------ -----
+ | | |
+ share winnt win32
+
+ Those last two (winhacknt and binary) are created during the
+ build. They are not disributed as part of the source distribution.
+ nhsetup.bat moves many files into the "winhacknt" directory.
+
+ Check the file "Files" in your top level directory for an exact
+ listing of what file is in which directory. In order for the
+ build process to work, all the source files must be in the proper
+ locations. Remember that nhsetup.bat moves many files around to
+ their intended locations.
+
+3. Start the Visual C IDE. In the Visual C IDE Menus, choose:
+ File | Open Workspace
+
+4. In the Visual C "Open Workspace" dialog box, navigate to your nethack
+ source directory, specifically the winhacknt subdirectory.
+
+ In there, highlight "nethack.dsw" and click on Open.
+
+5. Once the workspace has been opened, you should see the following list
+ in the Visual C selection window:
+ + dgncomp files
+ + dgnstuff files
+ + dlb_main files
+ + levcomp files
+ + levstuff files
+ + makedefs files
+ + recover files
+ + tile2bmp files
+ + tilemap files
+ + winhack files
+
+6. On the Visual C menus, choose:
+ Project | Set Active Project | winhack
+
+7. On the Visual C menus once again, choose:
+ Build | Build winhack.exe
+
+ This starts the build. If all goes well, you will have a playable
+ game of netack in the "binary" directory.
+
+ In any case, it is likely that the command prompt window where you are
+
+ doing the compiling will be occupied for a quite a while. If all
+ goes well, you will get an NetHack executable.
+
+Running NetHack
+
+7. Make sure all of the support files -- Guidebook.txt, license,
+ Defaults.nh, winhack.exe, nhdat, tiles.bmp, and recover.exe
+ -- were copied to the binary directory.
+ (If not, find them in the tree and move them there yourself if they
+ exist. If they don't exist, something has gone wrong)
+
+ Defaults.nh is actually distributed in the sources as sys/winnt/winnt.cnf,
+ but the build process should take care of moving it and renaming it
+ correctly.
+
+ Edit Defaults.nh to reflect your particular setup and personal
+ preferences, by following the comments. As with all releases since
+ 3.2.1, HACKDIR defaults to the same directory as that where the winhack.exe
+ executable resides. You only need to set HACKDIR in Defaults.nh if,
+ for some reason, you wish to override that.
+
+8a. Running from the command prompt:
+
+ If you add the directory containing the NetHack executable
+ to your PATH,
+ You can just type "winhack" to start it up. Alternatively, you
+ can explicitly invoke it with a command such as
+ "c:\games\nethack\winhack" (specifying whatever drive and directory
+ your NetHack executable resides in) each time.
+
+
+8b. Running from a Windows shortcut (win95 or NT4.x)
+
+ If you will be running it by launching it from program manager
+ or from a shortcut, just use the following information when
+ setting up the icon or shortcut.
+
+ Description : NetHack 3.3.2
+ Command Line : C:\GAMES\NETHACK\WINHACK.EXE
+
+ (changing the directory to the appropriate one of course)
+
+9. Play NetHack. If it works, you're done!
+
+
+PROBLEMS
+
+ If you encounter a bug and wish to report it, please send e-mail to:
nethack-bugs@nethack.org
If you have any comments or suggestions, feel free to drop us a line c/o:
-@REM SCCS Id: @(#)nhsetup.bat 96/10/30
-@REM Copyright (c) NetHack PC Development Team 1993, 1996
+@REM SCCS Id: @(#)nhsetup.bat 2002/01/12
+@REM Copyright (c) NetHack PC Development Team 1993, 1996, 2002
@REM NetHack may be freely redistributed. See license for details.
@REM Win32 setup batch file, see Install.nt for details
@REM
@echo off
+
+set err_nouu=
+set err_copy=
+set opt=
+
echo Checking to see if directories are set up properly
if not exist ..\..\include\hack.h goto err_dir
if not exist ..\..\src\hack.c goto err_dir
if not exist ..\..\sys\winnt\winnt.c goto err_dir
echo Directories look ok.
-:do_rest
-echo "Copying Makefile.NT to ..\..\src\Makefile"
-copy makefile.NT ..\..\src\Makefile >nul
-echo Makefile copied ok.
-if not exist ..\..\win\win32\NetHack.dsp goto nowin32
-echo "Copying Visual C project files to top level directory"
-copy ..\..\win\win32\NetHack.rc ..\..
-copy ..\..\win\win32\resource.h ..\..
-copy ..\..\win\win32\NetHack.dsw ..\..
-copy ..\..\win\win32\NetHack.clw ..\..
-copy ..\..\win\win32\makedefs.dsp ..\..
-copy ..\..\win\win32\NetHack.dsp ..\..
-copy ..\..\win\win32\tile2bmp.dsp ..\..
-copy ..\..\win\win32\dgncomp.dsp ..\..
-copy ..\..\win\win32\levcomp.dsp ..\..
-copy ..\..\win\win32\dlb_main.dsp ..\..
-copy ..\..\win\win32\tilemap.dsp ..\..
-copy ..\..\win\win32\recover.dsp ..\..
-
-:nowin32
+if "%1"=="tty" goto do_tty
+if "%1"=="WINHACK" goto do_winhack
+if "%1"=="tty" goto do_tty
+if "%1"=="winhack" goto do_winhack
+if "%1"=="gui" goto do_winhack
+if "%1"=="GUI" goto do_winhack
+goto err_set
+:do_tty
+set opt=NetHack for NT Console
if exist .\nethack.ico goto hasicon
if exist .\nhico.uu uudecode nhico.uu >nul
-if NOT exist .\nethack.ico goto err_nouu
+if exist .\nethack.ico goto hasicon
+set err_nouu=Y
+goto done
:hasicon
echo NetHack icon exists ok.
+echo "Copying Makefile.NT to ..\..\src\Makefile"
+copy makefile.NT ..\..\src\Makefile >nul
+echo Makefile copied ok.
echo done!
echo.
echo Proceed with the next step documented in Install.nt
echo.
goto done
-:err_nouu
-echo Apparently you have no UUDECODE utility in your path. You need a UUDECODE
-echo utility in order to turn "nhico.uu" into "nethack.ico".
-echo Check "Install.nt" for a list of the steps required to build NetHack.
+
+:do_winhack
+set opt=Graphical NetHack for Windows (winhack)
+if not exist ..\..\win\win32\winnt.dsw goto err_winhack
+echo "Copying Visual C project files to ..\..\winhacknt directory"
+if NOT exist ..\..\winhacknt\*.* mkdir ..\..\winhacknt
+REM copy ..\..\win\win32\winnt.dsw ..\.. >nul
+copy ..\..\win\win32\nethack.dsw ..\.. >nul
+copy ..\..\win\win32\dgncomp.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\dgnstuff.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\dgnstuff.mak ..\..\winhacknt >nul
+copy ..\..\win\win32\dlb_main.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\levcomp.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\levstuff.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\levstuff.mak ..\..\winhacknt >nul
+copy ..\..\win\win32\makedefs.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\mhaskyn.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhaskyn.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhcmd.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhcmd.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhdlg.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhdlg.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhfont.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhfont.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhinput.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhinput.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmain.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmain.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmap.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmap.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmenu.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmenu.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmsg.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmsgwnd.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhmsgwnd.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhrip.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhrip.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhstatus.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhstatus.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mhtext.c ..\..\winhacknt >nul
+copy ..\..\win\win32\mhtext.h ..\..\winhacknt >nul
+copy ..\..\win\win32\mswproc.c ..\..\winhacknt >nul
+copy ..\..\win\win32\recover.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\resource.h ..\..\winhacknt >nul
+copy ..\..\win\win32\tile2bmp.c ..\..\winhacknt >nul
+copy ..\..\win\win32\tile2bmp.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\tilemap.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\winMS.h ..\..\winhacknt >nul
+copy ..\..\win\win32\winhack.c ..\..\winhacknt >nul
+copy ..\..\win\win32\winhack.dsp ..\..\winhacknt >nul
+copy ..\..\win\win32\winhack.h ..\..\winhacknt >nul
+copy ..\..\win\win32\winhack.rc ..\..\winhacknt >nul
+
+if exist ..\..\winhacknt\mnsel.bmp goto hasmnsel2
+if exist .\mnsel.bmp goto hasmnsel1
+if exist ..\..\win\win32\mnsel.uu uudecode ..\..\win\win32\mnsel.uu >nul
+if exist .\mnsel.bmp goto hasmnsel1
+echo Error - No UUDECODE utility to decode ..\..\win\win32\mnsel.uu
+goto hasmnsel2
+:hasmnsel1
+echo copy .\mnsel.bmp ..\..\winhacknt
+copy .\mnsel.bmp ..\..\winhacknt
+:hasmnsel2
+if NOT exist ..\..\winhacknt\mnsel.bmp set err_nouu=Y
+
+if exist ..\..\winhacknt\mnunsel.bmp goto hasmnuns2
+if exist .\mnunsel.bmp goto hasmnuns1
+if exist ..\..\win\win32\mnunsel.uu uudecode ..\..\win\win32\mnunsel.uu >nul
+if exist .\mnunsel.bmp goto hasmnuns1
+echo Error - No UUDECODE utility to decode ..\..\win\win32\mnunsel.uu
+goto hasmnuns2
+:hasmnuns1
+echo copy .\mnsel.bmp ..\..\winhacknt
+copy .\mnunsel.bmp ..\..\winhacknt
+:hasmnuns2
+if NOT exist ..\..\winhacknt\mnunsel.bmp set err_nouu=Y
+
+if exist ..\..\winhacknt\nethack.ico goto hasicon2
+if exist .\nethack.ico goto hasicon1
+if exist .\nhico.uu uudecode nhico.uu >nul
+if exist .\nethack.ico goto hasicon1
+echo Error - No UUDECODE utility to decode nhico.uu
+goto hasicon2
+:hasicon1
+echo copy .\nethack.ico ..\..\winhacknt
+copy .\nethack.ico ..\..\winhacknt
+:hasicon2
+if NOT exist ..\..\winhacknt\nethack.ico set err_nouu=Y
+
goto done
-:err_plev
-echo A required file ..\..\include\patchlev.h seems to be missing.
-echo Check "Files." in the root directory for your NetHack distribution
-echo and make sure that all required files exist.
+
+:err_winhack
+echo Some of the files needed to build graphical NetHack
+echo for Windows are not in the expected places.
+echo Check "Install.nt" for a list of the steps required
+echo to build NetHack.
goto done
+
:err_data
echo A required file ..\..\dat\data.bas seems to be missing.
echo Check "Files." in the root directory for your NetHack distribution
echo and make sure that all required files exist.
goto done
+
:err_dir
echo Your directories are not set up properly, please re-read the
echo documentation.
+goto done
+
+:err_set
+echo.
+echo Usage:
+echo "%0 <TTY | WINHACK | CE >"
+echo.
+echo Run this batch file specifying one of the following:
+echo tty, winhack, ce
+echo.
+echo The tty argument is for preparing to build a console I/O TTY version
+echo of NetHack.
+echo.
+echo The winhack argument is for preparing to build a graphical version
+echo of NetHack.
+echo.
+echo The CE argument is for preparing to build a Windows CE version
+echo of NetHack.
+echo.
+goto end
+
:done
+echo done!
+echo.
+if "%err_nouu%"=="" echo Proceed with the next step documented in Install.nt
+if "%err_nouu%"=="" echo for building %opt%.
+echo.
+if "%err_nouu%"=="" goto fini
+echo Apparently you have no UUDECODE utility in your path.
+echo You need a UUDECODE utility in order to turn several .uu files
+echo into their decoded binary versions.
+echo Check "Install.nt" for a list of prerequisites for building NetHack.
+
+:fini
+:end
# endif
#endif
+#ifdef WIN_CE
+#define PREFIX "\\nethack\\dat\\"
+#endif
+
#ifndef MPWTOOL
# define SpinCursor(x)
#endif
int NDECL(create_savefile);
void FDECL(copy_bytes, (int,int));
+#ifndef WIN_CE
#define Fprintf (void)fprintf
+#else
+#define Fprintf (void)nhce_message
+static void nhce_message(FILE*, const char*, ...);
+#endif
+
#define Close (void)close
#ifdef UNIX
if (!str) return (char *)0;
bsize = EXEPATHBUFSZ;
tmp = exepathbuf;
-# ifndef WIN32
+#if !defined(WIN32)
strcpy (tmp, str);
+#else
+# if defined(WIN_CE)
+ {
+ TCHAR wbuf[EXEPATHBUFSZ];
+ GetModuleFileName((HANDLE)0, wbuf, EXEPATHBUFSZ);
+ NH_W2A(wbuf, tmp, bsize);
+ }
# else
*(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0';
# endif
+#endif
tmp2 = strrchr(tmp, PATH_SEPARATOR);
if (tmp2) *tmp2 = '\0';
return tmp;
const char amiga_version_string[] = AMIGA_VERSION_STRING;
#endif
+#ifdef WIN_CE
+void nhce_message(FILE* f, const char* str, ...)
+{
+ va_list ap;
+ TCHAR wbuf[NHSTR_BUFSIZE];
+ char buf[NHSTR_BUFSIZE];
+
+ va_start(ap, str);
+ vsprintf(buf, str, ap);
+ va_end(ap);
+
+ MessageBox(NULL, NH_A2W(buf, wbuf, NHSTR_BUFSIZE), TEXT("Recover"), MB_OK);
+}
+#endif
+
/*recover.c*/