Rev 51 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 33 | h266 | 1 | @echo off |
| 2 | color 0C |
||
| 3 | setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION |
||
| 4 | pushd "%~dp0" |
||
| 5 | set startdir=%cd% |
||
| 6 | |||
| 7 | :restart |
||
| 8 | title Duke It Out In D.C. Launcher |
||
| 9 | if "%editor%"=="1" title Duke It Out In D.C. Editor Launcher |
||
| 10 | |||
| 11 | set exedir=%startdir% |
||
| 12 | |||
| 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 | |||
| 23 | :title |
||
| 24 | echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» |
||
| 25 | echo º Duke It Out In D.C. º |
||
| 26 | echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ |
||
| 27 | echo. |
||
| 28 | echo. |
||
| 29 | echo. |
||
| 30 | echo You are %action% Sunstorm Interactive's Duke It Out In D.C. |
||
| 31 | echo. |
||
| 32 | |||
| 33 | if "%xxx%"=="1" echo Using XXX mode. |
||
| 34 | if "%dp%"=="1" echo Using Duke Plus by DeeperThought. |
||
| 35 | if "%debug%"=="1" echo Using debug mode. |
||
| 36 | |||
| 37 | if "%debug%"=="1" echo DEBUG: Command Line Input: %* |
||
| 38 | |||
| 39 | :recheck |
||
| 40 | if not exist %exename%.exe goto execheck |
||
| 41 | :execheck_done |
||
| 42 | set exedir=%cd% |
||
| 43 | if "%debug%"=="1" echo DEBUG: %exeproper% Directory: "%exedir%" |
||
| 44 | |||
| 45 | :: if not exist dc_hrp\ goto nodir |
||
| 46 | if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory. |
||
| 47 | |||
| 48 | set sha1sum=%startdir%\utils\windows\win32\sha1sum.exe |
||
| 49 | set kextract=%startdir%\utils\windows\win32\kextract.exe |
||
| 50 | if "%debug%"=="1" set kextract=%startdir%\utils\windows\win32\kextract.debug.exe |
||
| 51 | |||
| 52 | if exist dukedc.grp ren dukedc.grp dukedc.grp |
||
| 53 | if "%dcgrpname%"=="" set dcgrpname=dukedc.grp |
||
| 54 | if exist "%dcgrpname%" goto dcgrp_found |
||
| 55 | if not exist dukedc.grp if exist DUKEDCPP.GRP ren DUKEDCPP.GRP dukedc.grp |
||
| 56 | if not exist dukedc.grp if exist DUKEDC13.GRP ren DUKEDC13.GRP dukedc.grp |
||
| 57 | if not exist dukedc.grp if exist DC.GRP ren DC.GRP dukedc.grp |
||
| 58 | if not exist dukedc.grp goto nodcgrp |
||
| 59 | |||
| 60 | :dcgrp_found |
||
| 61 | call :grpchecksum |
||
| 62 | |||
| 63 | :nodcgrp_return |
||
| 64 | chdir /d "%exedir%" |
||
| 65 | echo. |
||
| 66 | echo. |
||
| 67 | echo. |
||
| 68 | echo. |
||
| 69 | echo. |
||
| 70 | echo. |
||
| 71 | echo. |
||
| 72 | echo. |
||
| 73 | echo. |
||
| 74 | echo. |
||
| 75 | echo. |
||
| 76 | |||
| 77 | |||
| 78 | :init |
||
| 79 | pause |
||
| 80 | echo. |
||
| 81 | goto check |
||
| 82 | |||
| 83 | :check |
||
| 84 | |||
| 85 | echo. |
||
| 86 | echo Launching Duke Nukem 3D . . . |
||
| 87 | echo Thanks for %action%! |
||
| 88 | echo. |
||
| 89 | |||
| 90 | if exist duke3d.def ren duke3d.def duke3d_dcbak.def |
||
| 91 | |||
| 92 | if exist duke3d_dcbak.def echo duke3d.def has been renamed to duke3d_dcbak.def to allow the add-on to operate. |
||
| 93 | |||
| 94 | :arguments |
||
| 95 | set args= |
||
| 51 | h266 | 96 | if exist "%exedir%\HRP\" set args=%args% -j HRP |
| 97 | if exist "%exedir%\polymer_hrp\" set args=%args% -j polymer_hrp |
||
| 98 | if exist "%exedir%\duke3d_voxel.zip" set args=%args% -g duke3d_voxel.zip |
||
| 99 | if exist "%exedir%\duke3d_hrp.zip" set args=%args% -g duke3d_hrp.zip |
||
| 100 | if exist "%exedir%\hrp_update.zip" set args=%args% -g hrp_update.zip |
||
| 101 | if exist "%exedir%\maphacks.zip" set args=%args% -g maphacks.zip |
||
| 102 | if exist "%exedir%\eduke32_mus.zip" set args=%args% -g eduke32_mus.zip |
||
| 103 | set args=%args% -g dukedc.grp -mx dc_user.con |
||
| 104 | if exist "%exedir%\dc.def" set args=%args% -h dc.def |
||
| 105 | if exist "%exedir%\dukedc.def" set args=%args% -h dukedc.def |
||
| 106 | if exist "%exedir%\dukedc_hrp.zip" set args=%args% -g dukedc_hrp.zip |
||
| 107 | if exist "%exedir%\dc_hrp\" set args=%args% -j dc_hrp |
||
| 108 | if "%xxx%"=="1" if exist "%exedir%\xxx_lite.zip" set args=%args% -g xxx_lite.zip |
||
| 109 | if "%xxx%"=="1" if exist "%exedir%\xxx_lite\" set args=%args% -j xxx_lite |
||
| 110 | if "%xxx%"=="1" if exist "%exedir%\xxx_pack.zip" set args=%args% -g xxx_pack.zip |
||
| 111 | if "%xxx%"=="1" if exist "%exedir%\xxx_pack\" set args=%args% -j xxx_pack |
||
| 33 | h266 | 112 | set args=%args% %* |
| 51 | h266 | 113 | if "%dp%"=="1" set args=%args% -j DukePlus |
| 33 | h266 | 114 | |
| 115 | set exe=%exename% |
||
| 116 | if "%debug%"=="1" set exe=%exename%.debug |
||
| 117 | |||
| 118 | if exist %exe%.bat ( |
||
| 119 | if "%debug%"=="1" echo DEBUG: Final Command Line: call %exe%.bat %args% |
||
| 120 | call %exe%.bat %args% |
||
| 121 | ) else ( |
||
| 122 | if "%debug%"=="1" echo DEBUG: Final Command Line: start %exe%.exe %args% |
||
| 123 | start %exe%.exe %args% |
||
| 124 | ) |
||
| 125 | |||
| 126 | set svnpath=0 |
||
| 127 | if "%svnpath%"=="0" if exist "%startdir%\svn\bin\svn.exe" set svnpath=%startdir%\svn\bin |
||
| 128 | if "%svnpath%"=="0" if exist "%exedir%\svn\bin\svn.exe" set svnpath=%exedir%\svn\bin |
||
| 129 | if "%svnpath%"=="0" if exist "%ProgramFiles%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles%\SlikSvn\bin |
||
| 130 | if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\SlikSvn\bin |
||
| 131 | if "%svnpath%"=="0" if exist "%ProgramFiles%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles%\Subversion\bin |
||
| 132 | if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\Subversion\bin |
||
| 133 | if "%svnpath%"=="0" if exist "%ProgramFiles%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles%\TortoiseSVN\bin |
||
| 134 | if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\TortoiseSVN\bin |
||
| 135 | if "%svnpath%"=="0" for %%S in (svn.exe) do if exist "%%~dp$PATH:S" set svnpath=%%~dp$PATH:S |
||
| 136 | |||
| 137 | if exist "%exedir%\dc_hrp\" ( |
||
| 138 | chdir /d "%exedir%\dc_hrp\" |
||
| 139 | if not "%svnpath%"=="0" call :svn_action |
||
| 140 | ) |
||
| 141 | |||
| 142 | goto end |
||
| 143 | |||
| 144 | :svn_action |
||
| 145 | set PATH=%PATH%;%svnpath% |
||
| 146 | for /f "delims=" %%a in ('svnversion.exe .') do @set oldrev=%%a |
||
| 147 | if "%oldrev%"=="exported" goto :eof |
||
| 148 | if "%oldrev%"=="Unversioned directory" goto :eof |
||
| 149 | "svn.exe" update |
||
| 150 | for /f "delims=" %%a in ('svnversion.exe .') do @set rev=%%a |
||
| 34 | h266 | 151 | set oldrev=%oldrev:M=% |
| 152 | set oldrev=%oldrev:S=% |
||
| 153 | set oldrev=%oldrev:P=% |
||
| 154 | set rev=%rev:M=% |
||
| 155 | set rev=%rev:S=% |
||
| 156 | set rev=%rev:P=% |
||
| 33 | h266 | 157 | if %rev% EQU %oldrev% goto :eof |
| 158 | set /a oldrev=%oldrev% + 1 |
||
| 159 | echo. |
||
| 160 | "svn.exe" log -r %oldrev%:%rev% |
||
| 161 | echo. |
||
| 162 | pause |
||
| 163 | goto :eof |
||
| 164 | |||
| 165 | :nodcgrp |
||
| 166 | set megaton=Steam\SteamApps\common\Duke Nukem 3D\gameroot\addons\dukedc.grp |
||
| 167 | if exist "%ProgramFiles%\%megaton%" copy "%ProgramFiles%\%megaton%" .\ && call :conprotect && goto nodcgrp_done |
||
| 168 | if exist "%ProgramFiles(x86)%\%megaton%" copy "%ProgramFiles(x86)%\%megaton%" .\ && call :conprotect && goto nodcgrp_done |
||
| 169 | title Duke It Out In D.C. for EDuke32 Installer |
||
| 170 | color 0C |
||
| 171 | |||
| 172 | echo. |
||
| 173 | echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» |
||
| 174 | echo º Duke It Out In D.C. for EDuke32 Installer º |
||
| 175 | echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍͼ |
||
| 176 | echo ³ By Hendricks266 ³ |
||
| 177 | echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
||
| 178 | echo. |
||
| 179 | echo This batch file extracts the contents of DUKEDCPP.SSI or DUKEDC13.SSI and makes |
||
| 180 | echo it into a group file, DUKEDC.GRP. |
||
| 181 | echo. |
||
| 182 | |||
| 183 | set kgroup=%startdir%\utils\windows\win32\kgroup.exe |
||
| 184 | if "%debug%"=="1" set kgroup=%startdir%\utils\windows\win32\kgroup.debug.exe |
||
| 185 | set unpackssi=%startdir%\utils\windows\win32\unpackssi.exe |
||
| 186 | if "%debug%"=="1" set unpackssi=%startdir%\utils\windows\win32\unpackssi.debug.exe |
||
| 187 | |||
| 188 | pause |
||
| 189 | :nodcgrp_top |
||
| 190 | echo. |
||
| 191 | if not exist DUKEDCPP.SSI goto check13 |
||
| 192 | echo Proceeding with DUKEDCPP.SSI extraction. |
||
| 193 | mkdir dukedcpp |
||
| 194 | chdir dukedcpp |
||
| 195 | "%unpackssi%" ..\DUKEDCPP.SSI |
||
| 196 | if exist DUKETEAM.ANM ren DUKETEAM.ANM RADLOGO.ANM |
||
| 197 | if exist USER.CON ren USER.CON USER.BAK |
||
| 198 | "%kgroup%" dukedc.grp *.* |
||
| 199 | if exist dukedc.grp move dukedc.grp ..\dukedc.grp |
||
| 200 | echo DUKEDC.GRP has been added to your directory. |
||
| 201 | if not exist ..\DUKEDC*.MAP move *.MAP ..\ |
||
| 202 | chdir .. |
||
| 203 | rmdir /s /q dukedcpp |
||
| 204 | echo. |
||
| 205 | echo. |
||
| 206 | if not exist DUKEDC13.SSI goto nodcgrp_done |
||
| 207 | |||
| 208 | :check13 |
||
| 209 | if not exist DUKEDC13.SSI goto error |
||
| 210 | echo Proceeding with DUKEDC13.SSI extraction. |
||
| 211 | mkdir dukedc13 |
||
| 212 | chdir dukedc13 |
||
| 213 | "%unpackssi%" ..\DUKEDC13.SSI |
||
| 214 | if exist DUKETEAM.ANM ren DUKETEAM.ANM RADLOGO.ANM |
||
| 215 | if exist USER.CON ren USER.CON USER.BAK |
||
| 216 | "%kgroup%" dukedc.grp *.* |
||
| 217 | if exist ..\dukedc.grp ( |
||
| 218 | if exist dukedc.grp ( |
||
| 219 | move dukedc.grp ..\dukedc13.grp |
||
| 220 | echo DUKEDC13.GRP has been added to your directory. |
||
| 221 | ) ) else ( |
||
| 222 | if exist dukedc.grp ( |
||
| 223 | move dukedc.grp ..\dukedc.grp |
||
| 224 | echo DUKEDC.GRP has been added to your directory. |
||
| 225 | ) ) |
||
| 226 | if not exist ..\DUKEDC*.MAP move *.MAP ..\ |
||
| 227 | chdir .. |
||
| 228 | rmdir /s /q dukedc13 |
||
| 229 | echo. |
||
| 230 | echo. |
||
| 231 | goto nodcgrp_done |
||
| 232 | |||
| 233 | :nodcgrp_done |
||
| 234 | if exist dukedc.grp ( |
||
| 235 | type DCINTRO.TXT |
||
| 236 | echo. |
||
| 237 | echo. |
||
| 238 | echo. |
||
| 239 | echo Duke It Out In D.C. installed! |
||
| 240 | echo. |
||
| 241 | pause |
||
| 242 | call :grpchecksum |
||
| 243 | call :grpchecksum_results |
||
| 244 | goto nodcgrp_return |
||
| 245 | ) |
||
| 246 | if not exist dukedc.grp ( |
||
| 247 | echo Installation Error! |
||
| 248 | echo Contact Hendricks266 for help. |
||
| 249 | echo. |
||
| 250 | pause |
||
| 251 | goto end |
||
| 252 | ) |
||
| 253 | |||
| 254 | :conprotect |
||
| 255 | pushd "%exedir%" |
||
| 256 | if not exist GAME.CON "%kextract%" DUKE3D.GRP GAME.CON |
||
| 257 | if not exist DEFS.CON "%kextract%" DUKE3D.GRP DEFS.CON |
||
| 258 | if not exist USER.CON "%kextract%" DUKE3D.GRP USER.CON |
||
| 259 | popd |
||
| 260 | goto :eof |
||
| 261 | |||
| 262 | :grpchecksum |
||
| 263 | if not exist "%sha1sum%" ( |
||
| 264 | echo "%sha1sum%" not found. |
||
| 265 | goto :eof |
||
| 266 | ) |
||
| 267 | pushd . |
||
| 268 | if exist "%startdir%\%dcgrpname%" chdir /d %startdir% |
||
| 269 | if exist "%exedir%\%dcgrpname%" chdir /d %exedir% |
||
| 270 | echo 1b66c3ad9a65556044946dd1ca97a839fcfedc3b *%dcgrpname% | "%sha1sum%" --status --check - |
||
| 271 | if "%ERRORLEVEL%"=="0" set version=megaton && call :conprotect && popd && goto :eof |
||
| 272 | if "%ERRORLEVEL%"=="1" set version=unknown |
||
| 273 | popd |
||
| 274 | goto :eof |
||
| 275 | |||
| 276 | :grpchecksum_results |
||
| 277 | if "%version%"=="megaton" echo DUKEDC.GRP (Megaton Edition) checksum verified. |
||
| 278 | :: if "%version%"=="unknown" echo DUKEDC.GRP checksum does not match any known copies because one was never distributed until the Megaton Edition. |
||
| 279 | echo. |
||
| 280 | goto :eof |
||
| 281 | |||
| 282 | :error |
||
| 283 | echo. |
||
| 284 | echo You do not have DUKEDCPP.SSI or DUKEDC13.SSI in this directory. |
||
| 285 | :retry |
||
| 286 | echo. |
||
| 287 | set cddrive= |
||
| 288 | set /p cddrive=What is the drive letter that your Duke D.C. CD is in? |
||
| 289 | echo. |
||
| 290 | if not '%cddrive%'=='' set cddrive=%cddrive:~0,1% |
||
| 291 | if '%cddrive%'=='' goto cdno |
||
| 292 | if not exist %cddrive%:\ goto cdno |
||
| 293 | if not exist %cddrive%:\* goto cdno |
||
| 294 | if exist %cddrive%:\DUKEDC\DUKEDCPP.SSI copy %cddrive%:\DUKEDC\*.SSI .\ && goto nodcgrp_top |
||
| 295 | if exist %cddrive%:\DUKEDC\DUKEDC\DUKEDCPP.SSI copy %cddrive%:\DUKEDC\DUKEDC\*.SSI .\ && goto nodcgrp_top |
||
| 59 | h266 | 296 | if exist %cddrive%:\DUKE_DC\DUKEDC\DUKEDCPP.SSI copy %cddrive%:\DUKE_DC\DUKEDC\*.SSI .\ && goto nodcgrp_top |
| 33 | h266 | 297 | if exist %cddrive%:\DC\DUKEDC\DUKEDCPP.SSI copy %cddrive%:\DC\DUKEDC\*.SSI .\ && goto nodcgrp_top |
| 298 | goto cdwrong |
||
| 299 | |||
| 300 | :cdno |
||
| 301 | echo '%cddrive%' is not valid. Please try again. |
||
| 302 | goto retry |
||
| 303 | |||
| 304 | :cdwrong |
||
| 305 | echo '%cddrive%' is not the correct disc. Please try again. |
||
| 306 | goto retry |
||
| 307 | |||
| 308 | :execheck |
||
| 309 | if exist %exename%.bat goto execheck_done |
||
| 310 | if exist %exename%.exe goto recheck |
||
| 311 | set prevdir=%cd% |
||
| 312 | if not "%cd%"=="%cd:~0,3%" chdir .. |
||
| 313 | if not "%cd%"=="%prevdir%" goto execheck |
||
| 314 | echo Warning: You don't have %exeproper% in your directory. |
||
| 315 | chdir /d "%startdir%" |
||
| 316 | goto execheck_done |
||
| 317 | |||
| 318 | :end |
||
| 319 | if "%debug%"=="1" echo. |
||
| 320 | if "%debug%"=="1" pause |
||
| 321 | echo. |
||
| 322 | popd |
||
| 323 | endlocal |
||
| 324 | title %ComSpec% |
||
| 325 | color 07 |