@echo off
setlocal EnableDelayedExpansion
chcp 1251 > nul
pushd "%~dp0"
if not exist "v1.9" md "v1.9"
if not exist "final" md "final"
if not exist "ultimate" md "ultimate"
set numwads=31
set  n[1]=PC BFG Edition: Ultimate DOOM
set  n[2]=PC BFG Edition: Doom II
set  n[3]=DOOM Eternal / PSN: Ultimate Doom
set  n[4]=DOOM Eternal: Doom II
set  n[5]=Ultimate DOOM —^> DOOM 1.9
set  n[6]=Master Levels (multi WADs —^> PSN version)
set  n[7]=PSN: Doom II
set  n[8]=PSN: Plutonia
set  n[9]=PSN: TNT Evilution
set n[10]=Tapwave Zodiac: Doom II
set n[11]=Unity 1.3: Ultimate Doom
set n[12]=Unity 1.3: Doom II
set n[13]=Xbox: Ultimate Doom
set n[14]=Xbox: Doom II
set n[15]=Xbox360 BFG Edition: Ultimate Doom
set n[16]=Xbox360 BFG Edition: Doom II
set n[17]=XBLA: Ultimate Doom
set n[18]=XBLA: Doom II
set n[19]=Unity 1.1: Ultimate Doom
set n[20]=Unity 1.1: Doom II
set n[21]=PocketPC: Ultimate Doom
set n[22]=GOG: Plutonia
set n[23]=GOG: TNT Evilution
set n[24]=Unity 1.3: Plutonia
set n[25]=Unity 1.3: TNT Evilution
set n[26]=Unity 1.1: Plutonia
set n[27]=Unity 1.1: TNT Evilution
set n[28]=KEX Engine: Ultimate Doom
set n[29]=KEX Engine: Doom II
set n[30]=KEX Engine: Plutonia
set n[31]=KEX Engine: TNT Evilution
if "%~1" neq "" goto auto
echo Какой WAD файл конвертировать?
echo.
for /L %%i in (1,1,9) do (echo    %%i - !n[%%i]!)
for /L %%i in (10,1,%numwads%) do (echo   %%i - !n[%%i]!)
echo.
set /P choice=Выберите действие: 

for /L %%i in (1,1,%numwads%) do (if "!choice!"=="%%i" goto c%%i)
goto ending

:auto
set "source=%~1"
for %%i in ("%source%") do set "source=%%~nxi"
for /f "tokens=1" %%a in ('md5sum %source%') do set hash=%%a
if "%hash%"=="fb35c4a5a9fd49ec29ab6e900572c524" set match=1
if "%hash%"=="c3bea40570c23e511a7ed3ebcd9865f7" set match=2
if "%hash%"=="e4f120eab6fb410a5b6e11c947832357" set match=3
if "%hash%"=="97573aaf26957099ed45e61d81a0a1a3" set match=4
if "%hash%"=="c4fe9fd920207691a9f493668e0a2083" set match=5
if "%hash%"=="cb03fd0cd84b10579c2b2b313199d4c1" set match=6
if "%hash%"=="a421ca18cea00a2696162f8d2a2beeca" set match=6
if "%hash%"=="18eb4ffb3094ddb690e62211dc6169a1" set match=6
if "%hash%"=="33493942592d764e7787fb0ad7d03044" set match=6
if "%hash%"=="e7c273033376824edf95e1328261e7de" set match=6
if "%hash%"=="77c179948df47a7a613bd1181c959892" set match=6
if "%hash%"=="cbf714b499ebdef2682990eaf93fdb5f" set match=6
if "%hash%"=="f000701a3ed1f49249ee08550c03dfa5" set match=6
if "%hash%"=="a1efff02df6d873762ebac6b12358bbc" set match=6
if "%hash%"=="787fa80fe9665c322f853b74838e77cc" set match=6
if "%hash%"=="b4eaf844b135cc2a0058c6e0149b4408" set match=6
if "%hash%"=="aea597159dee96bcc58f3f9e3e586182" set match=6
if "%hash%"=="46f58580e7792f486c747cf1117c4ca1" set match=6
if "%hash%"=="d560abb6d5719d46ebb47b27d7813a4b" set match=6
if "%hash%"=="b572d518d564c7d7b6b259a726538cbb" set match=6
if "%hash%"=="bb417f07804373415a6ed8e533242c3c" set match=6
if "%hash%"=="65b4abcb74e7a386d5c024cf250d6336" set match=6
if "%hash%"=="8474f6d663f04630de05ecac36b574d1" set match=6
if "%hash%"=="a49dccebb5f32307246b7f32da121cf7" set match=6
if "%hash%"=="3c0874f2df3c06a002ee2a18aba0f0e8" set match=6
if "%hash%"=="4c3db5f23b145fccd24c9b84aba3b7dd" set match=7
if "%hash%"=="b77ca6a809c4fae086162dad8e7a1335" set match=8
if "%hash%"=="be626c12b7c9d94b1dfb9c327566b4ff" set match=9
if "%hash%"=="9640fc4b2c8447bbd28f2080725d5c51" set match=10
if "%hash%"=="8517c4e8f0eef90b82852667d345eb86" set match=11
if "%hash%"=="8ab6d0527a29efdc1ef200e5687b5cae" set match=12
if "%hash%"=="0c8758f102ccafe26a3040bee8ba5021" set match=13
if "%hash%"=="a793ebcdd790afad4a1f39cc39a893bd" set match=14
if "%hash%"=="7912931e44c7d56e021084a256659800" set match=15
if "%hash%"=="f617591a6c5d07037eb716dc4863e26b" set match=16
if "%hash%"=="72286ddc680d47b9138053dd944b2a3d" set match=17
if "%hash%"=="43c2df32dc6c740cb11f34dc5ab693fa" set match=18
if "%hash%"=="21b200688d0fa7c1b6f63703d2bdd455" set match=19
if "%hash%"=="7895d10c281305c45a7e5f01b3f7b1d8" set match=20
if "%hash%"=="dae77aff77a0491e3b7254c9c8401aa8" set match=21
if "%hash%"=="3493be7e1e2588bc9c8b31eab2587a04" set match=22
if "%hash%"=="1d39e405bf6ee3df69a8d2646c8d5c49" set match=23
if "%hash%"=="ae76c20366ff685d3bb9fab11b148b84" set match=24
if "%hash%"=="f5528f6fd55cf9629141d79eda169630" set match=25
if "%hash%"=="0b381ff7bae93bde6496f9547463619d" set match=26
if "%hash%"=="a6685de59ddf2c07f45deeec95296d98" set match=27
if "%hash%"=="4461d4511386518e784c647e3128e7bc" set match=28
if "%hash%"=="9aa3cbf65b961d0bdac98ec403b832e1" set match=29
if "%hash%"=="24037397056e919961005e08611623f4" set match=30
if "%hash%"=="8974e3117ed4a1839c752d5e11ab1b7b" set match=31
IF DEFINED match (
	echo Обнаружен "!n[%match%]!", запущена конвертация
	goto c%match%a
)
echo ОШИБКА: неизвестный файл!
pause
exit

:c1
set /P source=Исходный файл [bfgdoom.wad]: 
echo.
if "%source%"=="" set source=bfgdoom.wad
:c1a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\bfg1.bin 2> nul
goto ending

:c2
set /P source=Исходный файл [bfgdoom2.wad]: 
echo.
if "%source%"=="" set source=bfgdoom2.wad
:c2a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\bfg2.bin 2> nul
goto ending

:c3
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c3a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1de.bin 2> nul
goto ending

:c4
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c4a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2de.bin 2> nul
goto ending

:c5
set /P source=Исходный файл [doomu.wad]: 
echo.
if "%source%"=="" set source=doomu.wad
:c5a
if not exist %source% (goto err)
bspatch %source% v1.9\doom.wad data\ud19.bin 2> nul
goto ending

:c6
:c6a
copy /y /b ATTACK.WAD + BLACKTWR.WAD + BLOODSEA.WAD + CANYON.WAD + CATWALK.WAD + COMBINE.WAD + FISTULA.WAD + GARRISON.WAD + GERYON.WAD + MANOR.WAD + MEPHISTO.WAD + MINOS.WAD + NESSUS.WAD + PARADOX.WAD + SUBSPACE.WAD + SUBTERRA.WAD + TEETH.WAD + TTRAP.WAD + VESPERAS.WAD + VIRGIL.WAD multi.wad > nul
if %ERRORLEVEL% neq 0 (
	echo ОШИБКА: исходный файл не найден!
	pause
	exit
)
bspatch multi.wad v1.9\masterlevels.wad data\master.bin 2> nul
del /q multi.wad > nul
goto ending

:c7
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c7a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2ps.bin 2> nul
goto ending

:c8
set /P source=Исходный файл [plutonia.wad]: 
echo.
if "%source%"=="" set source=plutonia.wad
:c8a
if not exist %source% (goto err)
bspatch %source% final\plutonia.wad data\ppsn.bin 2> nul
goto ending

:c9
set /P source=Исходный файл [tnt.wad]: 
echo.
if "%source%"=="" set source=tnt.wad
:c9a
if not exist %source% (goto err)
bspatch %source% final\tnt.wad data\tpsn.bin 2> nul
goto ending

:c10
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c10a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2zo.bin 2> nul
goto ending

:c11
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c11a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1un.bin 2> nul
goto ending

:c12
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c12a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2un.bin 2> nul
goto ending

:c13
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c13a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1xb.bin 2> nul
goto ending

:c14
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c14a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2xb.bin 2> nul
goto ending

:c15
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c15a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1x3.bin 2> nul
goto ending

:c16
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c16a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2x3.bin 2> nul
goto ending

:c17
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c17a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1xl.bin 2> nul
goto ending

:c18
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c18a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2xl.bin 2> nul
goto ending

:c19
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c19a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1u1.bin 2> nul
goto ending

:c20
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c20a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2u1.bin 2> nul
goto ending

:c21
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c21a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\dppc.bin 2> nul
goto ending

:c22
set /P source=Исходный файл [plutonia.wad]: 
echo.
if "%source%"=="" set source=plutonia.wad
:c22a
if not exist %source% (goto err)
bspatch %source% final\plutonia.wad data\pgog.bin 2> nul
goto ending

:c23
set /P source=Исходный файл [tnt.wad]: 
echo.
if "%source%"=="" set source=tnt.wad
:c23a
if not exist %source% (goto err)
bspatch %source% final\tnt.wad data\tgog.bin 2> nul
goto ending

:c24
set /P source=Исходный файл [plutonia.wad]: 
echo.
if "%source%"=="" set source=plutonia.wad
:c24a
if not exist %source% (goto err)
bspatch %source% final\plutonia.wad data\puni.bin 2> nul
goto ending

:c25
set /P source=Исходный файл [tnt.wad]: 
echo.
if "%source%"=="" set source=tnt.wad
:c25a
if not exist %source% (goto err)
bspatch %source% final\tnt.wad data\tuni.bin 2> nul
goto ending

:c26
set /P source=Исходный файл [plutonia.wad]: 
echo.
if "%source%"=="" set source=plutonia.wad
:c26a
if not exist %source% (goto err)
bspatch %source% final\plutonia.wad data\pun1.bin 2> nul
goto ending

:c27
set /P source=Исходный файл [tnt.wad]: 
echo.
if "%source%"=="" set source=tnt.wad
:c27a
if not exist %source% (goto err)
bspatch %source% final\tnt.wad data\tun1.bin 2> nul
goto ending

:c28
set /P source=Исходный файл [doom.wad]: 
echo.
if "%source%"=="" set source=doom.wad
:c28a
if not exist %source% (goto err)
bspatch %source% ultimate\doomu.wad data\d1ke.bin 2> nul
goto ending

:c29
set /P source=Исходный файл [doom2.wad]: 
echo.
if "%source%"=="" set source=doom2.wad
:c29a
if not exist %source% (goto err)
bspatch %source% v1.9\doom2.wad data\d2ke.bin 2> nul
goto ending

:c30
set /P source=Исходный файл [plutonia.wad]: 
echo.
if "%source%"=="" set source=plutonia.wad
:c30a
if not exist %source% (goto err)
bspatch %source% final\plutonia.wad data\pkex.bin 2> nul
goto ending

:c31
set /P source=Исходный файл [tnt.wad]: 
echo.
if "%source%"=="" set source=tnt.wad
:c31a
if not exist %source% (goto err)
bspatch %source% final\tnt.wad data\tkex.bin 2> nul
goto ending

:err
echo ОШИБКА: исходный файл не найден!
pause

:ending
popd
if "%~1" neq "" pause
