Subversion Repositories nw_plus

Rev

Rev 13 | Rev 18 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

@echo off
@color 0C

:restart
title Duke: Nuclear Winter Plus Batch Launcher

set dir=%cd%
set eduke32dir=%~dp0
set nwdir=%~dp0
set nwhrpdir=%~dp0
set nwver=30
set hrp=
set hrpu=

:title
echo                   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                   º Duke: Nuclear Winter Plus Batch Launcher º
echo                   ÈÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍͼ
echo                                ³ By Hendricks266 ³
echo                                ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo You are playing Simply Silly Software's Duke: Nuclear Winter with the various
echo enhancements of Duke: Nuclear Winter Plus, maintained by Hendricks266.
echo.

:recheck
if not exist eduke32.exe goto eduke32check
:eduke32check_done
set eduke32dir=%cd%
if "%debug%"=="1" echo DEBUG: EDuke32 Directory: "%eduke32dir%"

if not exist nw_plus\ goto nodir
if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory.

if exist nwinter\ set nwhrpdir=%cd%
:nwdircheck
cd nw_plus
set nwdir=%cd%
if exist nwinter\ set nwhrpdir=%cd%
if exist nw_plus\ goto nwdircheck
if "%debug%"=="1" echo DEBUG: NW+ Directory: "%nwdir%".
if "%debug%"=="1" echo DEBUG: NWHRP Directory: "%nwhrpdir%".

if not exist "%nwdir%\NWINTER.GRP" (
if exist "%eduke32dir%\NWINTER.GRP" (
move /y "%eduke32dir%\NWINTER.GRP" "%nwdir%\"
ren "%nwdir%\NWINTER.GRP" nwinter.grp
) else (
goto nonwgrp
)
)

:nonwgrp_done
if not exist nwflag%nwver%.h266 goto extract
if not exist nwl1.map goto extract
if not exist nwl2.map goto extract
if not exist nwl3.map goto extract
if not exist nwl4.map goto extract
if not exist nwl5.map goto extract
if not exist nwl6.map goto extract
if not exist nwl7.map goto extract
if not exist nwl8.map goto extract
cd "%eduke32dir%"
echo.
echo To switch your character, open the console (~) and type one of the following:
echo Duke: "setvar skin 0".
echo Santa: "setvar skin 1".
echo.

:init
pause
echo.
goto check

:check

if exist duke3d_hrp.zip set hrp=-gduke3d_hrp.zip
if exist hrp_update.zip set hrpu=-ghrp_update.zip

echo.
echo Launching Duke Nukem 3D . . .
echo Thanks for playing!
echo.
echo Please do not close this window.
echo It will close automatically.

::if exist *.art ren *.art *.abk


set args=-xNWEDuke.con -hnwinter.def
if exist "%nwdir%" set args=%args% -j"%nwdir:\=/%"
if exist "%nwhrpdir%" set args=%args% -j"%nwhrpdir:\=/%"
set args=%args% -gnwinter.grp %hrp% %hrpu% %*

set exe=eduke32
if "%debug%"=="1" set exe=eduke32.debug

if exist %exe%.bat (
call %exe%.bat %args%
) else (
start %exe%.exe %args%
)

::if exist *.abk ren *.abk *.art


goto end

:nonwgrp
echo.
echo Error: You don't have NWINTER.GRP in your directory.
:retry
echo.
set cddrive=
set /p cddrive=What is the drive letter that your Nuclear Winter CD is in?
echo.
if not '%cddrive%'=='' set cddrive=%cddrive:~0,1%
if '%cddrive%'=='' goto cdno
if not exist %cddrive%:\ goto cdno
if not exist %cddrive%:\* goto cdno
if not exist %cddrive%:\GAMEDATA\NWINTER.GRP goto cdw
copy %cddrive%:GAMEDATA\NWINTER.GRP .\
pause
echo.
type NWINTRO.TXT
echo.
pause
goto nonwgrp_done

:cdno
echo '%cddrive%' is not valid.  Please try again.
goto retry

:cdw
echo '%cddrive%' is not the correct disc.  Please try again.
goto retry

:extract
echo.
echo                   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                   º Duke: Nuclear Winter Plus Installation º
echo                   ÈÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍͼ
echo                               ³ By Hendricks266 ³
echo                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
if not exist nwl1.ips goto noips
if not exist nwl2.ips goto noips
if not exist nwl3.ips goto noips
if not exist nwl4.ips goto noips
if not exist nwl5.ips goto noips
if not exist nwl6.ips goto noips
if not exist nwl7.ips goto noips
if not exist nwl8.ips goto noips
md nw_preserve
if exist nwl*.map move /y nwl*.map nw_preserve\
if exist "%eduke32dir%\nwl*.map" move /y "%eduke32dir%\nwl*.map" nw_preserve\
utils\windows\win32\kextract.exe NWINTER.GRP E2L*.MAP
ren E2L1.MAP nwl1.map
ren E2L2.MAP nwl2.map
ren E2L3.MAP nwl3.map
ren E2L4.MAP nwl4.map
ren E2L5.MAP nwl5.map
ren E2L6.MAP nwl6.map
ren E2L7.MAP nwl7.map
ren E2L8.MAP nwl8.map
if exist nwpatch*.h266 del /f /q nwpatch*.h266
if exist nwflag*.h266 del /f /q nwflag*.h266
echo.
echo Map patching will now begin.
echo.
pause
echo
utils\windows\win32\uips.exe a nwl1.ips nwl1.map
utils\windows\win32\uips.exe a nwl2.ips nwl2.map
utils\windows\win32\uips.exe a nwl3.ips nwl3.map
utils\windows\win32\uips.exe a nwl4.ips nwl4.map
utils\windows\win32\uips.exe a nwl5.ips nwl5.map
utils\windows\win32\uips.exe a nwl6.ips nwl6.map
utils\windows\win32\uips.exe a nwl7.ips nwl7.map
utils\windows\win32\uips.exe a nwl8.ips nwl8.map
if exist nwpatch*.h266 del /f /q nwpatch*.h266
if exist nwflag*.h266 del /f /q nwflag*.h266
echo Do not delete this file! You will be forced to reinstall NW+ and repatch the maps. >nwflag%nwver%.h266
attrib +r nwflag%nwver%.h266
echo.
echo Patching complete!
:scanning
cd "%eduke32dir%"
echo.
echo Scanning directory for potential problems.
if exist nwl1.mhk goto mhkfound
if exist nwl1demo.mhk goto mhkfound
if exist nwl2.mhk goto mhkfound
if exist nwl3.mhk goto mhkfound
if exist nwl4.mhk goto mhkfound
if exist nwl5.mhk goto mhkfound
if exist nwl6.mhk goto mhkfound
if exist nwl7.mhk goto mhkfound
if exist nwl8.mhk goto mhkfound
if exist _nwzoo.mhk goto mhkfound
:mhkfound_done
if exist TILES005.ART goto artfound
if exist TILES006.ART goto artfound
if exist TILES007.ART goto artfound
if exist TILES008.ART goto artfound
if exist TILES009.ART goto artfound
if exist TILES012.ART goto artfound
if exist TILES013.ART goto artfound
if exist TILES014.ART goto artfound
if exist TILES015.ART goto artfound
:artfound_done
if exist NWinter.con goto confound
if exist NWActor.con goto confound
if exist NWDefs.con goto confound
if exist NWDP.con goto confound
if exist NWDPCode.con goto confound
if exist NWDPXXX.con goto confound
if exist NWEDuke.con goto confound
if exist NWSnow.con goto confound
if exist NWUser.con goto confound
:confound_done
echo.
pause
goto restart

:noips
echo.
echo Error: You don't have all the *.ips files in your directory.
echo Aborting installation.
echo Map patching is required for NW+ to function correctly.
echo.
pause
goto end

:mhkfound
echo.
echo Problematic .mhk files have been found in your directory.
echo Unless you have knowingly made a modification to NW's map hacks,
echo the presence of these files in your EDuke32 directory will
echo cause NW+ to function incorrectly.
echo.
echo nwl1.mhk
echo nwl1demo.mhk
echo nwl2.mhk
echo nwl3.mhk
echo nwl4.mhk
echo nwl5.mhk
echo nwl6.mhk
echo nwl7.mhk
echo nwl8.mhk
echo _nwzoo.mhk
goto mhkfound_done

:artfound
echo.
echo Problematic .art files have been found in your directory.
echo Unless you have knowingly made a modification to NW's art,
echo the presence of these files in your EDuke32 directory will
echo cause NW+ to function incorrectly.
echo.
echo TILES005.ART
echo TILES006.ART
echo TILES007.ART
echo TILES008.ART
echo TILES009.ART
echo TILES012.ART
echo TILES013.ART
echo TILES014.ART
echo TILES015.ART
goto artfound_done

:confound
echo.
echo Problematic .con files have been found in your directory.
echo Unless you have knowingly made a modification to NW's programming,
echo the presence of these files in your EDuke32 directory will
echo cause NW+ to function incorrectly.
echo.
echo NWinter.con
echo NWEDuke.con
echo NWDefs.con
echo NWUser.con
echo NWDP.con
echo NWDPCode.con
echo NWDPXXX.con
echo NWActor.con
echo NWSnow.con
echo.
echo IF THESE ARE THE ORIGINAL NUCLEAR WINTER CON FILES, OR THEY COME FROM
echo AN OUTDATED VERSION OF NW+, REMOVE THEM FROM YOUR EDUKE32 DIRECTORY
echo IMMEDIATELY!
echo NW+ uses modified .con files to fix programming errors created by
echo the original programmers. Due to improvements made to the levels,
echo NW+ will have major errors if the included .con files are not used.
goto confound_done

:eduke32check
if exist eduke32.bat goto eduke32check_done
if exist ..\eduke32.exe (
cd ..
goto recheck
)
if exist ..\..\eduke32.exe (
cd ..\..
goto recheck
)
if exist ..\..\..\eduke32.exe (
cd ..\..\..
goto recheck
)
if exist ..\eduke32.bat (
cd ..
goto eduke32check_done
)
if exist ..\..\eduke32.bat (
cd ..\..
goto eduke32check_done
)
if exist ..\..\..\eduke32.bat (
cd ..\..\..
goto eduke32check_done
)
echo Warning: You don't have EDuke32 in your directory.
goto eduke32check_done

:nodir
echo.
echo Error: "nw_plus" data directory not found.
echo Aborting launch.
echo.
pause
goto end

:end
echo.
@color 07
@title %ComSpec%
cd %dir%