# endif
# include <sys/types.h> /* MSDOS, WIN32, or UNIX */
# include <sys/stat.h>
+# include <string.h>
+# include <stdlib.h>
#endif
static void decode(FILE *, FILE *);
putc(c3, f);
}
+#if !defined(MSDOS) && !defined(VMS) && !defined(WIN32)
/*
* Return the ptr in sp at which the character c appears;
* NULL if not found
} while (*sp++);
return(NULL);
}
+#endif
-# SCCS Id: @(#)Makefile.nt 3.4 2002/01/22
+# SCCS Id: @(#)Makefile.nt 3.4 2002/02/28
# Copyright (c) NetHack PC Development Team 1993-2001
#
# NetHack 3.4.x Makefile for MS Visual C++ V6.x and above and MS NMAKE
################################################
!IF "$(GRAPHICAL)" == "Y"
-TILEGAME = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
+WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \
$(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \
$(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o \
$(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o
-TILEDEF = -DTILES -DMSWIN_GRAPHICS
-TILERES = $(O)winhack.res
-TILEINCL = -I$(WIN32)
-TILEHDR = $(WIN32)\mhaskyn.h $(WIN32)\mhdlg.h $(WIN32)\mhfont.h \
+WINPFLAG = -DTILES -DMSWIN_GRAPHICS
+NHRES = $(O)winhack.res
+WINPINC = -I$(WIN32)
+WINPHDR = $(WIN32)\mhaskyn.h $(WIN32)\mhdlg.h $(WIN32)\mhfont.h \
$(WIN32)\mhinput.h $(WIN32)\mhmain.h $(WIN32)\mhmap.h $(WIN32)\mhmenu.h \
$(WIN32)\mhmsg.h $(WIN32)\mhmsgwnd.h $(WIN32)\mhrip.h $(WIN32)\mhstatus.h \
$(WIN32)\mhtext.h $(WIN32)\resource.h $(WIN32)\winMS.h
!ELSE
-TILEGAME = $(O)nttty.o
-TILEDEF = -DWIN32CON
-TILEHDR =
-TILERES = $(O)console.res
-TILEINCL =
+WINPORT = $(O)nttty.o
+WINPFLAG = -DWIN32CON
+WINPHDR =
+NHRES = $(O)console.res
+WINPINC =
!ENDIF
TILEUTIL16 = $(UTIL)\tile2bmp.exe
# macros. All builds include the base ones.
#==========================================
-CFLAGSBASE = -c $(cflags) $(cvarsmt) -I$(INCL) -nologo $(cdebug) $(TILEINCL)
+CFLAGSBASE = -c $(cflags) $(cvarsmt) -I$(INCL) -nologo $(cdebug) $(WINPINC)
LFLAGSBASEC = $(linkdebug) $(conflags) $(conlibsmt)
LFLAGSBASEG = $(linkdebug) $(guiflags) $(guilibsmt) comctl32.lib
#==========================================
LFLAGSBASE = $(linkdebug) $(conflags) $(conlibsmt)
-CFLAGS = $(CFLAGSBASE) $(TILEDEF) $(DLBFLG)
+CFLAGS = $(CFLAGSBASE) $(WINPFLAG) $(DLBFLG)
NHLFLAGS1 = /NODEFAULTLIB /INCREMENTAL:NO /PDB:"$(GAME).PDB" /RELEASE /NOLOGO
NHLFLAGS2 = /MAP:"$(GAME).MAP" /MACHINE:$(CPU) -IGNORE:505
!IF ("$(GRAPHICAL)"=="Y")
$(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \
$(VOBJ26) $(VOBJ27)
-TILOBJ = $(TILEGAME)
+WINPOBJ = $(WINPORT)
VVOBJ = $(O)version.o
-ALLOBJ = $(TILOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
+ALLOBJ = $(WINPOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ)
#==========================================
# Header file macros
@echo Optional tile development utilities are up to date.
!IF "$(GRAPHICAL)"=="Y"
-$(TILERES): $(TILEBMP16) $(WIN32)\winhack.rc
+$(NHRES): $(TILEBMP16) $(WIN32)\winhack.rc $(WIN32)\mnsel.bmp \
+ $(WIN32)\mnselcnt.bmp $(WIN32)\mnunsel.bmp $(WIN32)\petmark.bmp \
+ $(WIN32)\NetHack.ico
@$(rc) -r -fo$@ -i$(WIN32) -dNDEBUG $(WIN32)\winhack.rc
!ELSE
-$(TILERES): $(NTSYS)\console.rc
+$(NHRES): $(NTSYS)\console.rc $(NTSYS)\NetHack.ico
@$(rc) -r -fo$@ -i$(NTSYS) -dNDEBUG $(NTSYS)\console.rc
!ENDIF
# DO NOT INDENT THE << below!
#
-$(GAMEFILE) : $(ALLOBJ) $(TILERES)
+$(GAMEFILE) : $(ALLOBJ) $(NHRES)
@if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR)
@echo Linking....
@$(link) $(LFLAGS) -out:$@ @<<$(GAME).lnk
$(ALLOBJ:^ =^
- ) $(TILERES)
+ ) $(NHRES)
<<
@if exist $(O)install.tag del $(O)install.tag
@if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak
$(SRC)\vis_tab.c: $(U)makedefs.exe
$(U)makedefs -z
+#==========================================
+# uudecode utility and uuencoded targets
+#==========================================
+
+$(U)uudecode.exe: $(O)uudecode.o
+ @$(link) $(LFLAGSU) -out:$@ $(O)\uudecode.o
+
+$(O)uudecode.o: $(SSYS)\uudecode.c
+
+$(NTSYS)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
+ chdir $(NTSYS)
+ ..\..\util\uudecode.exe nhico.uu
+ chdir ..\..\src
+
+$(WIN32)\NetHack.ico : $(U)uudecode.exe $(NTSYS)\nhico.uu
+ chdir $(WIN32)
+ ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu
+ chdir ..\..\src
+
+$(WIN32)\mnsel.bmp: $(U)uudecode.exe $(WIN32)\mnsel.uu
+ chdir $(WIN32)
+ ..\..\util\uudecode.exe mnsel.uu
+ chdir ..\..\src
+
+$(WIN32)\mnselcnt.bmp: $(U)uudecode.exe $(WIN32)\mnselcnt.uu
+ chdir $(WIN32)
+ ..\..\util\uudecode.exe mnselcnt.uu
+ chdir ..\..\src
+
+$(WIN32)\mnunsel.bmp: $(U)uudecode.exe $(WIN32)\mnunsel.uu
+ chdir $(WIN32)
+ ..\..\util\uudecode.exe mnunsel.uu
+ chdir ..\..\src
+
+$(WIN32)\petmark.bmp: $(U)uudecode.exe $(WIN32)\petmark.uu
+ chdir $(WIN32)
+ ..\..\util\uudecode.exe petmark.uu
+ chdir ..\..\src
+
#==========================================
# Level Compiler Stuff
#==========================================
if exist $(U)dgn_comp.exe del $(U)dgn_comp.exe
if exist $(SRC)\*.lnk del $(SRC)\*.lnk
if exist $(SRC)\*.map del $(SRC)\*.map
-! IF ("$(TILEDEF)"!="")
+! IF ("$(WINPFLAG)"!="")
if exist $(TILEBMP16) del $(TILEBMP16)
if exist $(TILEBMP32) del $(TILEBMP32)
! ENDIF
-@REM SCCS Id: @(#)nhsetup.bat 2002/01/25
+@REM SCCS Id: @(#)nhsetup.bat 2002/02/28
@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=
: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"
copy makefile.NT ..\..\src\Makefile >nul
echo Makefile copied ok.
copy ..\..\win\win32\tiles.dsp ..\..\build >nul
copy ..\..\win\win32\tiles.mak ..\..\build >nul
copy ..\..\win\win32\tilemap.dsp ..\..\build >nul
+copy ..\..\win\win32\uudecode.dsp ..\..\build >nul
copy ..\..\win\win32\nethackw.dsp ..\..\build >nul
-echo.
-echo "Decoding/Copying a couple of bitmaps"
-if exist ..\..\win\win32\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 ..\..\win\win32
-copy .\mnsel.bmp ..\..\win\win32
-:hasmnsel2
-if NOT exist ..\..\win\win32\mnsel.bmp set err_nouu=Y
-
-if exist ..\..\win\win32\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 .\mnunsel.bmp ..\..\win\win32
-copy .\mnunsel.bmp ..\..\win\win32
-:hasmnuns2
-if NOT exist ..\..\win\win32\mnunsel.bmp set err_nouu=Y
-
-if exist ..\..\win\win32\mnselcnt.bmp goto hasmnselcnt2
-if exist .\mnselcnt.bmp goto hasmnselcnt1
-if exist ..\..\win\win32\mnselcnt.uu uudecode ..\..\win\win32\mnselcnt.uu >nul
-if exist .\mnselcnt.bmp goto hasmnselcnt1
-echo Error - No UUDECODE utility to decode ..\..\win\win32\mnselcnt.uu
-goto hasmnselcnt2
-:hasmnselcnt1
-echo copy .\mnselcnt.bmp ..\..\win\win32
-copy .\mnselcnt.bmp ..\..\win\win32
-:hasmnselcnt2
-if NOT exist ..\..\win\win32\mnselcnt.bmp set err_nouu=Y
-
-if exist ..\..\win\win32\petmark.bmp goto haspm2
-if exist .\petmark.bmp goto haspm1
-if exist ..\..\win\win32\petmark.uu uudecode ..\..\win\win32\petmark.uu >nul
-if exist .\petmark.bmp goto haspm1
-echo Error - No UUDECODE utility to decode ..\..\win\win32\petmark.uu
-goto haspm2
-:haspm1
-echo copy .\petmark.bmp ..\..\win\win32
-copy .\petmark.bmp ..\..\win\win32
-:haspm2
-if NOT exist ..\..\win\win32\petmark.bmp set err_nouu=Y
-
-echo "Decoding/Copying ICONS"
-if exist ..\..\win\win32\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.
-echo copy .\nethack.ico ..\..\win\win32
-copy .\nethack.ico ..\..\win\win32
-:hasicon2
-if NOT exist ..\..\win\win32\nethack.ico set err_nouu=Y
-
goto done
:err_win
: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 Proceed with the next step documented in Install.nt
+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
###############################################################################
+Project: "nethackw"=.\build\nethackw.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name dgncomp
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name dlb_main
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name levcomp
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name makedefs
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name recover
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name tilemap
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name tiles
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name uudecode
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "recover"=.\build\recover.dsp - Package Owner=<4>
Package=<5>
###############################################################################
-Project: "nethackw"=.\build\nethackw.dsp - Package Owner=<4>
+Project: "uudecode"=.\build\uudecode.dsp - Package Owner=<4>
Package=<5>
{{{
Package=<4>
{{{
- Begin Project Dependency
- Project_Dep_Name dgncomp
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name dlb_main
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name levcomp
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name makedefs
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name recover
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name tilemap
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name tiles
- End Project Dependency
}}}
###############################################################################
--- /dev/null
+# Microsoft Developer Studio Project File - Name="uudecode" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=uudecode - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "uudecode.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "uudecode.mak" CFG="uudecode - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "uudecode - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "uudecode - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "uudecode - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /out:"..\util\uudecode.exe"
+# SUBTRACT LINK32 /nodefaultlib
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=echo chdir ..\win\win32 chdir ..\win\win32 \
+echo decoding icon (nhico.uu to NetHack.ico) \
+..\..\util\uudecode.exe ../../sys/winnt/nhico.uu \
+echo decoding mnsel (mnsel.uu to mnsel.bmp) \
+..\..\util\uudecode.exe mnsel.uu \
+echo decoding mnselcnt (mnselcnt.uu to mnselcnt.bmp) \
+..\..\util\uudecode.exe mnselcnt.uu \
+echo decoding mnunsel (mnunsel.uu to mnunsel.bmp) \
+..\..\util\uudecode.exe mnunsel.uu \
+echo decoding mnsel (petmark.uu to petmark.bmp) \
+..\..\util\uudecode.exe petmark.uu \
+chdir ..\..\binary
+
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "uudecode - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
+# SUBTRACT CPP /YX /Yc /Yu
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\util\uudecode.exe" /pdbtype:sept
+# SUBTRACT LINK32 /nodefaultlib
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=echo chdir ..\win\win32 chdir ..\win\win32 \
+echo decoding icon (nhico.uu to NetHack.ico) \
+..\..\util\uudecode.exe ../../sys/winnt/nhico.uu \
+echo decoding mnsel (mnsel.uu to mnsel.bmp) \
+..\..\util\uudecode.exe mnsel.uu \
+echo decoding mnselcnt (mnselcnt.uu to mnselcnt.bmp) \
+..\..\util\uudecode.exe mnselcnt.uu \
+echo decoding mnunsel (mnunsel.uu to mnunsel.bmp) \
+..\..\util\uudecode.exe mnunsel.uu \
+echo decoding mnsel (petmark.uu to petmark.bmp) \
+..\..\util\uudecode.exe petmark.uu \
+chdir ..\..\binary
+
+# End Special Build Tool
+
+!ENDIF
+
+# Begin Target
+
+# Name "uudecode - Win32 Release"
+# Name "uudecode - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\sys\share\uudecode.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project