Subversion Repositories nw_plus

Rev

Rev 48 | Rev 50 | 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 .
43 h266 4
chdir /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
 
48 h266 42
if "%debug%"=="1" echo DEBUG: Command Line Input: %*
43
 
1 h266 44
:recheck
18 h266 45
if not exist %exename%.exe goto execheck
46
:execheck_done
47
set exedir=%cd%
48
if "%debug%"=="1" echo DEBUG: %exeproper% Directory: "%exedir%"
13 h266 49
 
1 h266 50
if not exist nw_plus\ goto nodir
7 h266 51
if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory.
13 h266 52
 
18 h266 53
if exist nwinter\ set addonhrpdir=%cd%
54
:addondircheck
55
 
43 h266 56
chdir nw_plus
18 h266 57
set addondir=%cd%
58
if exist nwinter\ set addonhrpdir=%cd%
59
if exist nw_plus\ goto addondircheck
60
if "%debug%"=="1" echo DEBUG: NW+ Directory: "%addondir%".
61
if "%debug%"=="1" echo DEBUG: NWHRP Directory: "%addonhrpdir%".
13 h266 62
 
49 h266 63
if "%nwgrpname%"=="" set nwgrpname=nwinter.grp
64
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%exedir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
65
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" if exist "%addondir%\nwinter_demo.grp" set nwgrpname=nwinter_demo.grp
66
if not exist "%exedir%\%nwgrpname%" if not exist "%addondir%\%nwgrpname%" goto nonwgrp
13 h266 67
 
43 h266 68
if exist nwinter.grp ren nwinter.grp nwinter.grp
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
 
43 h266 86
chdir /d "%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:\=/%"
49 h266 127
set args=%args% -g%nwgrpname% -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%
42 h266 144
if "%debug%"=="1" echo DEBUG: Final Command Line: call %exe%.bat %args%
13 h266 145
) else (
146
start %exe%.exe %args%
42 h266 147
if "%debug%"=="1" echo DEBUG: Final Command Line: start %exe%.exe %args%
13 h266 148
)
149
 
35 h266 150
set svnpath=0
45 h266 151
if "%svnpath%"=="0" if exist "%~dp0\svn\bin\svn.exe" set svnpath=%~dp0\svn\bin
152
if "%svnpath%"=="0" if exist "%exedir%\svn\bin\svn.exe" set svnpath=%exedir%\svn\bin
39 h266 153
if "%svnpath%"=="0" if exist "%ProgramFiles%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles%\SlikSvn\bin
154
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\SlikSvn\bin
38 h266 155
if "%svnpath%"=="0" if exist "%ProgramFiles%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles%\Subversion\bin
156
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\Subversion\bin
35 h266 157
if "%svnpath%"=="0" if exist "%ProgramFiles%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles%\TortoiseSVN\bin
158
if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\TortoiseSVN\bin
38 h266 159
if "%svnpath%"=="0" for %%S in (svn.exe) do if exist "%%~dp$PATH:S" set svnpath=%%~dp$PATH:S
35 h266 160
 
43 h266 161
chdir /d "%addondir%"
47 h266 162
if not "%svnpath%"=="0" if exist ".svn" "%svnpath%\svn.exe" update
43 h266 163
chdir /d "%addonhrpdir%"
47 h266 164
if not "%svnpath%"=="0" if exist ".svn" "%svnpath%\svn.exe" update
35 h266 165
 
1 h266 166
goto end
167
 
168
:nonwgrp
169
echo.
170
echo Error: You don't have NWINTER.GRP in your directory.
25 h266 171
 
172
 
1 h266 173
:retry
174
echo.
175
set cddrive=
176
set /p cddrive=What is the drive letter that your Nuclear Winter CD is in?
177
echo.
178
if not '%cddrive%'=='' set cddrive=%cddrive:~0,1%
179
if '%cddrive%'=='' goto cdno
180
if not exist %cddrive%:\ goto cdno
181
if not exist %cddrive%:\* goto cdno
182
if not exist %cddrive%:\GAMEDATA\NWINTER.GRP goto cdw
27 h266 183
copy %cddrive%:GAMEDATA\NWINTER.GRP .\nwinter.grp
1 h266 184
echo.
43 h266 185
if exist nwinter.grp (
1 h266 186
type NWINTRO.TXT
187
echo.
188
pause
30 h266 189
call :grpchecksum
190
call :grpchecksum_results
191
goto nonwgrp_return
43 h266 192
)
193
if not exist nwinter.grp (
194
echo Installation Error!
195
echo Contact Hendricks266 for help.
196
echo.
197
pause
198
goto end
199
)
1 h266 200
 
30 h266 201
:grpchecksum
40 h266 202
if not exist "%addondir%\utils\windows\win32\sha1sum.exe" (
203
echo "%addondir%\utils\windows\win32\sha1sum.exe" not found.
204
goto :eof
205
)
49 h266 206
pushd .
207
if exist "%addondir%\%nwgrpname%" cd /d %addondir%
208
if exist "%exedir%\%nwgrpname%" cd /d %exedir%
209
echo a6728f621f121f9db02ee67c39efdbb5eea95711 *%nwgrpname% | "%addondir%\utils\windows\win32\sha1sum.exe" --status --check -
210
if "%ERRORLEVEL%"=="0" set version=full && popd && goto :eof
211
if "%ERRORLEVEL%"=="1" echo 1b33b2cbb7101b5b18b15855392f55575413ecc3 *%nwgrpname% | "%addondir%\utils\windows\win32\sha1sum.exe" --status --check -
212
if "%ERRORLEVEL%"=="0" set version=demo && popd && goto :eof
30 h266 213
if "%ERRORLEVEL%"=="1" set version=unknown
49 h266 214
popd
30 h266 215
goto :eof
27 h266 216
 
30 h266 217
:grpchecksum_results
39 h266 218
if "%version%"=="full" echo NWINTER.GRP checksum verified.
219
if "%version%"=="demo" echo NWINTER.GRP (demo version) checksum verified.
220
if "%version%"=="unknown" echo NWINTER.GRP checksum does not match. You may have a bad copy.
30 h266 221
echo.
222
goto :eof
27 h266 223
 
1 h266 224
:cdno
225
echo '%cddrive%' is not valid.  Please try again.
226
goto retry
227
 
228
:cdw
229
echo '%cddrive%' is not the correct disc.  Please try again.
230
goto retry
231
 
22 h266 232
:mapextract
30 h266 233
echo Extracted maps not found or patched. Proceeding to installation.
22 h266 234
goto extract
235
 
236
:updateextract
237
echo Map patch update required. Proceeding to installation.
238
goto extract
239
 
1 h266 240
:extract
241
echo.
18 h266 242
echo                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
243
echo                                º Installation º
244
echo                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
1 h266 245
echo.
30 h266 246
call :grpchecksum
247
call :grpchecksum_results
24 h266 248
if not exist nwl1.patch goto nopatch
249
if not exist nwl2.patch goto nopatch
250
if not exist nwl3.patch goto nopatch
251
if not exist nwl4.patch goto nopatch
252
if not exist nwl5.patch goto nopatch
253
if not exist nwl6.patch goto nopatch
254
if not exist nwl7.patch goto nopatch
255
if not exist nwl8.patch goto nopatch
43 h266 256
mkdir nw_preserve
6 h266 257
if exist nwl*.map move /y nwl*.map nw_preserve\
18 h266 258
if exist "%exedir%\nwl*.map" move /y "%exedir%\nwl*.map" nw_preserve\
43 h266 259
"%addondir%\utils\windows\win32\kextract.exe" nwinter.grp E2L*.MAP
1 h266 260
ren E2L1.MAP nwl1.map
261
ren E2L2.MAP nwl2.map
262
ren E2L3.MAP nwl3.map
263
ren E2L4.MAP nwl4.map
264
ren E2L5.MAP nwl5.map
265
ren E2L6.MAP nwl6.map
266
ren E2L7.MAP nwl7.map
267
ren E2L8.MAP nwl8.map
268
if exist nwpatch*.h266 del /f /q nwpatch*.h266
269
if exist nwflag*.h266 del /f /q nwflag*.h266
270
echo.
271
echo Map patching will now begin.
272
echo.
273
pause
274
echo
27 h266 275
"%addondir%\utils\windows\win32\bspatch.exe" nwl1.map nwl1.map nwl1.patch
276
"%addondir%\utils\windows\win32\bspatch.exe" nwl2.map nwl2.map nwl2.patch
277
"%addondir%\utils\windows\win32\bspatch.exe" nwl3.map nwl3.map nwl3.patch
278
"%addondir%\utils\windows\win32\bspatch.exe" nwl4.map nwl4.map nwl4.patch
279
"%addondir%\utils\windows\win32\bspatch.exe" nwl5.map nwl5.map nwl5.patch
280
"%addondir%\utils\windows\win32\bspatch.exe" nwl6.map nwl6.map nwl6.patch
281
"%addondir%\utils\windows\win32\bspatch.exe" nwl7.map nwl7.map nwl7.patch
282
"%addondir%\utils\windows\win32\bspatch.exe" nwl8.map nwl8.map nwl8.patch
1 h266 283
if exist nwpatch*.h266 del /f /q nwpatch*.h266
284
if exist nwflag*.h266 del /f /q nwflag*.h266
18 h266 285
echo Do not delete this file^! You will be forced to reinstall NW+ and repatch the maps. >nwflag_%addonver%.h266
286
attrib +r nwflag_%addonver%.h266
1 h266 287
echo.
18 h266 288
echo Patching complete^!
1 h266 289
:scanning
43 h266 290
chdir "%exedir%"
1 h266 291
echo.
292
echo Scanning directory for potential problems.
293
if exist nwl1.mhk goto mhkfound
294
if exist nwl1demo.mhk goto mhkfound
295
if exist nwl2.mhk goto mhkfound
296
if exist nwl3.mhk goto mhkfound
297
if exist nwl4.mhk goto mhkfound
298
if exist nwl5.mhk goto mhkfound
299
if exist nwl6.mhk goto mhkfound
300
if exist nwl7.mhk goto mhkfound
301
if exist nwl8.mhk goto mhkfound
302
if exist _nwzoo.mhk goto mhkfound
303
:mhkfound_done
304
if exist TILES005.ART goto artfound
305
if exist TILES006.ART goto artfound
306
if exist TILES007.ART goto artfound
307
if exist TILES008.ART goto artfound
308
if exist TILES009.ART goto artfound
309
if exist TILES012.ART goto artfound
310
if exist TILES013.ART goto artfound
311
if exist TILES014.ART goto artfound
312
if exist TILES015.ART goto artfound
313
:artfound_done
27 h266 314
call :checksum c6b8ca33ea6a2ec46b8dfeca4f9a3d5e078d0789 NWACTOR.CON "NWINTER file detected and neutralized:"
315
call :checksum fdb91aa2912f16232ed9020a7d8ec35834ef58c8 NWDEFS.CON "NWINTER file detected and neutralized:"
316
call :checksum 2bb2ddc7319e0935569b724f3c67cb953fdb79d6 NWINTER.CON "NWINTER file detected and neutralized:"
317
call :checksum 5ae347733be1f87f35d1930186de1ed764f4682f NWSNOW.CON "NWINTER file detected and neutralized:"
318
call :checksum 5df8b3b4216dcfdb8bc0adf6241f8a893eacfd98 NWUSER.CON "NWINTER file detected and neutralized:"
1 h266 319
if exist NWinter.con goto confound
320
if exist NWActor.con goto confound
321
if exist NWDefs.con goto confound
322
if exist NWDP.con goto confound
323
if exist NWDPCode.con goto confound
324
if exist NWDPXXX.con goto confound
325
if exist NWEDuke.con goto confound
326
if exist NWSnow.con goto confound
327
if exist NWUser.con goto confound
328
:confound_done
43 h266 329
chdir /d "%exedir%"
28 h266 330
if not exist GAME.CON "%addondir%\utils\windows\win32\kextract.exe" DUKE3D.GRP GAME.CON
331
if not exist DEFS.CON "%addondir%\utils\windows\win32\kextract.exe" DUKE3D.GRP DEFS.CON
332
if not exist USER.CON "%addondir%\utils\windows\win32\kextract.exe" DUKE3D.GRP USER.CON
43 h266 333
chdir /d "%addondir%"
1 h266 334
echo.
335
pause
336
goto restart
337
 
27 h266 338
:checksum
40 h266 339
if not exist "%addondir%\utils\windows\win32\sha1sum.exe" (
340
echo "%addondir%\utils\windows\win32\sha1sum.exe" not found.
341
goto :eof
342
)
27 h266 343
if not exist "%~2" goto :eof
344
echo %~1 *%~2 | "%addondir%\utils\windows\win32\sha1sum.exe" --status --check -
345
if "%ERRORLEVEL%"=="0" (
30 h266 346
ren "%~2" "NWOld_%addonver%_%~nx2"
27 h266 347
echo %~3 %~nx2
348
)
349
goto :eof
350
 
24 h266 351
:nopatch
1 h266 352
echo.
24 h266 353
echo Error: You don't have all the *.patch files in your directory.
1 h266 354
echo Aborting installation.
355
echo Map patching is required for NW+ to function correctly.
356
echo.
357
pause
358
goto end
359
 
360
:mhkfound
361
echo.
362
echo Problematic .mhk files have been found in your directory.
363
echo Unless you have knowingly made a modification to NW's map hacks,
18 h266 364
echo the presence of these files in your %exeproper% directory will
1 h266 365
echo cause NW+ to function incorrectly.
366
echo.
367
echo nwl1.mhk
368
echo nwl1demo.mhk
369
echo nwl2.mhk
370
echo nwl3.mhk
371
echo nwl4.mhk
372
echo nwl5.mhk
373
echo nwl6.mhk
374
echo nwl7.mhk
375
echo nwl8.mhk
376
echo _nwzoo.mhk
377
goto mhkfound_done
378
 
379
:artfound
380
echo.
381
echo Problematic .art files have been found in your directory.
382
echo Unless you have knowingly made a modification to NW's art,
18 h266 383
echo the presence of these files in your %exeproper% directory will
1 h266 384
echo cause NW+ to function incorrectly.
385
echo.
386
echo TILES005.ART
387
echo TILES006.ART
388
echo TILES007.ART
389
echo TILES008.ART
390
echo TILES009.ART
391
echo TILES012.ART
392
echo TILES013.ART
393
echo TILES014.ART
394
echo TILES015.ART
395
goto artfound_done
396
 
397
:confound
398
echo.
399
echo Problematic .con files have been found in your directory.
400
echo Unless you have knowingly made a modification to NW's programming,
18 h266 401
echo the presence of these files in your %exeproper% directory will
1 h266 402
echo cause NW+ to function incorrectly.
403
echo.
404
echo NWinter.con
405
echo NWEDuke.con
406
echo NWDefs.con
407
echo NWUser.con
408
echo NWDP.con
409
echo NWDPCode.con
410
echo NWDPXXX.con
411
echo NWActor.con
412
echo NWSnow.con
413
echo.
414
echo IF THESE ARE THE ORIGINAL NUCLEAR WINTER CON FILES, OR THEY COME FROM
18 h266 415
echo AN OUTDATED VERSION OF NW+, REMOVE THEM FROM YOUR %exeproper% DIRECTORY
416
echo IMMEDIATELY^!
1 h266 417
echo NW+ uses modified .con files to fix programming errors created by
418
echo the original programmers. Due to improvements made to the levels,
419
echo NW+ will have major errors if the included .con files are not used.
420
goto confound_done
421
 
18 h266 422
:execheck
423
if exist %exename%.bat goto execheck_done
43 h266 424
if exist %exename%.exe goto recheck
425
set prevdir=%cd%
426
if not "%cd%"=="%cd:~0,3%" cd ..
427
if not "%cd%"=="%prevdir%" goto execheck
18 h266 428
echo Warning: You don't have %exeproper% in your directory.
43 h266 429
chdir /d "%~dp0"
18 h266 430
goto execheck_done
1 h266 431
 
432
:nodir
433
echo.
434
echo Error: "nw_plus" data directory not found.
435
echo Aborting launch.
436
echo.
437
pause
438
goto end
439
 
440
:end
441
echo.
30 h266 442
popd
18 h266 443
@title %ComSpec%
1 h266 444
@color 07