Changes to existing files by the win32 port additions.
This commit is contained in:
@@ -46,6 +46,7 @@
|
|||||||
/* #define X11_GRAPHICS */ /* X11 interface */
|
/* #define X11_GRAPHICS */ /* X11 interface */
|
||||||
/* #define QT_GRAPHICS */ /* Qt interface */
|
/* #define QT_GRAPHICS */ /* Qt interface */
|
||||||
/* #define GNOME_GRAPHICS */ /* Gnome 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
|
* Define the default window system. This should be one that is compiled
|
||||||
@@ -98,6 +99,16 @@
|
|||||||
# endif
|
# endif
|
||||||
#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
|
#ifndef DEFAULT_WINDOW_SYS
|
||||||
# define DEFAULT_WINDOW_SYS "tty"
|
# define DEFAULT_WINDOW_SYS "tty"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -108,6 +108,11 @@
|
|||||||
/*
|
/*
|
||||||
* Windows NT Autodetection
|
* Windows NT Autodetection
|
||||||
*/
|
*/
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
# ifndef WIN32
|
||||||
|
# define WIN32
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
# undef UNIX
|
# undef UNIX
|
||||||
@@ -116,6 +121,16 @@
|
|||||||
# define STRNCMPI
|
# define STRNCMPI
|
||||||
# define USE_STDARG
|
# define USE_STDARG
|
||||||
# define NEED_VARARGS
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -175,8 +175,12 @@ typedef xchar boolean; /* 0 or 1 */
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
#ifdef WIN_CE
|
||||||
|
#include "wceconf.h"
|
||||||
|
#else
|
||||||
#include "ntconf.h"
|
#include "ntconf.h"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Displayable name of this port; don't redefine if defined in *conf.h */
|
/* Displayable name of this port; don't redefine if defined in *conf.h */
|
||||||
#ifndef PORT_ID
|
#ifndef PORT_ID
|
||||||
|
|||||||
@@ -99,8 +99,10 @@ static int lockptr;
|
|||||||
#define Delay(a) msleep(a)
|
#define Delay(a) msleep(a)
|
||||||
# endif
|
# endif
|
||||||
#define Close close
|
#define Close close
|
||||||
|
#ifndef WIN_CE
|
||||||
#define DeleteFile unlink
|
#define DeleteFile unlink
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USER_SOUNDS
|
#ifdef USER_SOUNDS
|
||||||
extern int FDECL(add_sound_mapping, (const char* mapping));
|
extern int FDECL(add_sound_mapping, (const char* mapping));
|
||||||
|
|||||||
+14
@@ -34,7 +34,13 @@ STATIC_DCL struct mkroom *FDECL(pos_to_room, (XCHAR_P, XCHAR_P));
|
|||||||
STATIC_DCL boolean FDECL(place_niche,(struct mkroom *,int*,int*,int*));
|
STATIC_DCL boolean FDECL(place_niche,(struct mkroom *,int*,int*,int*));
|
||||||
STATIC_DCL void FDECL(makeniche,(int));
|
STATIC_DCL void FDECL(makeniche,(int));
|
||||||
STATIC_DCL void NDECL(make_niches);
|
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));
|
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(dosdoor,(XCHAR_P,XCHAR_P,struct mkroom *,int));
|
||||||
STATIC_DCL void FDECL(join,(int,int,BOOLEAN_P));
|
STATIC_DCL void FDECL(join,(int,int,BOOLEAN_P));
|
||||||
STATIC_DCL void FDECL(do_room_or_subroom, (struct mkroom *,int,int,int,int,
|
STATIC_DCL void FDECL(do_room_or_subroom, (struct mkroom *,int,int,int,int,
|
||||||
@@ -53,10 +59,14 @@ static boolean made_branch; /* used only during level creation */
|
|||||||
|
|
||||||
/* Args must be (const genericptr) so that qsort will always be happy. */
|
/* 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
|
STATIC_PTR int
|
||||||
do_comp(vx,vy)
|
do_comp(vx,vy)
|
||||||
const genericptr vx;
|
const genericptr vx;
|
||||||
const genericptr vy;
|
const genericptr vy;
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef LINT
|
#ifdef LINT
|
||||||
/* lint complains about possible pointer alignment problems, but we know
|
/* lint complains about possible pointer alignment problems, but we know
|
||||||
@@ -108,7 +118,11 @@ sort_rooms()
|
|||||||
#if defined(SYSV) || defined(DGUX)
|
#if defined(SYSV) || defined(DGUX)
|
||||||
qsort((genericptr_t) rooms, (unsigned)nroom, sizeof(struct mkroom), do_comp);
|
qsort((genericptr_t) rooms, (unsigned)nroom, sizeof(struct mkroom), do_comp);
|
||||||
#else
|
#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);
|
qsort((genericptr_t) rooms, nroom, sizeof(struct mkroom), do_comp);
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ STATIC_DCL void FDECL(center, (int, char *));
|
|||||||
|
|
||||||
extern const char *killed_by_prefix[];
|
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
|
# define TEXT_TOMBSTONE
|
||||||
#endif
|
#endif
|
||||||
#if defined(mac) || defined(__BEOS__) || defined(WIN32_GRAPHICS)
|
#if defined(mac) || defined(__BEOS__) || defined(WIN32_GRAPHICS)
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ extern struct window_procs win32_procs;
|
|||||||
#include "winGnome.h"
|
#include "winGnome.h"
|
||||||
extern struct window_procs Gnome_procs;
|
extern struct window_procs Gnome_procs;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MSWIN_GRAPHICS
|
||||||
|
#include "winMS.h"
|
||||||
|
extern struct window_procs mswin_procs;
|
||||||
|
#endif
|
||||||
|
|
||||||
STATIC_DCL void FDECL(def_raw_print, (const char *s));
|
STATIC_DCL void FDECL(def_raw_print, (const char *s));
|
||||||
|
|
||||||
@@ -74,6 +78,9 @@ struct win_choices {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef GNOME_GRAPHICS
|
#ifdef GNOME_GRAPHICS
|
||||||
{ &Gnome_procs, 0 },
|
{ &Gnome_procs, 0 },
|
||||||
|
#endif
|
||||||
|
#ifdef MSWIN_GRAPHICS
|
||||||
|
{ &mswin_procs, 0 },
|
||||||
#endif
|
#endif
|
||||||
{ 0, 0 } /* must be last */
|
{ 0, 0 } /* must be last */
|
||||||
};
|
};
|
||||||
|
|||||||
+9
-1
@@ -638,7 +638,15 @@ char *str;
|
|||||||
# ifndef WIN32
|
# ifndef WIN32
|
||||||
Strcpy (tmp, str);
|
Strcpy (tmp, str);
|
||||||
# else
|
# 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
|
# endif
|
||||||
tmp2 = strrchr(tmp, PATH_SEPARATOR);
|
tmp2 = strrchr(tmp, PATH_SEPARATOR);
|
||||||
if (tmp2) *tmp2 = '\0';
|
if (tmp2) *tmp2 = '\0';
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#ifndef MSDOS /* already done */
|
#if !defined(MSDOS) && !defined(WIN_CE) /* already done */
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef __GO32__
|
#ifdef __GO32__
|
||||||
|
|||||||
+188
-13
@@ -1,28 +1,59 @@
|
|||||||
Copyright (c) NetHack Development Team 1990-2000
|
Copyright (c) NetHack Development Team 1990-2002
|
||||||
NetHack may be freely redistributed. See license for details.
|
NetHack may be freely redistributed. See license for details.
|
||||||
==============================================================
|
==============================================================
|
||||||
Instructions for compiling and installing
|
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: January 12, 2002
|
||||||
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.
|
|
||||||
|
|
||||||
Credit for the porting of NetHack to the Win32 Console Subsystem goes to
|
Credit for the porting of NetHack to the Win32 Console Subsystem goes to
|
||||||
the NT Porting Team started by Michael Allison.
|
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
|
This version of NetHack for Win32 is a tty port utilizing the WIN32
|
||||||
Console I/O subsystem.
|
Console I/O subsystem.
|
||||||
|
|
||||||
I. Dispelling the Myths:
|
I. Dispelling the Myths:
|
||||||
|
|
||||||
Compiling NetHack is not as easy as it sounds, nor as hard as it looks,
|
Compiling NetHack for WIN32 TTY is not as easy as it sounds, nor as hard
|
||||||
however it will behoove you to read this entire file through before
|
as it looks, however it will behoove you to read this entire section
|
||||||
beginning the task.
|
through before beginning the task.
|
||||||
|
|
||||||
We have provided a Makefile for building NetHack using the
|
We have provided a Makefile for building NetHack using the
|
||||||
following compiler:
|
following compiler:
|
||||||
@@ -191,7 +222,151 @@ Notes:
|
|||||||
2) The executable produced by this port is a 32-bit, flat-address space,
|
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.
|
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
|
nethack-bugs@nethack.org
|
||||||
|
|
||||||
If you have any comments or suggestions, feel free to drop us a line c/o:
|
If you have any comments or suggestions, feel free to drop us a line c/o:
|
||||||
|
|||||||
+155
-33
@@ -1,9 +1,14 @@
|
|||||||
@REM SCCS Id: @(#)nhsetup.bat 96/10/30
|
@REM SCCS Id: @(#)nhsetup.bat 2002/01/12
|
||||||
@REM Copyright (c) NetHack PC Development Team 1993, 1996
|
@REM Copyright (c) NetHack PC Development Team 1993, 1996, 2002
|
||||||
@REM NetHack may be freely redistributed. See license for details.
|
@REM NetHack may be freely redistributed. See license for details.
|
||||||
@REM Win32 setup batch file, see Install.nt for details
|
@REM Win32 setup batch file, see Install.nt for details
|
||||||
@REM
|
@REM
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
set err_nouu=
|
||||||
|
set err_copy=
|
||||||
|
set opt=
|
||||||
|
|
||||||
echo Checking to see if directories are set up properly
|
echo Checking to see if directories are set up properly
|
||||||
if not exist ..\..\include\hack.h goto err_dir
|
if not exist ..\..\include\hack.h goto err_dir
|
||||||
if not exist ..\..\src\hack.c goto err_dir
|
if not exist ..\..\src\hack.c goto err_dir
|
||||||
@@ -12,53 +17,170 @@ if not exist ..\..\util\makedefs.c goto err_dir
|
|||||||
if not exist ..\..\sys\winnt\winnt.c goto err_dir
|
if not exist ..\..\sys\winnt\winnt.c goto err_dir
|
||||||
echo Directories look ok.
|
echo Directories look ok.
|
||||||
|
|
||||||
:do_rest
|
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 exist .\nethack.ico goto hasicon
|
||||||
|
set err_nouu=Y
|
||||||
|
goto done
|
||||||
|
:hasicon
|
||||||
|
echo NetHack icon exists ok.
|
||||||
echo "Copying Makefile.NT to ..\..\src\Makefile"
|
echo "Copying Makefile.NT to ..\..\src\Makefile"
|
||||||
copy makefile.NT ..\..\src\Makefile >nul
|
copy makefile.NT ..\..\src\Makefile >nul
|
||||||
echo Makefile copied ok.
|
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 exist .\nethack.ico goto hasicon
|
|
||||||
if exist .\nhico.uu uudecode nhico.uu >nul
|
|
||||||
if NOT exist .\nethack.ico goto err_nouu
|
|
||||||
:hasicon
|
|
||||||
echo NetHack icon exists ok.
|
|
||||||
echo done!
|
echo done!
|
||||||
echo.
|
echo.
|
||||||
echo Proceed with the next step documented in Install.nt
|
echo Proceed with the next step documented in Install.nt
|
||||||
echo.
|
echo.
|
||||||
goto done
|
goto done
|
||||||
:err_nouu
|
|
||||||
echo Apparently you have no UUDECODE utility in your path. You need a UUDECODE
|
:do_winhack
|
||||||
echo utility in order to turn "nhico.uu" into "nethack.ico".
|
set opt=Graphical NetHack for Windows (winhack)
|
||||||
echo Check "Install.nt" for a list of the steps required to build NetHack.
|
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
|
goto done
|
||||||
:err_plev
|
|
||||||
echo A required file ..\..\include\patchlev.h seems to be missing.
|
:err_winhack
|
||||||
echo Check "Files." in the root directory for your NetHack distribution
|
echo Some of the files needed to build graphical NetHack
|
||||||
echo and make sure that all required files exist.
|
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
|
goto done
|
||||||
|
|
||||||
:err_data
|
:err_data
|
||||||
echo A required file ..\..\dat\data.bas seems to be missing.
|
echo A required file ..\..\dat\data.bas seems to be missing.
|
||||||
echo Check "Files." in the root directory for your NetHack distribution
|
echo Check "Files." in the root directory for your NetHack distribution
|
||||||
echo and make sure that all required files exist.
|
echo and make sure that all required files exist.
|
||||||
goto done
|
goto done
|
||||||
|
|
||||||
:err_dir
|
:err_dir
|
||||||
echo Your directories are not set up properly, please re-read the
|
echo Your directories are not set up properly, please re-read the
|
||||||
echo documentation.
|
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
|
: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
|
||||||
|
|||||||
@@ -25,6 +25,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN_CE
|
||||||
|
#define PREFIX "\\nethack\\dat\\"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MPWTOOL
|
#ifndef MPWTOOL
|
||||||
# define SpinCursor(x)
|
# define SpinCursor(x)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+30
-1
@@ -26,7 +26,13 @@ int FDECL(open_levelfile, (int));
|
|||||||
int NDECL(create_savefile);
|
int NDECL(create_savefile);
|
||||||
void FDECL(copy_bytes, (int,int));
|
void FDECL(copy_bytes, (int,int));
|
||||||
|
|
||||||
|
#ifndef WIN_CE
|
||||||
#define Fprintf (void)fprintf
|
#define Fprintf (void)fprintf
|
||||||
|
#else
|
||||||
|
#define Fprintf (void)nhce_message
|
||||||
|
static void nhce_message(FILE*, const char*, ...);
|
||||||
|
#endif
|
||||||
|
|
||||||
#define Close (void)close
|
#define Close (void)close
|
||||||
|
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
@@ -340,11 +346,19 @@ char *str;
|
|||||||
if (!str) return (char *)0;
|
if (!str) return (char *)0;
|
||||||
bsize = EXEPATHBUFSZ;
|
bsize = EXEPATHBUFSZ;
|
||||||
tmp = exepathbuf;
|
tmp = exepathbuf;
|
||||||
# ifndef WIN32
|
#if !defined(WIN32)
|
||||||
strcpy (tmp, str);
|
strcpy (tmp, str);
|
||||||
|
#else
|
||||||
|
# if defined(WIN_CE)
|
||||||
|
{
|
||||||
|
TCHAR wbuf[EXEPATHBUFSZ];
|
||||||
|
GetModuleFileName((HANDLE)0, wbuf, EXEPATHBUFSZ);
|
||||||
|
NH_W2A(wbuf, tmp, bsize);
|
||||||
|
}
|
||||||
# else
|
# else
|
||||||
*(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0';
|
*(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0';
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
tmp2 = strrchr(tmp, PATH_SEPARATOR);
|
tmp2 = strrchr(tmp, PATH_SEPARATOR);
|
||||||
if (tmp2) *tmp2 = '\0';
|
if (tmp2) *tmp2 = '\0';
|
||||||
return tmp;
|
return tmp;
|
||||||
@@ -356,4 +370,19 @@ char *str;
|
|||||||
const char amiga_version_string[] = AMIGA_VERSION_STRING;
|
const char amiga_version_string[] = AMIGA_VERSION_STRING;
|
||||||
#endif
|
#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*/
|
/*recover.c*/
|
||||||
|
|||||||
Reference in New Issue
Block a user