Subversion Repositories vaca_plus

Rev

Rev 75 | Rev 77 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. @echo off
  2. color 0C
  3. setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
  4. pushd "%~dp0"
  5. set startdir=%cd%
  6.  
  7. :restart
  8. title Duke Caribbean: Life's A Beach Plus Launcher
  9. if "%editor%"=="1" title Duke Caribbean: Life's A Beach Plus Editor Launcher
  10.  
  11. set exedir=%startdir%
  12. set addondir=%startdir%
  13. set addonhrpdir=%startdir%
  14.  
  15. set exename=eduke32
  16. set exeproper=EDuke32
  17. set action=playing
  18.  
  19. if "%editor%"=="1" (
  20. set exename=mapster32
  21. set exeproper=Mapster32
  22. set action=editing
  23. )
  24.  
  25. set addonver=r004
  26.  
  27. :title
  28. echo                     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  29. echo                     º Duke Caribbean: Life's A Beach Plus º
  30. echo                     ÈÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍͼ
  31. echo                               ³ By Hendricks266 ³
  32. echo                               ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  33. echo.
  34. echo You are %action% Sunstorm Interactive's Duke Caribbean: Life's A Beach with the
  35. echo various enhancements of Duke Caribbean: Life's A Beach Plus, maintained by
  36. echo Hendricks266.
  37. echo.
  38.  
  39. if "%xxx%"=="1" echo Using XXX mode.
  40. if "%dp%"=="1" echo Using Duke Plus by DeeperThought.
  41. if "%debug%"=="1" echo Using debug mode.
  42.  
  43. if "%debug%"=="1" echo DEBUG: Command Line Input: %*
  44.  
  45. :recheck
  46. if not exist %exename%.exe goto execheck
  47. :execheck_done
  48. set exedir=%cd%
  49. if "%debug%"=="1" echo DEBUG: %exeproper% Directory: "%exedir%"
  50.  
  51. if not exist vaca_plus\ goto nodir
  52. if not exist duke3d.grp echo Warning: You don't have Duke3D.grp in your directory.
  53.  
  54. if exist vacation\ set addonhrpdir=%cd%
  55. :addondircheck
  56. if exist VACATION.PRG ren VACATION.PRG vacation.grp
  57. chdir vaca_plus
  58. set addondir=%cd%
  59. if exist vacation\ set addonhrpdir=%cd%
  60. if exist vaca_plus\ goto addondircheck
  61. if "%debug%"=="1" echo DEBUG: Vaca+ Directory: "%addondir%".
  62. if "%debug%"=="1" echo DEBUG: VacaHRP Directory: "%addonhrpdir%".
  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 kgroup=%addondir%\utils\windows\win32\kgroup.exe
  67. if "%debug%"=="1" set kgroup=%addondir%\utils\windows\win32\kgroup.debug.exe
  68. set unpackssi=%addondir%\utils\windows\win32\unpackssi.exe
  69. if "%debug%"=="1" set unpackssi=%addondir%\utils\windows\win32\unpackssi.debug.exe
  70. set bspatch=%addondir%\utils\windows\win32\bspatch.exe
  71. set sha1sum=%addondir%\utils\windows\win32\sha1sum.exe
  72.  
  73. if "%vacagrpname%"=="" set vacagrpname=vacation.grp
  74. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%exedir%\vaca15.grp" set vacagrpname=vaca15.grp
  75. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%addondir%\vaca15.grp" set vacagrpname=vaca15.grp
  76. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%exedir%\vacapp.grp" set vacagrpname=vacapp.grp
  77. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%addondir%\vacapp.grp" set vacagrpname=vacapp.grp
  78. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%exedir%\vaca13.grp" set vacagrpname=vaca13.grp
  79. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%addondir%\vaca13.grp" set vacagrpname=vaca13.grp
  80. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%exedir%\vacation13.grp" set vacagrpname=vacation13.grp
  81. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" if exist "%addondir%\vacation13.grp" set vacagrpname=vacation13.grp
  82. if not exist "%exedir%\%vacagrpname%" if not exist "%addondir%\%vacagrpname%" goto novacagrp
  83.  
  84. if exist vacation.grp ren vacation.grp vacation.grp
  85. call :grpchecksum
  86. :novacagrp_return
  87. if not "%version%"=="demo" (
  88. if not exist vaca1.map goto mapextract
  89. if not exist vaca2.map goto mapextract
  90. if not exist vaca3.map goto mapextract
  91. if not exist vaca4.map goto mapextract
  92. if not exist vaca5.map goto mapextract
  93. if not exist vaca6.map goto mapextract
  94. if not exist vaca7.map goto mapextract
  95. if not exist vacasl.map goto mapextract
  96. if not exist vacadm1.map goto mapextract
  97. if not exist vacadm2.map goto mapextract
  98. if not exist vacadm3.map goto mapextract
  99. if not exist vacadm4.map goto mapextract
  100. if not exist vacaflag_%addonver%.h266 goto updateextract
  101. )
  102. chdir /d "%exedir%"
  103. echo.
  104. echo.
  105. echo.
  106. echo.
  107. echo.
  108. echo.
  109. echo.
  110. echo.
  111. echo.
  112.  
  113. :init
  114. pause
  115. echo.
  116. goto check
  117.  
  118. :check
  119.  
  120. echo.
  121. echo Launching Duke Nukem 3D . . .
  122. echo Thanks for %action%!
  123. echo.
  124.  
  125. if "%editor%"=="1" (
  126. type "%exedir%\names.h" > "%exedir%\VacaNames.h"
  127. echo. >> "%exedir%\VacaNames.h"
  128. type "%addondir%\VacaNames.def" >> "%exedir%\VacaNames.h"
  129. )
  130.  
  131. :arguments
  132. set args=
  133. if exist "%exedir%\HRP\" set args=%args% -jHRP
  134. if exist "%exedir%\polymer_hrp\" set args=%args% -jpolymer_hrp
  135. if exist "%exedir%\duke3d_voxel.zip" set args=%args% -gduke3d_voxel.zip
  136. if exist "%exedir%\duke3d_hrp.zip" set args=%args% -gduke3d_hrp.zip
  137. if exist "%exedir%\hrp_update.zip" set args=%args% -ghrp_update.zip
  138. if exist "%exedir%\maphacks.zip" set args=%args% -gmaphacks.zip
  139. if exist "%exedir%\eduke32_mus.zip" set args=%args% -geduke32_mus.zip
  140. if exist "%addondir%" if not "%addondir%"=="%exedir%" set args=%args% -j"%addondir:\=/%"
  141. if exist "%addonhrpdir%" if not "%addonhrpdir%"=="%exedir%" if not "%addonhrpdir%"=="%addondir%" set args=%args% -j"%addonhrpdir:\=/%"
  142. set args=%args% -g%vacagrpname% -hvacation.def -xVacaEDuke.con
  143. if "%editor%"=="1" set args=%args% -namesfile VacaNames.h
  144. if "%dp%"=="1" set args=%args% -hvaca_dp.def -xVacaDP.con
  145. if "%xxx%"=="1" if exist "%exedir%\xxx_lite.zip" set args=%args% -gxxx_lite.zip
  146. if "%xxx%"=="1" if exist "%exedir%\xxx_lite\" set args=%args% -jxxx_lite
  147. if "%xxx%"=="1" if exist "%exedir%\xxx_pack.zip" set args=%args% -gxxx_pack.zip
  148. if "%xxx%"=="1" if exist "%exedir%\xxx_pack\" set args=%args% -jxxx_pack
  149. if "%xxx%"=="1" set args=%args% -hvaca_xxx.def
  150. if "%xxx%"=="1" if "%dp%"=="1" set args=%args% -hvaca_dp_xxx.def -xVacaDPXXX.con
  151. set args=%args% %*
  152. if "%dp%"=="1" set args=%args% -jDukePlus
  153.  
  154. set exe=%exename%
  155. if "%debug%"=="1" set exe=%exename%.debug
  156.  
  157. if exist %exe%.bat (
  158. if "%debug%"=="1" echo DEBUG: Final Command Line: call %exe%.bat %args%
  159. call %exe%.bat %args%
  160. ) else (
  161. if "%debug%"=="1" echo DEBUG: Final Command Line: start %exe%.exe %args%
  162. start %exe%.exe %args%
  163. )
  164.  
  165. set svnpath=0
  166. if "%svnpath%"=="0" if exist "%startdir%\svn\bin\svn.exe" set svnpath=%startdir%\svn\bin
  167. if "%svnpath%"=="0" if exist "%exedir%\svn\bin\svn.exe" set svnpath=%exedir%\svn\bin
  168. if "%svnpath%"=="0" if exist "%ProgramFiles%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles%\SlikSvn\bin
  169. if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\SlikSvn\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\SlikSvn\bin
  170. if "%svnpath%"=="0" if exist "%ProgramFiles%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles%\Subversion\bin
  171. if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\Subversion\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\Subversion\bin
  172. if "%svnpath%"=="0" if exist "%ProgramFiles%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles%\TortoiseSVN\bin
  173. if "%svnpath%"=="0" if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\svn.exe" set svnpath=%ProgramFiles(x86)%\TortoiseSVN\bin
  174. if "%svnpath%"=="0" for %%S in (svn.exe) do if exist "%%~dp$PATH:S" set svnpath=%%~dp$PATH:S
  175.  
  176. chdir /d "%addondir%"
  177. if not "%svnpath%"=="0" call :svn_action
  178. chdir /d "%addonhrpdir%"
  179. if not "%svnpath%"=="0" call :svn_action
  180.  
  181. goto end
  182.  
  183. :svn_action
  184. set PATH=%PATH%;%svnpath%
  185. for /f "delims=" %%a in ('svnversion.exe .') do @set oldrev=%%a
  186. if "%oldrev%"=="exported" goto :eof
  187. if "%oldrev%"=="Unversioned directory" goto :eof
  188. "svn.exe" update
  189. for /f "delims=" %%a in ('svnversion.exe .') do @set rev=%%a
  190. if %rev% EQU %oldrev% goto :eof
  191. set /a oldrev=%oldrev% + 1
  192. echo.
  193. "svn.exe" log -r %oldrev%:%rev%
  194. echo.
  195. pause
  196. goto :eof
  197.  
  198. :novacagrp
  199. set megaton=Steam\SteamApps\common\Duke Nukem 3D\gameroot\addons\vacation.grp
  200. if exist "%ProgramFiles%\%megaton%" copy "%ProgramFiles%\%megaton%" .\ && call :conprotect && goto novacagrp_done
  201. if exist "%ProgramFiles(x86)%\%megaton%" copy "%ProgramFiles(x86)%\%megaton%" .\ && call :conprotect && goto novacagrp_done
  202. echo.
  203. echo Error: You don't have VACATION.GRP in your directory.
  204. echo.
  205. goto ssicheck
  206. :retry
  207. echo.
  208. set cddrive=
  209. set /p cddrive=What is the drive letter that your Caribbean CD is in?
  210. echo.
  211. if not '%cddrive%'=='' set cddrive=%cddrive:~0,1%
  212. if '%cddrive%'=='' goto cdno
  213. if not exist %cddrive%:\ goto cdno
  214. if not exist %cddrive%:\* goto cdno
  215. if exist %cddrive%:\VACATION\VACA13.SSI copy %cddrive%:\VACATION\*.SSI .\ && goto ssicheck
  216. if exist %cddrive%:\VACATION\VACATION\VACA13.SSI copy %cddrive%:\VACATION\VACATION\*.SSI .\ && goto ssicheck
  217. if exist %cddrive%:\CARIBBEA\VACA13.SSI copy %cddrive%:\CARIBBEA\VACATION\*.SSI .\ && goto ssicheck
  218. if exist %cddrive%:\CARIBBEAN\VACA13.SSI copy %cddrive%:\CARIBBEAN\VACATION\*.SSI .\ && goto ssicheck
  219. goto cdwrong
  220.  
  221. :cdno
  222. echo '%cddrive%' is not valid.  Please try again.
  223. goto retry
  224.  
  225. :cdwrong
  226. echo '%cddrive%' is not the correct disc.  Please try again.
  227. goto retry
  228.  
  229. :ssicheck
  230. if exist VACA15.SSI goto ssi1
  231. if exist VACAPP.SSI goto ssi2
  232. if exist VACA13.SSI goto ssi3
  233. echo You don't have the SSI files in your directory.
  234. goto retry
  235.  
  236. :ssi1
  237. echo You do have the Caribbean SSI file in this directory, but it has not been
  238. echo extracted.  It will now be unpacked.
  239. echo.
  240. pause
  241. mkdir vaca15ssi
  242. chdir vaca15ssi
  243. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  244. "%unpackssi%" ..\VACA15.SSI
  245. if exist VACATION.PRG move /y VACATION.PRG ..\vacation.grp
  246. chdir ..
  247. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  248. if exist vacation.grp (
  249. rmdir /s /q vaca15ssi
  250. goto novacagrp_done
  251. )
  252. if not exist vacation.grp (
  253. echo Installation Error!
  254. echo Contact Hendricks266 for help.
  255. echo.
  256. pause
  257. goto end
  258. )
  259.  
  260. :ssi2
  261. echo You do have the Caribbean SSI file in this directory, but it has not been
  262. echo extracted.  It will now be unpacked.
  263. echo.
  264. pause
  265. mkdir vacappssi
  266. chdir vacappssi
  267. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  268. "%unpackssi%" ..\VACAPP.SSI
  269. if exist VACATION.PRG move /y VACATION.PRG ..\vacation.grp
  270. chdir ..
  271. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  272. if exist vacation.grp (
  273. rmdir /s /q vacappssi
  274. goto novacagrp_done
  275. )
  276. if not exist vacation.grp (
  277. echo Installation Error!
  278. echo Contact Hendricks266 for help.
  279. echo.
  280. pause
  281. goto end
  282. )
  283.  
  284. :ssi3
  285. echo You do have the Caribbean SSI file in this directory, but it has not been
  286. echo extracted.  It will now be unpacked.
  287. echo.
  288. pause
  289. mkdir vaca13ssi
  290. chdir vaca13ssi
  291. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  292. "%unpackssi%" ..\VACA13.SSI
  293. ren *.TRA *.ART
  294. ren *.PCS *.SCP
  295. ren VACA1.MAP vaca1.map
  296. ren VACA2.MAP vaca2.map
  297. ren VACA3.MAP vaca3.map
  298. ren VACA4.MAP vaca4.map
  299. ren VACA5.MAP vaca5.map
  300. ren VACA6.MAP vaca6.map
  301. ren VACA7.MAP vaca7.map
  302. ren VACASL.MAP vacasl.map
  303. ren VACADM1.MAP vacadm1.map
  304. ren VACADM2.MAP vacadm2.map
  305. ren VACADM3.MAP vacadm3.map
  306. ren VACADM4.MAP vacadm4.map
  307. ren *.NOC *.CON
  308. ren *.DIM *.MID
  309. ren *.MNA *.ANM
  310. ren *.COV *.VOC
  311. ren *.OMD *.DMO
  312. ren GAME.CON VACAGAME.CON
  313. ren USER.CON VACAUSER.CON
  314. ren DEFS.CON VACADEFS.CON
  315. ren DUKETEAM.ANM RADLOGO.ANM
  316. "%kgroup%" vacation.grp *.ART *.SCP *.map *.MID *.ANM *.VOC *.DMO CARIB.EXE
  317. if exist vacation.grp move /y vacation.grp ..\vacation.grp
  318. move /y *.map ..\
  319. chdir ..
  320. if "%debug%"=="1" echo DEBUG: Changing directory to "%cd%".
  321. if exist vacation.grp (
  322. rmdir /s /q vaca13ssi
  323. goto novacagrp_done
  324. )
  325. if not exist vacation.grp (
  326. echo Installation Error!
  327. echo Contact Hendricks266 for help.
  328. echo.
  329. pause
  330. goto end
  331. )
  332.  
  333. :novacagrp_done
  334. type DVINTRO.TXT
  335. echo.
  336. pause
  337. call :grpchecksum
  338. call :grpchecksum_results
  339. goto novacagrp_return
  340.  
  341. :grpchecksum
  342. if not exist "%sha1sum%" (
  343. echo "%sha1sum%" not found.
  344. goto :eof
  345. )
  346. pushd .
  347. if exist "%addondir%\%vacagrpname%" chdir /d %addondir%
  348. if exist "%exedir%\%vacagrpname%" chdir /d %exedir%
  349. echo ea0a9a77b9aee6edce76afa19eaea3a810fb2390 *%vacagrpname% | "%sha1sum%" --status --check -
  350. if "%ERRORLEVEL%"=="0" set version=full && popd && goto :eof
  351. if "%ERRORLEVEL%"=="1" echo 65b8b787616ed637f86cfcaa90de24c8e65b3dcc *%vacagrpname% | "%sha1sum%" --status --check -
  352. if "%ERRORLEVEL%"=="0" set version=megaton && call :conprotect && popd && goto :eof
  353. if "%ERRORLEVEL%"=="1" set version=unknown
  354. popd
  355. goto :eof
  356.  
  357. :grpchecksum_results
  358. if "%version%"=="full" echo VACATION.GRP checksum verified.
  359. if "%version%"=="megaton" echo VACATION.GRP (Megaton Edition) checksum verified.
  360. if "%version%"=="unknown" echo VACATION.GRP checksum does not match. You may have a bad copy.
  361. echo.
  362. goto :eof
  363.  
  364.  
  365. :mapextract
  366. echo Extracted maps not found or patched. Proceeding to installation.
  367. goto extract
  368.  
  369. :updateextract
  370. echo Map patch update required. Proceeding to installation.
  371. goto extract
  372.  
  373. :extract
  374. echo.
  375. echo                                ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  376. echo                                º Installation º
  377. echo                                ÈÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  378. echo.
  379. call :grpchecksum
  380. call :grpchecksum_results
  381. if not exist vaca1.patch goto nopatch
  382. if not exist vaca2.patch goto nopatch
  383. if not exist vaca3.patch goto nopatch
  384. if not exist vaca4.patch goto nopatch
  385. if not exist vaca5.patch goto nopatch
  386. if not exist vaca6.patch goto nopatch
  387. if not exist vaca7.patch goto nopatch
  388. if not exist vacasl.patch goto nopatch
  389. if not exist vacadm1.patch goto nopatch
  390. if not exist vacadm2.patch goto nopatch
  391. if not exist vacadm3.patch goto nopatch
  392. if not exist vacadm4.patch goto nopatch
  393. mkdir vaca_preserve
  394. if exist vaca*.map move /y vaca*.map vaca_preserve\
  395. if exist "%exedir%\vaca*.map" move /y "%exedir%\vaca*.map" vaca_preserve\
  396. :: TODO: eliminate the need for the if exist checks; tighten up path handling
  397. set grp=vacation.grp
  398. if exist "%addondir%\%vacagrpname%" set grp=%addondir%\%vacagrpname%
  399. if exist "%exedir%\%vacagrpname%" set grp=%exedir%\%vacagrpname%
  400. "%kextract%" "%grp%" VACA*.MAP
  401. ren VACA1.MAP vaca1.map
  402. ren VACA2.MAP vaca2.map
  403. ren VACA3.MAP vaca3.map
  404. ren VACA4.MAP vaca4.map
  405. ren VACA5.MAP vaca5.map
  406. ren VACA6.MAP vaca6.map
  407. ren VACA7.MAP vaca7.map
  408. ren VACASL.MAP vacasl.map
  409. ren VACADM1.MAP vacadm1.map
  410. ren VACADM2.MAP vacadm2.map
  411. ren VACADM3.MAP vacadm3.map
  412. ren VACADM4.MAP vacadm4.map
  413. if exist vacapatch*.h266 del /f /q vacapatch*.h266
  414. if exist vacaflag*.h266 del /f /q vacaflag*.h266
  415. echo.
  416. echo Map patching will now begin.
  417. echo.
  418. pause
  419. echo
  420. "%bspatch%" vaca1.map vaca1.map vaca1.patch
  421. "%bspatch%" vaca2.map vaca2.map vaca2.patch
  422. "%bspatch%" vaca3.map vaca3.map vaca3.patch
  423. "%bspatch%" vaca4.map vaca4.map vaca4.patch
  424. "%bspatch%" vaca5.map vaca5.map vaca5.patch
  425. "%bspatch%" vaca6.map vaca6.map vaca6.patch
  426. "%bspatch%" vaca7.map vaca7.map vaca7.patch
  427. "%bspatch%" vacasl.map vacasl.map vacasl.patch
  428. "%bspatch%" vacadm1.map vacadm1.map vacadm1.patch
  429. "%bspatch%" vacadm2.map vacadm2.map vacadm2.patch
  430. "%bspatch%" vacadm3.map vacadm3.map vacadm3.patch
  431. "%bspatch%" vacadm4.map vacadm4.map vacadm4.patch
  432. if exist vacapatch*.h266 del /f /q vacapatch*.h266
  433. if exist vacaflag*.h266 del /f /q vacaflag*.h266
  434. echo Do not delete this file! You will be forced to reinstall Vaca+ and repatch the maps. >vacaflag_%addonver%.h266
  435. attrib +r vacaflag_%addonver%.h266
  436. echo.
  437. echo Patching complete!
  438. :scanning
  439. chdir "%exedir%"
  440. echo.
  441. echo Scanning directory for potential problems.
  442. if exist vaca1.mhk goto mhkfound
  443. if exist vaca2.mhk goto mhkfound
  444. if exist vaca3.mhk goto mhkfound
  445. if exist vaca4.mhk goto mhkfound
  446. if exist vaca5.mhk goto mhkfound
  447. if exist vaca6.mhk goto mhkfound
  448. if exist vaca7.mhk goto mhkfound
  449. if exist vacasl.mhk goto mhkfound
  450. if exist vacadm1.mhk goto mhkfound
  451. if exist vacadm2.mhk goto mhkfound
  452. if exist vacadm3.mhk goto mhkfound
  453. if exist vacadm4.mhk goto mhkfound
  454. if exist dcava0r.mhk goto mhkfound
  455. if exist dcava1.mhk goto mhkfound
  456. if exist _vacazoo.mhk goto mhkfound
  457. :mhkfound_done
  458. if exist TILES000.ART goto artfound
  459. if exist TILES003.ART goto artfound
  460. if exist TILES005.ART goto artfound
  461. if exist TILES006.ART goto artfound
  462. if exist TILES007.ART goto artfound
  463. if exist TILES008.ART goto artfound
  464. if exist TILES009.ART goto artfound
  465. if exist TILES010.ART goto artfound
  466. if exist TILES012.ART goto artfound
  467. if exist TILES014.ART goto artfound
  468. :artfound_done
  469. call :checksum 3d5092d053b23a823c1fa0ad0b0bdbc33b2a09bb DEFS.CON "VACA15 file detected and neutralized:"
  470. call :checksum 807aaf21edd6e315bcb76dd54450f28616f84609 GAME.CON "VACA15 file detected and neutralized:"
  471. call :checksum 6d29c3b19d26ff84edb104e68120edc5150066dd USER.CON "VACA15 file detected and neutralized:"
  472. call :checksum 856374f3b42a1f2e355730ffc70497a3e6a49585 BEACHBAB.CON "VACA15 file detected and neutralized:"
  473. call :checksum efb8168c6351d4b5e2c108ebc8189d4aba85ef35 BEACHBAL.CON "VACA15 file detected and neutralized:"
  474. call :checksum a947947409a76ea7e6c46076a8cfbaa76f8b0172 BEACHBTH.CON "VACA15 file detected and neutralized:"
  475. call :checksum 3c11b9d40a204849c2d7d6c10984397f3b6a444c DRAGON.CON "VACA15 file detected and neutralized:"
  476. call :checksum 1417476e2cd8a3aef85dd9c1f36308f2123d8b54 SEAGULL.CON "VACA15 file detected and neutralized:"
  477. call :checksum 0c1314dcd983b232f6afb941942e1ccbd7331ebb SOUNDS.CON "VACA15 file detected and neutralized:"
  478. call :checksum 032a25b2cd98e19a5ff9a859ac27c91a4abfcb46 USER.CON "VACAPP file detected and neutralized:"
  479. call :checksum 34ed9d27095d547e20fb9db87957d17ca9cb2046 DEFS.CON "VACA13 file detected and neutralized:"
  480. call :checksum 3480ad8caca150b7c4678a42a606c0d9941db631 GAME.CON "VACA13 file detected and neutralized:"
  481. call :checksum 74feb12ecfa57cb4c8e151593bff89e06b1ae11e USER.CON "VACA13 file detected and neutralized:"
  482. call :checksum 840d701ca5e1e590ff03510eb5d63880f3e5be79 BEACHBAB.CON "VACA13 file detected and neutralized:"
  483. call :checksum f4c7080384dde2f298e807b1bc9901e6e61ac617 BEACHBAL.CON "VACA13 file detected and neutralized:"
  484. call :checksum 9965ae6e6b4337d06e1df22b41592b4cdfb69b2f BEACHBTH.CON "VACA13 file detected and neutralized:"
  485. call :checksum d56a1ff075671d0919540086a062b37290113621 DRAGON.CON "VACA13 file detected and neutralized:"
  486. call :checksum 06be81473bad004296324b2d63f4730ac2160aa6 SEAGULL.CON "VACA13 file detected and neutralized:"
  487. call :checksum ef149cd90764bae685d9fab83eb2fe719486dce3 SOUNDS.CON "VACA13 file detected and neutralized:"
  488. if exist Vacation.con goto confound
  489. if exist VacaEDuke.con goto confound
  490. if exist VacaDefs.con goto confound
  491. if exist VacaUser.con goto confound
  492. if exist VacaDP.con goto confound
  493. if exist VacaDPCode.con goto confound
  494. if exist VacaDPXXX.con goto confound
  495. if exist VSounds.con goto confound
  496. if exist VBeachBabe.con goto confound
  497. if exist VBeachBall.con goto confound
  498. if exist VBeachBather.con goto confound
  499. if exist VDragon.con goto confound
  500. if exist VSeagull.con goto confound
  501. :confound_done
  502. call :conprotect
  503. chdir /d "%addondir%"
  504. echo.
  505. pause
  506. goto restart
  507.  
  508. :conprotect
  509. pushd "%exedir%"
  510. if not exist GAME.CON "%kextract%" DUKE3D.GRP GAME.CON
  511. if not exist DEFS.CON "%kextract%" DUKE3D.GRP DEFS.CON
  512. if not exist USER.CON "%kextract%" DUKE3D.GRP USER.CON
  513. popd
  514. goto :eof
  515.  
  516. :checksum
  517. if not exist "%sha1sum%" (
  518. echo "%sha1sum%" not found.
  519. goto :eof
  520. )
  521. if not exist "%~2" goto :eof
  522. echo %~1 *%~2 | "%sha1sum%" --status --check -
  523. if "%ERRORLEVEL%"=="0" (
  524. ren "%~2" "VacaOld_%addonver%_%~nx2"
  525. echo %~3 %~nx2
  526. )
  527. goto :eof
  528.  
  529. :nopatch
  530. echo.
  531. echo Error: You don't have all the *.patch files in your directory.
  532. echo Aborting installation.
  533. echo Map patching is required for Vaca+ to function correctly.
  534. echo.
  535. pause
  536. goto end
  537.  
  538. :mhkfound
  539. echo.
  540. echo Problematic .mhk files have been found in your directory.
  541. echo Unless you have knowingly made a modification to Vaca's map hacks,
  542. echo the presence of these files in your %exeproper% directory will
  543. echo cause Vaca+ to function incorrectly.
  544. echo.
  545. echo vaca1.mhk
  546. echo vaca2.mhk
  547. echo vaca3.mhk
  548. echo vaca4.mhk
  549. echo vaca5.mhk
  550. echo vaca6.mhk
  551. echo vaca7.mhk
  552. echo vacasl.mhk
  553. echo vacadm1.mhk
  554. echo vacadm2.mhk
  555. echo vacadm3.mhk
  556. echo vacadm4.mhk
  557. echo dcava0r.mhk
  558. echo dcava1.mhk
  559. echo _vacazoo.mhk
  560. goto mhkfound_done
  561.  
  562. :artfound
  563. echo.
  564. echo Problematic .art files have been found in your directory.
  565. echo Unless you have knowingly made a modification to Vaca's art,
  566. echo the presence of these files in your %exeproper% directory will
  567. echo cause Vaca+ to function incorrectly.
  568. echo.
  569. echo TILES000.ART
  570. echo TILES003.ART
  571. echo TILES005.ART
  572. echo TILES006.ART
  573. echo TILES007.ART
  574. echo TILES008.ART
  575. echo TILES009.ART
  576. echo TILES010.ART
  577. echo TILES012.ART
  578. echo TILES014.ART
  579. goto artfound_done
  580.  
  581. :confound
  582. echo.
  583. echo Problematic .con files have been found in your directory.
  584. echo Unless you have knowingly made a modification to Vaca's programming,
  585. echo the presence of these files in your %exeproper% directory will
  586. echo cause Vaca+ to function incorrectly.
  587. echo.
  588. echo Vacation.con
  589. echo VacaEDuke.con
  590. echo VacaDefs.con
  591. echo VacaUser.con
  592. echo VacaDP.con
  593. echo VacaDPCode.con
  594. echo VacaDPXXX.con
  595. echo VSounds.con
  596. echo VBeachBabe.con
  597. echo VBeachBall.con
  598. echo VBeachBather.con
  599. echo VDragon.con
  600. echo VSeagull.con
  601. echo.
  602. echo IF THESE ARE THE ORIGINAL CARIBBEAN CON FILES, OR THEY COME FROM
  603. echo AN OUTDATED VERSION OF VACA+, REMOVE THEM FROM YOUR %exeproper% DIRECTORY
  604. echo IMMEDIATELY!
  605. echo Vaca+ uses modified .con files to fix programming errors created by
  606. echo the original programmers. Due to improvements made to the levels,
  607. echo Vaca+ will have major errors if the included .con files are not used.
  608. goto confound_done
  609.  
  610. :execheck
  611. if exist %exename%.bat goto execheck_done
  612. if exist %exename%.exe goto recheck
  613. set prevdir=%cd%
  614. if not "%cd%"=="%cd:~0,3%" chdir ..
  615. if not "%cd%"=="%prevdir%" goto execheck
  616. echo Warning: You don't have %exeproper% in your directory.
  617. chdir /d "%startdir%"
  618. goto execheck_done
  619.  
  620. :nodir
  621. echo.
  622. echo Error: "vaca_plus" data directory not found.
  623. echo Aborting launch.
  624. echo.
  625. pause
  626. goto end
  627.  
  628. :end
  629. if "%debug%"=="1" echo.
  630. if "%debug%"=="1" pause
  631. echo.
  632. popd
  633. endlocal
  634. title %ComSpec%
  635. color 07
  636.