Subversion Repositories nw_plus

Rev

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