Subversion Repositories nw_plus

Rev

Rev 74 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 74 Rev 78
1
@echo off
1
@echo off
2
color 0C
2
color 0C
3
setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
3
setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
4
pushd "%~dp0"
4
pushd "%~dp0"
5
set startdir=%cd%
5
set startdir=%cd%
6
 
6
 
7
:restart
7
:restart
8
title Duke: Nuclear Winter Plus Launcher
8
title Duke: Nuclear Winter Plus Launcher
9
if "%editor%"=="1" title Duke: Nuclear Winter Plus Editor Launcher
9
if "%editor%"=="1" title Duke: Nuclear Winter Plus Editor Launcher
10
 
10
 
11
set exedir=%startdir%
11
set exedir=%startdir%
12
set addondir=%startdir%
12
set addondir=%startdir%
13
set addonhrpdir=%startdir%
13
set addonhrpdir=%startdir%
14
 
14
 
15
set exename=eduke32
15
set exename=eduke32
16
set exeproper=EDuke32
16
set exeproper=EDuke32
17
set action=playing
17
set action=playing
18
 
18
 
19
if "%editor%"=="1" (
19
if "%editor%"=="1" (
20
set exename=mapster32
20
set exename=mapster32
21
set exeproper=Mapster32
21
set exeproper=Mapster32
22
set action=editing
22
set action=editing
23
)
23
)
24
 
24
 
25
set addonver=r005
25
set addonver=r005
26
 
26
 
27
:title
27
:title
28
echo                          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
28
echo                          ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
29
echo                          º Duke: Nuclear Winter Plus º
29
echo                          º Duke: Nuclear Winter Plus º
30
echo                          ÈÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍͼ
30
echo                          ÈÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍͼ
31
echo                               ³ By Hendricks266 ³
31
echo                               ³ By Hendricks266 ³
32
echo                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
32
echo                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
33
echo.
33
echo.
34
echo You are %action% Simply Silly Software's Duke: Nuclear Winter with the various
34
echo You are %action% Simply Silly Software's Duke: Nuclear Winter with the various
35
echo enhancements of Duke: Nuclear Winter Plus, maintained by Hendricks266.
35
echo enhancements of Duke: Nuclear Winter Plus, maintained by Hendricks266.
36
echo.
36
echo.
37
 
37
 
38
 
38
 
39
if "%xxx%"=="1" echo Using XXX mode.
39
if "%xxx%"=="1" echo Using XXX mode.
40
if "%dp%"=="1" echo Using Duke Plus by DeeperThought.
40
if "%dp%"=="1" echo Using Duke Plus by DeeperThought.
41
if "%debug%"=="1" echo Using debug mode.
41
if "%debug%"=="1" echo Using debug mode.
42
 
42
 
43
if "%debug%"=="1" echo DEBUG: Command Line Input: %*
43
if "%debug%"=="1" echo DEBUG: Command Line Input: %*
44
 
44
 
45
:recheck
45
:recheck
46
if not exist %exename%.exe goto execheck
46
if not exist %exename%.exe goto execheck
47
:execheck_done
47
:execheck_done
48
set exedir=%cd%
48
set exedir=%cd%
49
if "%debug%"=="1" echo DEBUG: %exeproper% Directory: "%exedir%"
49
if "%debug%"=="1" echo DEBUG: %exeproper% Directory: "%exedir%"
50
 
50
 
51
if not exist nw_plus\ goto nodir
51
if not exist nw_plus\ goto nodir
52
if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory.
52
if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory.
53
 
53
 
54
if exist nwinter\ set addonhrpdir=%cd%
54
if exist nwinter\ set addonhrpdir=%cd%
55
:addondircheck
55
:addondircheck
56
 
56
 
57
chdir nw_plus
57
chdir nw_plus
58
set addondir=%cd%
58
set addondir=%cd%
59
if exist nwinter\ set addonhrpdir=%cd%
59
if exist nwinter\ set addonhrpdir=%cd%
60
if exist nw_plus\ goto addondircheck
60
if exist nw_plus\ goto addondircheck
61
if "%debug%"=="1" echo DEBUG: NW+ Directory: "%addondir%".
61
if "%debug%"=="1" echo DEBUG: NW+ Directory: "%addondir%".
62
if "%debug%"=="1" echo DEBUG: NWHRP Directory: "%addonhrpdir%".
62
if "%debug%"=="1" echo DEBUG: NWHRP Directory: "%addonhrpdir%".
63
 
63
 
64
set kextract=%addondir%\utils\windows\win32\kextract.exe
64
set kextract=%addondir%\utils\windows\win32\kextract.exe
65
if "%debug%"=="1" set kextract=%addondir%\utils\windows\win32\kextract.debug.exe
65
if "%debug%"=="1" set kextract=%addondir%\utils\windows\win32\kextract.debug.exe
66
set bspatch=%addondir%\utils\windows\win32\bspatch.exe
66
set bspatch=%addondir%\utils\windows\win32\bspatch.exe
67
set sha1sum=%addondir%\utils\windows\win32\sha1sum.exe
67
set sha1sum=%addondir%\utils\windows\win32\sha1sum.exe
68
 
68
 
69
if "%nwgrpname%"=="" set nwgrpname=nwinter.grp
69
if "%nwgrpname%"=="" set nwgrpname=nwinter.grp
70
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%exedir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
70
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%exedir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
71
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%addondir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
71
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%addondir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
72
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" goto nonwgrp
72
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" goto nonwgrp
73
 
73
 
74
if exist nwinter.grp ren nwinter.grp nwinter.grp
74
if exist nwinter.grp ren nwinter.grp nwinter.grp
75
call :grpchecksum
75
call :grpchecksum
76
:nonwgrp_return
76
:nonwgrp_return
77
if not "%version%"=="demo" (
77
if not "%version%"=="demo" (
78
if not exist nwl1.map goto mapextract
78
if not exist nwl1.map goto mapextract
79
if not exist nwl2.map goto mapextract
79
if not exist nwl2.map goto mapextract
80
if not exist nwl3.map goto mapextract
80
if not exist nwl3.map goto mapextract
81
if not exist nwl4.map goto mapextract
81
if not exist nwl4.map goto mapextract
82
if not exist nwl5.map goto mapextract
82
if not exist nwl5.map goto mapextract
83
if not exist nwl6.map goto mapextract
83
if not exist nwl6.map goto mapextract
84
if not exist nwl7.map goto mapextract
84
if not exist nwl7.map goto mapextract
85
if not exist nwl8.map goto mapextract
85
if not exist nwl8.map goto mapextract
86
if not exist nwflag_%addonver%.h266 goto updateextract
86
if not exist nwflag_%addonver%.h266 goto updateextract
87
)
87
)
88
 
88
 
89
 
89
 
90
 
90
 
91
 
91
 
92
chdir /d "%exedir%"
92
chdir /d "%exedir%"
93
echo.
93
echo.
94
echo To switch your character, open the console (~) and type one of the following:
94
echo To switch your character, open the console (~) and type one of the following:
95
echo Duke: "setvar skin 0".
95
echo Duke: "setvar skin 0".
96
echo Santa: "setvar skin 1".
96
echo Santa: "setvar skin 1".
97
echo.
97
echo.
98
echo.
98
echo.
99
echo.
99
echo.
100
echo.
100
echo.
101
echo.
101
echo.
102
echo.
102
echo.
103
 
103
 
104
:init
104
:init
105
pause
105
pause
106
echo.
106
echo.
107
goto check
107
goto check
108
 
108
 
109
:check
109
:check
110
 
110
 
111
echo.
111
echo.
112
echo Launching Duke Nukem 3D . . .
112
echo Launching Duke Nukem 3D . . .
113
echo Thanks for %action%!
113
echo Thanks for %action%!
114
echo.
114
echo.
115
 
115
 
116
if "%editor%"=="1" (
116
if "%editor%"=="1" (
117
type "%exedir%\names.h" > "%exedir%\NWNames.h"
117
type "%exedir%\names.h" > "%exedir%\NWNames.h"
118
echo. >> "%exedir%\NWNames.h"
118
echo. >> "%exedir%\NWNames.h"
119
type "%addondir%\NWNames.def" >> "%exedir%\NWNames.h"
119
type "%addondir%\NWNames.def" >> "%exedir%\NWNames.h"
120
)
120
)
121
 
121
 
122
:arguments
122
:arguments
123
set args=
123
set args=
124
if exist "%exedir%\HRP\" set args=%args% -j HRP
124
if exist "%exedir%\HRP\" set args=%args% -j HRP
125
if exist "%exedir%\polymer_hrp\" set args=%args% -j polymer_hrp
125
if exist "%exedir%\polymer_hrp\" set args=%args% -j polymer_hrp
126
if exist "%exedir%\duke3d_voxel.zip" set args=%args% -g duke3d_voxel.zip
126
if exist "%exedir%\duke3d_voxel.zip" set args=%args% -g duke3d_voxel.zip
127
if exist "%exedir%\duke3d_hrp.zip" set args=%args% -g duke3d_hrp.zip
127
if exist "%exedir%\duke3d_hrp.zip" set args=%args% -g duke3d_hrp.zip
128
if exist "%exedir%\hrp_update.zip" set args=%args% -g hrp_update.zip
128
if exist "%exedir%\hrp_update.zip" set args=%args% -g hrp_update.zip
129
if exist "%exedir%\maphacks.zip" set args=%args% -g maphacks.zip
129
if exist "%exedir%\maphacks.zip" set args=%args% -g maphacks.zip
130
if exist "%exedir%\eduke32_mus.zip" set args=%args% -g eduke32_mus.zip
130
if exist "%exedir%\eduke32_mus.zip" set args=%args% -g eduke32_mus.zip
131
if exist "%addondir%" if not "%addondir%"=="%exedir%" set args=%args% -j "%addondir:\=/%"
131
if exist "%addondir%" if not "%addondir%"=="%exedir%" set args=%args% -j "%addondir:\=/%"
132
if exist "%addonhrpdir%" if not "%addonhrpdir%"=="%exedir%" if not "%addonhrpdir%"=="%addondir%" set args=%args% -j "%addonhrpdir:\=/%"
132
if exist "%addonhrpdir%" if not "%addonhrpdir%"=="%exedir%" if not "%addonhrpdir%"=="%addondir%" set args=%args% -j "%addonhrpdir:\=/%"
133
set args=%args% -g %nwgrpname% -h nwinter.def -x NWEDuke.con
133
set args=%args% -g %nwgrpname% -h nwinter.def -x NWEDuke.con
134
if "%editor%"=="1" set args=%args% -namesfile NWNames.h
134
if "%editor%"=="1" set args=%args% -namesfile NWNames.h
135
if "%dp%"=="1" set args=%args% -h nw_dp.def -x NWDP.con
135
if "%dp%"=="1" set args=%args% -h nw_dp.def -x NWDP.con
136
if "%xxx%"=="1" if exist "%exedir%\xxx_lite.zip" set args=%args% -g xxx_lite.zip
136
if "%xxx%"=="1" if exist "%exedir%\xxx_lite.zip" set args=%args% -g xxx_lite.zip
137
if "%xxx%"=="1" if exist "%exedir%\xxx_lite\" set args=%args% -j xxx_lite
137
if "%xxx%"=="1" if exist "%exedir%\xxx_lite\" set args=%args% -j xxx_lite
138
if "%xxx%"=="1" if exist "%exedir%\xxx_pack.zip" set args=%args% -g xxx_pack.zip
138
if "%xxx%"=="1" if exist "%exedir%\xxx_pack.zip" set args=%args% -g xxx_pack.zip
139
if "%xxx%"=="1" if exist "%exedir%\xxx_pack\" set args=%args% -j xxx_pack
139
if "%xxx%"=="1" if exist "%exedir%\xxx_pack\" set args=%args% -j xxx_pack
140
if "%xxx%"=="1" set args=%args% -h nw_xxx.def
140
if "%xxx%"=="1" set args=%args% -h nw_xxx.def
141
if "%xxx%"=="1" if "%dp%"=="1" set args=%args% -h nw_dp_xxx.def -x NWDPXXX.con
141
if "%xxx%"=="1" if "%dp%"=="1" set args=%args% -h nw_dp_xxx.def -x NWDPXXX.con
142
set args=%args% %*
142
set args=%args% %*
143
if "%dp%"=="1" set args=%args% -j DukePlus
143
if "%dp%"=="1" set args=%args% -j DukePlus
144
 
144
 
145
set exe=%exename%
145
set exe=%exename%
146
if "%debug%"=="1" set exe=%exename%.debug
146
if "%debug%"=="1" set exe=%exename%.debug
147
 
147
 
148
if exist %exe%.bat (
148
if exist %exe%.bat (
149
if "%debug%"=="1" echo DEBUG: Final Command Line: call %exe%.bat %args%
149
if "%debug%"=="1" echo DEBUG: Final Command Line: call %exe%.bat %args%
150
call %exe%.bat %args%
150
call %exe%.bat %args%
151
) else (
151
) else (
152
if "%debug%"=="1" echo DEBUG: Final Command Line: start %exe%.exe %args%
152
if "%debug%"=="1" echo DEBUG: Final Command Line: start %exe%.exe %args%
153
start %exe%.exe %args%
153
start %exe%.exe %args%
154
)
154
)
155
 
155
 
156
set svnpath=0
156
set svnpath=0
157
if "%svnpath%"=="0" if exist "%startdir%\svn\bin\svn.exe" set svnpath=%startdir%\svn\bin
157
if "%svnpath%"=="0" if exist "%startdir%\svn\bin\svn.exe" set svnpath=%startdir%\svn\bin
158
if "%svnpath%"=="0" if exist "%exedir%\svn\bin\svn.exe" set svnpath=%exedir%\svn\bin
158
if "%svnpath%"=="0" if exist "%exedir%\svn\bin\svn.exe" set svnpath=%exedir%\svn\bin
159
if "%svnpath%"=="0" if exist "%ProgramFiles%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles%\SlikSvn\bin
159
if "%svnpath%"=="0" if exist "%ProgramFiles%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles%\SlikSvn\bin
160
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\SlikSvn\bin
160
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\SlikSvn\bin
161
if "%svnpath%"=="0" if exist "%ProgramFiles%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles%\Subversion\bin
161
if "%svnpath%"=="0" if exist "%ProgramFiles%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles%\Subversion\bin
162
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\Subversion\bin
162
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\Subversion\bin
163
if "%svnpath%"=="0" if exist "%ProgramFiles%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles%\TortoiseSVN\bin
163
if "%svnpath%"=="0" if exist "%ProgramFiles%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles%\TortoiseSVN\bin
164
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\TortoiseSVN\bin
164
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\TortoiseSVN\bin
165
if "%svnpath%"=="0" for %%S in (svn.exe) do if exist "%%~dp$PATH:S" set svnpath=%%~dp$PATH:S
165
if "%svnpath%"=="0" for %%S in (svn.exe) do if exist "%%~dp$PATH:S" set svnpath=%%~dp$PATH:S
166
 
166
 
167
chdir /d "%addondir%"
167
chdir /d "%addondir%"
168
if not "%svnpath%"=="0" call :svn_action
168
if not "%svnpath%"=="0" call :svn_action
169
chdir /d "%addonhrpdir%"
169
chdir /d "%addonhrpdir%"
170
if not "%svnpath%"=="0" call :svn_action
170
if not "%svnpath%"=="0" call :svn_action
171
 
171
 
172
goto end
172
goto end
173
 
173
 
174
:svn_action
174
:svn_action
175
set PATH=%PATH%;%svnpath%
175
set PATH=%PATH%;%svnpath%
176
for /f "delims=" %%a in ('svnversion.exe .') do @set oldrev=%%a
176
for /f "delims=" %%a in ('svnversion.exe .') do @set oldrev=%%a
177
if "%oldrev%"=="exported" goto :eof
177
if "%oldrev%"=="exported" goto :eof
178
if "%oldrev%"=="Unversioned directory" goto :eof
178
if "%oldrev%"=="Unversioned directory" goto :eof
179
"svn.exe" update
179
"svn.exe" update
180
for /f "delims=" %%a in ('svnversion.exe .') do @set rev=%%a
180
for /f "delims=" %%a in ('svnversion.exe .') do @set rev=%%a
181
set oldrev=%oldrev:M=%
181
set oldrev=%oldrev:M=%
182
set oldrev=%oldrev:S=%
182
set oldrev=%oldrev:S=%
183
set oldrev=%oldrev:P=%
183
set oldrev=%oldrev:P=%
184
set rev=%rev:M=%
184
set rev=%rev:M=%
185
set rev=%rev:S=%
185
set rev=%rev:S=%
186
set rev=%rev:P=%
186
set rev=%rev:P=%
187
if %rev% EQU %oldrev% goto :eof
187
if %rev% EQU %oldrev% goto :eof
188
set /a oldrev=%oldrev% + 1
188
set /a oldrev=%oldrev% + 1
189
echo.
189
echo.
190
"svn.exe" log -r %oldrev%:%rev%
190
"svn.exe" log -r %oldrev%:%rev%
191
echo.
191
echo.
192
pause
192
pause
193
goto :eof
193
goto :eof
194
 
194
 
195
:nonwgrp
195
:nonwgrp
196
set megaton=Steam\SteamApps\common\Duke Nukem 3D\gameroot\addons\nwinter.grp
196
set megaton=Steam\SteamApps\common\Duke Nukem 3D\gameroot\addons\nwinter.grp
197
if exist "%ProgramFiles%\%megaton%" copy "%ProgramFiles%\%megaton%" .\ && call :conprotect && goto nonwgrp_done
197
if exist "%ProgramFiles%\%megaton%" copy "%ProgramFiles%\%megaton%" .\ && call :conprotect && goto nonwgrp_done
198
if exist "%ProgramFiles(x86)%\%megaton%" copy "%ProgramFiles(x86)%\%megaton%" .\ && call :conprotect && goto nonwgrp_done
198
if exist "%ProgramFiles(x86)%\%megaton%" copy "%ProgramFiles(x86)%\%megaton%" .\ && call :conprotect && goto nonwgrp_done
199
echo.
199
echo.
200
echo Error: You don't have NWINTER.GRP in your directory.
200
echo Error: You don't have NWINTER.GRP in your directory.
201
 
201
 
202
 
202
 
203
:retry
203
:retry
204
echo.
204
echo.
205
set cddrive=
205
set cddrive=
206
set /p cddrive=What is the drive letter that your Nuclear Winter CD is in?
206
set /p cddrive=What is the drive letter that your Nuclear Winter CD is in?
207
echo.
207
echo.
208
if not '%cddrive%'=='' set cddrive=%cddrive:~0,1%
208
if not '%cddrive%'=='' set cddrive=%cddrive:~0,1%
209
if '%cddrive%'=='' goto cdno
209
if '%cddrive%'=='' goto cdno
210
if not exist %cddrive%:\ goto cdno
210
if not exist %cddrive%:\ goto cdno
211
if not exist %cddrive%:\* goto cdno
211
if not exist %cddrive%:\* goto cdno
212
if exist %cddrive%:\GAMEDATA\NWINTER.GRP copy %cddrive%:\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
212
if exist %cddrive%:\GAMEDATA\NWINTER.GRP copy %cddrive%:\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
213
if exist %cddrive%:\NWINTER\GAMEDATA\NWINTER.GRP copy %cddrive%:\NWINTER\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
213
if exist %cddrive%:\NWINTER\GAMEDATA\NWINTER.GRP copy %cddrive%:\NWINTER\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
214
if exist %cddrive%:\NW\GAMEDATA\NWINTER.GRP copy %cddrive%:\NW\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
214
if exist %cddrive%:\NW\GAMEDATA\NWINTER.GRP copy %cddrive%:\NW\GAMEDATA\NWINTER.GRP .\nwinter.grp && goto nonwgrp_done
215
goto cdwrong
215
goto cdwrong
216
 
216
 
217
:nonwgrp_done
217
:nonwgrp_done
218
echo.
218
echo.
219
if exist nwinter.grp (
219
if exist nwinter.grp (
220
type NWINTRO.TXT
220
type NWINTRO.TXT
221
echo.
221
echo.
222
pause
222
pause
223
call :grpchecksum
223
call :grpchecksum
224
call :grpchecksum_results
224
call :grpchecksum_results
225
goto nonwgrp_return
225
goto nonwgrp_return
226
)
226
)
227
if not exist nwinter.grp (
227
if not exist nwinter.grp (
228
echo Installation Error!
228
echo Installation Error!
229
echo Contact Hendricks266 for help.
229
echo Contact Hendricks266 for help.
230
echo.
230
echo.
231
pause
231
pause
232
goto end
232
goto end
233
)
233
)
234
 
234
 
235
:grpchecksum
235
:grpchecksum
236
if not exist "%sha1sum%" (
236
if not exist "%sha1sum%" (
237
echo "%sha1sum%" not found.
237
echo "%sha1sum%" not found.
238
goto :eof
238
goto :eof
239
)
239
)
240
pushd .
240
pushd .
241
if exist "%addondir%\%nwgrpname%" chdir /d %addondir%
241
if exist "%addondir%\%nwgrpname%" chdir /d %addondir%
242
if exist "%exedir%\%nwgrpname%" chdir /d %exedir%
242
if exist "%exedir%\%nwgrpname%" chdir /d %exedir%
243
echo a6728f621f121f9db02ee67c39efdbb5eea95711 *%nwgrpname% | "%sha1sum%" --status --check -
243
echo a6728f621f121f9db02ee67c39efdbb5eea95711 *%nwgrpname% | "%sha1sum%" --status --check -
244
if "%ERRORLEVEL%"=="0" set version=full&& popd && goto :eof
244
if "%ERRORLEVEL%"=="0" set version=full&& popd && goto :eof
245
if "%ERRORLEVEL%"=="1" echo 1b33b2cbb7101b5b18b15855392f55575413ecc3 *%nwgrpname% | "%sha1sum%" --status --check -
245
if "%ERRORLEVEL%"=="1" echo 1b33b2cbb7101b5b18b15855392f55575413ecc3 *%nwgrpname% | "%sha1sum%" --status --check -
246
if "%ERRORLEVEL%"=="0" set version=demo&& popd && goto :eof
246
if "%ERRORLEVEL%"=="0" set version=demo&& popd && goto :eof
247
if "%ERRORLEVEL%"=="1" set version=unknown
247
if "%ERRORLEVEL%"=="1" set version=unknown
248
popd
248
popd
249
goto :eof
249
goto :eof
250
 
250
 
251
:grpchecksum_results
251
:grpchecksum_results
252
if "%version%"=="full" echo NWINTER.GRP checksum verified.
252
if "%version%"=="full" echo NWINTER.GRP checksum verified.
253
if "%version%"=="demo" echo NWINTER.GRP (demo version) checksum verified.
253
if "%version%"=="demo" echo NWINTER.GRP (demo version) checksum verified.
254
if "%version%"=="unknown" echo NWINTER.GRP checksum does not match. You may have a bad copy.
254
if "%version%"=="unknown" echo NWINTER.GRP checksum does not match. You may have a bad copy.
255
echo.
255
echo.
256
goto :eof
256
goto :eof
257
 
257
 
258
:cdno
258
:cdno
259
echo '%cddrive%' is not valid.  Please try again.
259
echo '%cddrive%' is not valid.  Please try again.
260
goto retry
260
goto retry
261
 
261
 
262
:cdwrong
262
:cdwrong
263
echo '%cddrive%' is not the correct disc.  Please try again.
263
echo '%cddrive%' is not the correct disc.  Please try again.
264
goto retry
264
goto retry
265
 
265
 
266
:mapextract
266
:mapextract
267
echo Extracted maps not found or patched. Proceeding to installation.
267
echo Extracted maps not found or patched. Proceeding to installation.
268
goto extract
268
goto extract
269
 
269
 
270
:updateextract
270
:updateextract
271
echo Map patch update required. Proceeding to installation.
271
echo Map patch update required. Proceeding to installation.
272
goto extract
272
goto extract
273
 
273
 
274
:extract
274
:extract
275
echo.
275
echo.
276
echo                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
276
echo                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
277
echo                                º Installation º
277
echo                                º Installation º
278
echo                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
278
echo                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
279
echo.
279
echo.
280
call :grpchecksum
280
call :grpchecksum
281
call :grpchecksum_results
281
call :grpchecksum_results
282
if not exist nwl1.patch goto nopatch
282
if not exist nwl1.patch goto nopatch
283
if not exist nwl2.patch goto nopatch
283
if not exist nwl2.patch goto nopatch
284
if not exist nwl3.patch goto nopatch
284
if not exist nwl3.patch goto nopatch
285
if not exist nwl4.patch goto nopatch
285
if not exist nwl4.patch goto nopatch
286
if not exist nwl5.patch goto nopatch
286
if not exist nwl5.patch goto nopatch
287
if not exist nwl6.patch goto nopatch
287
if not exist nwl6.patch goto nopatch
288
if not exist nwl7.patch goto nopatch
288
if not exist nwl7.patch goto nopatch
289
if not exist nwl8.patch goto nopatch
289
if not exist nwl8.patch goto nopatch
290
mkdir nw_preserve
290
mkdir nw_preserve
291
if exist nwl*.map move /y nwl*.map nw_preserve\
291
if exist nwl*.map move /y nwl*.map nw_preserve\
292
if exist "%exedir%\nwl*.map" move /y "%exedir%\nwl*.map" nw_preserve\
292
if exist "%exedir%\nwl*.map" move /y "%exedir%\nwl*.map" nw_preserve\
293
:: TODO: eliminate the need for the if exist checks; tighten up path handling
293
:: TODO: eliminate the need for the if exist checks; tighten up path handling
294
set grp=nwinter.grp
294
set grp=nwinter.grp
295
if exist "%addondir%\%nwgrpname%" set grp=%addondir%\%nwgrpname%
295
if exist "%addondir%\%nwgrpname%" set grp=%addondir%\%nwgrpname%
296
if exist "%exedir%\%nwgrpname%" set grp=%exedir%\%nwgrpname%
296
if exist "%exedir%\%nwgrpname%" set grp=%exedir%\%nwgrpname%
297
"%kextract%" "%grp%" E2L*.MAP
297
"%kextract%" "%grp%" E2L*.MAP
298
ren E2L1.MAP nwl1.map
298
ren E2L1.MAP nwl1.map
299
ren E2L2.MAP nwl2.map
299
ren E2L2.MAP nwl2.map
300
ren E2L3.MAP nwl3.map
300
ren E2L3.MAP nwl3.map
301
ren E2L4.MAP nwl4.map
301
ren E2L4.MAP nwl4.map
302
ren E2L5.MAP nwl5.map
302
ren E2L5.MAP nwl5.map
303
ren E2L6.MAP nwl6.map
303
ren E2L6.MAP nwl6.map
304
ren E2L7.MAP nwl7.map
304
ren E2L7.MAP nwl7.map
305
ren E2L8.MAP nwl8.map
305
ren E2L8.MAP nwl8.map
306
if exist nwpatch*.h266 del /f /q nwpatch*.h266
306
if exist nwpatch*.h266 del /f /q nwpatch*.h266
307
if exist nwflag*.h266 del /f /q nwflag*.h266
307
if exist nwflag*.h266 del /f /q nwflag*.h266
308
echo.
308
echo.
309
echo Map patching will now begin.
309
echo Map patching will now begin.
310
echo.
310
echo.
311
pause
311
pause
312
echo
312
echo.
313
"%bspatch%" nwl1.map nwl1.map nwl1.patch
313
"%bspatch%" nwl1.map nwl1.map nwl1.patch
314
"%bspatch%" nwl2.map nwl2.map nwl2.patch
314
"%bspatch%" nwl2.map nwl2.map nwl2.patch
315
"%bspatch%" nwl3.map nwl3.map nwl3.patch
315
"%bspatch%" nwl3.map nwl3.map nwl3.patch
316
"%bspatch%" nwl4.map nwl4.map nwl4.patch
316
"%bspatch%" nwl4.map nwl4.map nwl4.patch
317
"%bspatch%" nwl5.map nwl5.map nwl5.patch
317
"%bspatch%" nwl5.map nwl5.map nwl5.patch
318
"%bspatch%" nwl6.map nwl6.map nwl6.patch
318
"%bspatch%" nwl6.map nwl6.map nwl6.patch
319
"%bspatch%" nwl7.map nwl7.map nwl7.patch
319
"%bspatch%" nwl7.map nwl7.map nwl7.patch
320
"%bspatch%" nwl8.map nwl8.map nwl8.patch
320
"%bspatch%" nwl8.map nwl8.map nwl8.patch
321
if exist nwpatch*.h266 del /f /q nwpatch*.h266
321
if exist nwpatch*.h266 del /f /q nwpatch*.h266
322
if exist nwflag*.h266 del /f /q nwflag*.h266
322
if exist nwflag*.h266 del /f /q nwflag*.h266
323
echo Do not delete this file! You will be forced to reinstall NW+ and repatch the maps. >nwflag_%addonver%.h266
323
echo Do not delete this file! You will be forced to reinstall NW+ and repatch the maps. >nwflag_%addonver%.h266
324
attrib +r nwflag_%addonver%.h266
324
attrib +r nwflag_%addonver%.h266
325
echo.
325
echo.
326
echo Patching complete!
326
echo Patching complete!
327
:scanning
327
:scanning
328
chdir "%exedir%"
328
chdir "%exedir%"
329
echo.
329
echo.
330
echo Scanning directory for potential problems.
330
echo Scanning directory for potential problems.
331
if exist nwl1.mhk goto mhkfound
331
if exist nwl1.mhk goto mhkfound
332
if exist nwl1demo.mhk goto mhkfound
332
if exist nwl1demo.mhk goto mhkfound
333
if exist nwl2.mhk goto mhkfound
333
if exist nwl2.mhk goto mhkfound
334
if exist nwl3.mhk goto mhkfound
334
if exist nwl3.mhk goto mhkfound
335
if exist nwl4.mhk goto mhkfound
335
if exist nwl4.mhk goto mhkfound
336
if exist nwl5.mhk goto mhkfound
336
if exist nwl5.mhk goto mhkfound
337
if exist nwl6.mhk goto mhkfound
337
if exist nwl6.mhk goto mhkfound
338
if exist nwl7.mhk goto mhkfound
338
if exist nwl7.mhk goto mhkfound
339
if exist nwl8.mhk goto mhkfound
339
if exist nwl8.mhk goto mhkfound
340
if exist _nwzoo.mhk goto mhkfound
340
if exist _nwzoo.mhk goto mhkfound
341
:mhkfound_done
341
:mhkfound_done
342
if exist TILES005.ART goto artfound
342
if exist TILES005.ART goto artfound
343
if exist TILES006.ART goto artfound
343
if exist TILES006.ART goto artfound
344
if exist TILES007.ART goto artfound
344
if exist TILES007.ART goto artfound
345
if exist TILES008.ART goto artfound
345
if exist TILES008.ART goto artfound
346
if exist TILES009.ART goto artfound
346
if exist TILES009.ART goto artfound
347
if exist TILES012.ART goto artfound
347
if exist TILES012.ART goto artfound
348
if exist TILES013.ART goto artfound
348
if exist TILES013.ART goto artfound
349
if exist TILES014.ART goto artfound
349
if exist TILES014.ART goto artfound
350
if exist TILES015.ART goto artfound
350
if exist TILES015.ART goto artfound
351
:artfound_done
351
:artfound_done
352
call :checksum c6b8ca33ea6a2ec46b8dfeca4f9a3d5e078d0789 NWACTOR.CON "NWINTER file detected and neutralized:"
352
call :checksum c6b8ca33ea6a2ec46b8dfeca4f9a3d5e078d0789 NWACTOR.CON "NWINTER file detected and neutralized:"
353
call :checksum fdb91aa2912f16232ed9020a7d8ec35834ef58c8 NWDEFS.CON "NWINTER file detected and neutralized:"
353
call :checksum fdb91aa2912f16232ed9020a7d8ec35834ef58c8 NWDEFS.CON "NWINTER file detected and neutralized:"
354
call :checksum 2bb2ddc7319e0935569b724f3c67cb953fdb79d6 NWINTER.CON "NWINTER file detected and neutralized:"
354
call :checksum 2bb2ddc7319e0935569b724f3c67cb953fdb79d6 NWINTER.CON "NWINTER file detected and neutralized:"
355
call :checksum 5ae347733be1f87f35d1930186de1ed764f4682f NWSNOW.CON "NWINTER file detected and neutralized:"
355
call :checksum 5ae347733be1f87f35d1930186de1ed764f4682f NWSNOW.CON "NWINTER file detected and neutralized:"
356
call :checksum 5df8b3b4216dcfdb8bc0adf6241f8a893eacfd98 NWUSER.CON "NWINTER file detected and neutralized:"
356
call :checksum 5df8b3b4216dcfdb8bc0adf6241f8a893eacfd98 NWUSER.CON "NWINTER file detected and neutralized:"
357
if exist NWinter.con goto confound
357
if exist NWinter.con goto confound
358
if exist NWActor.con goto confound
358
if exist NWActor.con goto confound
359
if exist NWDefs.con goto confound
359
if exist NWDefs.con goto confound
360
if exist NWDP.con goto confound
360
if exist NWDP.con goto confound
361
if exist NWDPCode.con goto confound
361
if exist NWDPCode.con goto confound
362
if exist NWDPXXX.con goto confound
362
if exist NWDPXXX.con goto confound
363
if exist NWEDuke.con goto confound
363
if exist NWEDuke.con goto confound
364
if exist NWSnow.con goto confound
364
if exist NWSnow.con goto confound
365
if exist NWUser.con goto confound
365
if exist NWUser.con goto confound
366
:confound_done
366
:confound_done
367
call :conprotect
367
call :conprotect
368
chdir /d "%addondir%"
368
chdir /d "%addondir%"
369
echo.
369
echo.
370
pause
370
pause
371
goto restart
371
goto restart
372
 
372
 
373
:conprotect
373
:conprotect
374
pushd "%exedir%"
374
pushd "%exedir%"
375
if not exist GAME.CON "%kextract%" DUKE3D.GRP GAME.CON
375
if not exist GAME.CON "%kextract%" DUKE3D.GRP GAME.CON
376
if not exist DEFS.CON "%kextract%" DUKE3D.GRP DEFS.CON
376
if not exist DEFS.CON "%kextract%" DUKE3D.GRP DEFS.CON
377
if not exist USER.CON "%kextract%" DUKE3D.GRP USER.CON
377
if not exist USER.CON "%kextract%" DUKE3D.GRP USER.CON
378
popd
378
popd
379
goto :eof
379
goto :eof
380
 
380
 
381
:checksum
381
:checksum
382
if not exist "%sha1sum%" (
382
if not exist "%sha1sum%" (
383
echo "%sha1sum%" not found.
383
echo "%sha1sum%" not found.
384
goto :eof
384
goto :eof
385
)
385
)
386
if not exist "%~2" goto :eof
386
if not exist "%~2" goto :eof
387
echo %~1 *%~2 | "%sha1sum%" --status --check -
387
echo %~1 *%~2 | "%sha1sum%" --status --check -
388
if "%ERRORLEVEL%"=="0" (
388
if "%ERRORLEVEL%"=="0" (
389
ren "%~2" "NWOld_%addonver%_%~nx2"
389
ren "%~2" "NWOld_%addonver%_%~nx2"
390
echo %~3 %~nx2
390
echo %~3 %~nx2
391
)
391
)
392
goto :eof
392
goto :eof
393
 
393
 
394
:nopatch
394
:nopatch
395
echo.
395
echo.
396
echo Error: You don't have all the *.patch files in your directory.
396
echo Error: You don't have all the *.patch files in your directory.
397
echo Aborting installation.
397
echo Aborting installation.
398
echo Map patching is required for NW+ to function correctly.
398
echo Map patching is required for NW+ to function correctly.
399
echo.
399
echo.
400
pause
400
pause
401
goto end
401
goto end
402
 
402
 
403
:mhkfound
403
:mhkfound
404
echo.
404
echo.
405
echo Problematic .mhk files have been found in your directory.
405
echo Problematic .mhk files have been found in your directory.
406
echo Unless you have knowingly made a modification to NW's map hacks,
406
echo Unless you have knowingly made a modification to NW's map hacks,
407
echo the presence of these files in your %exeproper% directory will
407
echo the presence of these files in your %exeproper% directory will
408
echo cause NW+ to function incorrectly.
408
echo cause NW+ to function incorrectly.
409
echo.
409
echo.
410
echo nwl1.mhk
410
echo nwl1.mhk
411
echo nwl1demo.mhk
411
echo nwl1demo.mhk
412
echo nwl2.mhk
412
echo nwl2.mhk
413
echo nwl3.mhk
413
echo nwl3.mhk
414
echo nwl4.mhk
414
echo nwl4.mhk
415
echo nwl5.mhk
415
echo nwl5.mhk
416
echo nwl6.mhk
416
echo nwl6.mhk
417
echo nwl7.mhk
417
echo nwl7.mhk
418
echo nwl8.mhk
418
echo nwl8.mhk
419
echo _nwzoo.mhk
419
echo _nwzoo.mhk
420
goto mhkfound_done
420
goto mhkfound_done
421
 
421
 
422
:artfound
422
:artfound
423
echo.
423
echo.
424
echo Problematic .art files have been found in your directory.
424
echo Problematic .art files have been found in your directory.
425
echo Unless you have knowingly made a modification to NW's art,
425
echo Unless you have knowingly made a modification to NW's art,
426
echo the presence of these files in your %exeproper% directory will
426
echo the presence of these files in your %exeproper% directory will
427
echo cause NW+ to function incorrectly.
427
echo cause NW+ to function incorrectly.
428
echo.
428
echo.
429
echo TILES005.ART
429
echo TILES005.ART
430
echo TILES006.ART
430
echo TILES006.ART
431
echo TILES007.ART
431
echo TILES007.ART
432
echo TILES008.ART
432
echo TILES008.ART
433
echo TILES009.ART
433
echo TILES009.ART
434
echo TILES012.ART
434
echo TILES012.ART
435
echo TILES013.ART
435
echo TILES013.ART
436
echo TILES014.ART
436
echo TILES014.ART
437
echo TILES015.ART
437
echo TILES015.ART
438
goto artfound_done
438
goto artfound_done
439
 
439
 
440
:confound
440
:confound
441
echo.
441
echo.
442
echo Problematic .con files have been found in your directory.
442
echo Problematic .con files have been found in your directory.
443
echo Unless you have knowingly made a modification to NW's programming,
443
echo Unless you have knowingly made a modification to NW's programming,
444
echo the presence of these files in your %exeproper% directory will
444
echo the presence of these files in your %exeproper% directory will
445
echo cause NW+ to function incorrectly.
445
echo cause NW+ to function incorrectly.
446
echo.
446
echo.
447
echo NWinter.con
447
echo NWinter.con
448
echo NWEDuke.con
448
echo NWEDuke.con
449
echo NWDefs.con
449
echo NWDefs.con
450
echo NWUser.con
450
echo NWUser.con
451
echo NWDP.con
451
echo NWDP.con
452
echo NWDPCode.con
452
echo NWDPCode.con
453
echo NWDPXXX.con
453
echo NWDPXXX.con
454
echo NWActor.con
454
echo NWActor.con
455
echo NWSnow.con
455
echo NWSnow.con
456
echo.
456
echo.
457
echo IF THESE ARE THE ORIGINAL NUCLEAR WINTER CON FILES, OR THEY COME FROM
457
echo IF THESE ARE THE ORIGINAL NUCLEAR WINTER CON FILES, OR THEY COME FROM
458
echo AN OUTDATED VERSION OF NW+, REMOVE THEM FROM YOUR %exeproper% DIRECTORY
458
echo AN OUTDATED VERSION OF NW+, REMOVE THEM FROM YOUR %exeproper% DIRECTORY
459
echo IMMEDIATELY!
459
echo IMMEDIATELY!
460
echo NW+ uses modified .con files to fix programming errors created by
460
echo NW+ uses modified .con files to fix programming errors created by
461
echo the original programmers. Due to improvements made to the levels,
461
echo the original programmers. Due to improvements made to the levels,
462
echo NW+ will have major errors if the included .con files are not used.
462
echo NW+ will have major errors if the included .con files are not used.
463
goto confound_done
463
goto confound_done
464
 
464
 
465
:execheck
465
:execheck
466
if exist %exename%.bat goto execheck_done
466
if exist %exename%.bat goto execheck_done
467
if exist %exename%.exe goto recheck
467
if exist %exename%.exe goto recheck
468
set prevdir=%cd%
468
set prevdir=%cd%
469
if not "%cd%"=="%cd:~0,3%" chdir ..
469
if not "%cd%"=="%cd:~0,3%" chdir ..
470
if not "%cd%"=="%prevdir%" goto execheck
470
if not "%cd%"=="%prevdir%" goto execheck
471
echo Warning: You don't have %exeproper% in your directory.
471
echo Warning: You don't have %exeproper% in your directory.
472
chdir /d "%startdir%"
472
chdir /d "%startdir%"
473
goto execheck_done
473
goto execheck_done
474
 
474
 
475
:nodir
475
:nodir
476
echo.
476
echo.
477
echo Error: "nw_plus" data directory not found.
477
echo Error: "nw_plus" data directory not found.
478
echo Aborting launch.
478
echo Aborting launch.
479
echo.
479
echo.
480
pause
480
pause
481
goto end
481
goto end
482
 
482
 
483
:end
483
:end
484
if "%debug%"=="1" echo.
484
if "%debug%"=="1" echo.
485
if "%debug%"=="1" pause
485
if "%debug%"=="1" pause
486
echo.
486
echo.
487
popd
487
popd
488
endlocal
488
endlocal
489
title %ComSpec%
489
title %ComSpec%
490
color 07
490
color 07
491
 
491