Subversion Repositories nw_plus

Rev

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