Subversion Repositories nw_plus

Rev

Rev 40 | Rev 42 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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