Subversion Repositories nw_plus

Rev

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