Blades Runner
Posts: 624
Joined: Saturday, 18th December 2010, 04:50
Crawl merge tool
That's why I wrote this script to automate the process of moving player-generated data (morgues/saves/settings etc.) across versions. I figured I'd share it, in case it could be of help to someone else. If you saw my other thread entitled "/saves?", please know that I've fixed this and it copies save data correctly.
- Code:
@echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
:main
set olversion=0.0
set oldebuild=0000
set neversion=0.0
set nedebuild=0000
set /p olversion= <cm_olversion.dat
set /p oldebuild= <cm_oldebuild.dat
set /p neversion= <cm_neversion.dat
set /p nedebuild= <cm_nedebuild.dat
:mainh
cls
echo Crawl merge tool - coded by Laraso
echo.
echo FROM: crawl_tiles-%olversion%-a0-%oldebuild%
echo TO: crawl_tiles-%neversion%-a0-%nedebuild%
echo.
echo --------------------------
echo (a) Begin merge
echo.
echo (b) Edit FROM version
echo (c) Edit FROM build
echo.
echo (d) Edit TO version
echo (e) Edit TO build
echo --------------------------
goto commandline
:commandline
echo.
set /p command="Enter a command: "
goto commands
:commands
if %command%==/disableextensions (
SETLOCAL DISABLEEXTENSIONS
echo.
echo Extensions disabled.
goto commandline
)
if %command%==/disabledelayedexpansion (
SETLOCAL DISABLEDELAYEDEXPANSION
echo.
echo Delayed expansion disabled.
goto commandline
)
if %command%==/enableextensions (
SETLOCAL ENABLEEXTENSIONS
echo.
echo Extensions enabled.
goto commandline
)
if %command%==/enabledelayedexpansion (
SETLOCAL ENABLEDELAYEDEXPANSION
echo.
echo Delayed expansion enabled.
goto commandline
)
if %command%==/exit exit
if %command%==/close exit
if %command%==/cls (
cls
goto commandline
)
if %command%==/help goto help
if %command%==/about goto help
if %command%==/commands goto commands
if %command%==/command goto commands
if %command%==/list goto commands
if %command%==a goto merge
if %command%==b goto editolversion
if %command%==c goto editoldebuild
if %command%==d goto editneversion
if %command%==e goto editnedebuild
cls
echo ERROR: Command not recognized
echo.
pause
goto mainh
:editolversion
cls
echo Current FROM version is %olversion%
echo.
set /p olversion= "Change to: "
echo %olversion%> cm_olversion.dat
cls
echo FROM version changed to %olversion%
echo.
pause
goto main
:editoldebuild
cls
echo Current FROM build is %oldebuild%
echo.
set /p oldebuild= "Change to: "
echo %oldebuild%> cm_oldebuild.dat
cls
echo FROM build changed to %oldebuild%
echo.
pause
goto main
:editneversion
cls
echo Current TO version is %neversion%
echo.
set /p neversion= "Change to: "
echo %neversion%> cm_neversion.dat
cls
echo TO version changed to %neversion%
echo.
pause
goto main
:editnedebuild
cls
echo Current TO build is %nedebuild%
echo.
set /p nedebuild= "Change to: "
echo %nedebuild%> cm_nedebuild.dat
cls
echo TO build changed to %oldebuild%
echo.
pause
goto main
:merge
set trans=empty
cls
echo Progress:
echo.
echo = Transfer "\dolls.txt"
echo - Transfer "\settings\init.txt"
echo - Transfer "\morgue\"
echo - Transfer "\saves\"
echo - Transfer vaults
echo ----------------------------------------------
echo.
echo Transfer "\dolls.txt"? (y/n)
set /p trans= "> "
if %trans%==y (
echo.
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\dolls.txt crawl_tiles-%neversion%-a0-%nedebuild%
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto merge2
)
if %trans%==n goto merge2
cls
echo ERROR: Command not recognized
echo.
pause
goto merge
:merge2
cls
set trans=empty
echo Progress:
echo.
echo * Transfer "\dolls.txt"
echo = Transfer "\settings\init.txt"
echo - Transfer "\morgue\"
echo - Transfer "\saves\"
echo - Transfer vaults
echo ----------------------------------------------
echo.
echo Transfer "\settings\init.txt"? (y/n)
set /p trans= "> "
if %trans%==y (
echo.
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\settings\init.txt crawl_tiles-%neversion%-a0-%nedebuild%\settings\
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto merge3
)
if %trans%==n goto merge3
cls
echo ERROR: Command not recognized
echo.
pause
goto merge2
:merge3
cls
set trans=empty
echo Progress:
echo.
echo * Transfer "\dolls.txt"
echo * Transfer "\settings\init.txt"
echo = Transfer "\morgue\"
echo - Transfer "\saves\"
echo - Transfer vaults
echo ----------------------------------------------
echo.
echo Transfer "\morgue\"? (y/n)
set /p trans= "> "
if %trans%==y (
echo.
mkdir crawl_tiles-%neversion%-a0-%nedebuild%\morgue
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\morgue crawl_tiles-%neversion%-a0-%nedebuild%\morgue
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto merge4
)
if %trans%==n goto merge4
cls
echo ERROR: Command not recognized
echo.
pause
goto merge3
:merge4
cls
set trans=empty
echo Progress:
echo.
echo * Transfer "\dolls.txt"
echo * Transfer "\settings\init.txt"
echo * Transfer "\morgue\"
echo = Transfer "\saves\"
echo - Transfer vaults
echo ----------------------------------------------
echo.
echo Transfer "\saves\"? (y/n)
set /p trans= "> "
if %trans%==y (
echo.
mkdir crawl_tiles-%neversion%-a0-%nedebuild%\saves
mkdir crawl_tiles-%neversion%-a0-%nedebuild%\saves\sprint
mkdir crawl_tiles-%neversion%-a0-%nedebuild%\saves\zotdef
xcopy /Y /K /R /H /F crawl_tiles-%olversion%-a0-%oldebuild%\saves crawl_tiles-%neversion%-a0-%nedebuild%\saves
xcopy /Y /K /R /H /F crawl_tiles-%olversion%-a0-%oldebuild%\saves\sprint crawl_tiles-%neversion%-a0-%nedebuild%\saves\sprint
xcopy /Y /K /R /H /F crawl_tiles-%olversion%-a0-%oldebuild%\saves\zotdef crawl_tiles-%neversion%-a0-%nedebuild%\saves\zotdef
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto merge5
)
if %trans%==n goto merge5
cls
echo ERROR: Command not recognized
echo.
pause
goto merge4
:merge5
cls
set trans=empty
echo Progress:
echo.
echo * Transfer "\dolls.txt"
echo * Transfer "\settings\init.txt"
echo * Transfer "\morgue\"
echo * Transfer "\saves\"
echo = Transfer vaults
echo ----------------------------------------------
echo.
echo Transfer all vaults? (y/n)
set /p trans= "> "
if %trans%==y (
echo.
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\dat\des crawl_tiles-%neversion%-a0-%nedebuild%\dat\des
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\dat\dlua\loadmaps.lua crawl_tiles-%neversion%-a0-%nedebuild%\dat\dlua
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto main
)
if %trans%==n (
set ftime=1
goto mergevc
)
cls
echo ERROR: Command not recognized
echo.
pause
goto merge5
:mergevc
set trans=empty
cls
set trans=empty
echo Progress:
echo.
echo * Transfer "\dolls.txt"
echo * Transfer "\settings\init.txt"
echo * Transfer "\morgue\"
echo * Transfer "\saves\"
echo = Transfer vaults
echo ----------------------------------------------
echo.
if %ftime%==1 echo Transfer individual vaults? (y/n)
if %ftime%==0 echo Transfer additional vaults? (y/n)
set /p trans= "> "
if %trans%==y goto mergev
if %trans%==n goto main
cls
echo ERROR: Command not recognized
echo.
pause
goto mergevc
:mergev
cls
set ftime=0
set trans=empty
echo (a) altar
echo (b) branches
echo (c) builder
echo (d) entry
echo (e) portals
echo (f) serial
echo (g) sprint
echo (h) traps
echo (i) tutorial
echo (j) variable
echo (k) zotdef
echo ---------------
set /p vaultt= "Vault type: "
if %vaultt%==a (
set vaultt=altar
goto mergev2
)
if %vaultt%==b (
set vaultt=branches
goto mergev2
)
if %vaultt%==c (
set vaultt=builder
goto mergev2
)
if %vaultt%==d (
set vaultt=entry
goto mergev2
)
if %vaultt%==e (
set vaultt=portals
goto mergev2
)
if %vaultt%==f (
set vaultt=serial
goto mergev2
)
if %vaultt%==g (
set vaultt=sprint
goto mergev2
)
if %vaultt%==h (
set vaultt=traps
goto mergev2
)
if %vaultt%==i (
set vaultt=tutorial
goto mergev2
)
if %vaultt%==j (
set vaultt=variable
goto mergev2
)
if %vaultt%==k (
set vaultt=zotdef
goto mergev2
)
cls
echo ERROR: Command not recognized
echo.
pause
goto mergev2
:mergev2
echo.
set /p vaultn= "File name: "
echo.
xcopy /Y /K /R /H /F /E crawl_tiles-%olversion%-a0-%oldebuild%\dat\des\%vaultt%\%vaultn%.des crawl_tiles-%neversion%-a0-%nedebuild%\dat\des\%vaultt%
echo dgn.load_des_file('des/%vaultt%/%vaultn%.des') >> crawl_tiles-%neversion%-a0-%nedebuild%\dat\dlua\loadmaps.lua
echo.
echo * Transfer completed! Press any key to continue.
pause > cm_temp.dat
del cm_temp.dat
goto mergevc
:help
cls
echo About: Crawl Merger
echo.
echo * Crawl merger is a program designed to transfer player-generated data from an
echo older version of devCrawl to a newer version.
echo.
echo * This program was written by Laraso.
echo.
echo * This program uses these data files to save settings.
echo - cm_olversion.dat
echo - cm_oldebuild.dat
echo - cm_neversion.dat
echo - cm_nedebuild.dat
echo.
echo * Version 1.0
echo.
pause
goto mainh
:commands
cls
echo About: Commands
echo.
echo disableextensions = Disables extensions.
echo disabledelayedexpansion = Disables delayed expansion.
echo enableextensions = Enables extensions.
echo enabledelayedexpansion = Enables delayed expansion.
echo.
echo exit = Closes the program.
echo close = Closes the program.
echo.
echo cls = Clears the screen.
echo.
echo command = Displays this command menu.
echo commands = Displays this command menu.
echo list = Displays this command menu.
echo.
echo help = Displays help menu.
echo about = Displays help menu.
echo.
pause
goto mainh
If you want to use it, copy the text from the code box above and paste it into notepad, and then save it as crawlmerge.bat. To use it, put this script and the two versions of Crawl you want to merge into an empty folder, and then run this script.