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