User:Asuka-/BuildMod all
From TM-Modding-Wiki
Notes
This batch is splittet in several minor batches - no need to compile all data if for example only data content is changed.
Parameters: name version lang1 lang2 lang3
BuildMod_all.bat
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Creating Folders if not exist...
IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2"
IF NOT "%4"=="" IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%4\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%4\%2"
IF NOT "%5"=="" IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%5\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%5\%2"
@echo Free Vars...
set personal=
CALL BuildMod_references.bat %1 %2
BuildMod_references
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Mod Name: %1 %2
@echo Building References Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\References.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true
del "%cd%\Builtmods\mods\%1\data\references.manifest"
del "%cd%\Builtmods\mods\%1\data\references.bin"
del "%cd%\Builtmods\mods\%1\data\references.imp"
del "%cd%\Builtmods\mods\%1\data\references.relo"
del "%cd%\Builtmods\mods\%1\data\references.version"
@echo Creating Apt Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*mapmetadata* -o:"%cd%\BuiltMods\mods\Apt.big"
@echo Deleting AptUI Files...
del "%cd%\builtmods\mods\%1\data\aptui\" /Q
@echo Copying Shaders...
IF NOT EXIST "%cd%\BuiltMods\mods\%1\Shaders" md "%cd%\BuiltMods\mods\%1\Shaders"
xcopy "%cd%\Mods\%1\Shaders\*.*" "%cd%\BuiltMods\mods\%1\Shaders" /E
@echo Copying INIs...
IF NOT EXIST "%cd%\BuiltMods\mods\%1\data\INI" md "%cd%\BuiltMods\mods\%1\data\INI"
xcopy "%cd%\Mods\%1\data\INI\*.*" "%cd%\BuiltMods\mods\%1\data\INI\" /E
@echo Copying WNDs...
IF NOT EXIST "%cd%\BuiltMods\mods\%1\Window" md "%cd%\BuiltMods\mods\%1\Window"
xcopy "%cd%\Mods\%1\data\Window\*.*" "%cd%\BuiltMods\mods\%1\Window\" /E
@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*.cdata -x:*mapmetadata* -o:"%cd%\BuiltMods\mods\Misc.big"
@echo Deleting INIs and Shaders...
del "%cd%\builtmods\mods\%1\data\ini\" /Q
del "%cd%\builtmods\mods\%1\shaders\" /Q /S
del "%cd%\builtmods\mods\%1\window\" /Q /S
@echo Creating EVA Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*mapmetadata.* -x:*mapmetadata_kane* -o:"%cd%\BuiltMods\mods\EVA.big"
del "%cd%\Builtmods\mods\%1\data\additionalmaps\mapmetadata_eva.manifest"
del "%cd%\Builtmods\mods\%1\data\additionalmaps\mapmetadata_eva.bin"
del "%cd%\Builtmods\mods\%1\data\additionalmaps\mapmetadata_eva.imp"
del "%cd%\Builtmods\mods\%1\data\additionalmaps\mapmetadata_eva.relo"
del "%cd%\Builtmods\mods\%1\data\additionalmaps\mapmetadata_eva.version"
@echo Copying map files...
FOR /f %%a IN (Mods\%1\Data\Maps\Official\MapList.txt) DO CALL maps.bat %1 %%a
@echo Creating Map Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*.cdata -o:"%cd%\BuiltMods\mods\Maps.big"
@echo Copying built references files...
IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
copy "%cd%\builtmods\mods\Apt.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
copy "%cd%\builtmods\mods\EVA.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
copy "%cd%\builtmods\mods\Misc.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
copy "%cd%\builtmods\mods\Maps.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q /S
@echo Copy Terrain Files...
md "%cd%\builtmods\mods\%1\Art\Terrain"
xcopy "%cd%\Mods\%1\Data\Terrain\*.*" "%cd%\builtmods\mods\%1\Art\Terrain\"
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -o:"%cd%\BuiltMods\mods\Terrain.big"
copy "%cd%\builtmods\mods\Terrain.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
echo add-big Apt.big >> "%cd%\builtmods\mods\config_core.txt"
echo add-big EVA.big >> "%cd%\builtmods\mods\config_core.txt"
echo add-big Misc.big >> "%cd%\builtmods\mods\config_core.txt"
echo add-big Maps.big >> "%cd%\builtmods\mods\config_core.txt"
echo add-big Terrain.big >> "%cd%\builtmods\mods\config_core.txt"
copy "%cd%\builtmods\mods\config_core.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q
rd "%cd%\builtmods\mods\%1\" /Q /S
@echo Free Vars...
set personal=
maps
@echo Building Map Data... tools\binaryAssetBuilder.exe "%cd%\Mods\%1\Data\maps\official\%2\map.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:false /gui:false /UsePrecompiled:true /LinkedStreams:true copy Mods\%1\Data\Maps\Official\%2\%2.map BuiltMods\mods\%1\data\maps\official\%2\ copy Mods\%1\Data\Maps\Official\%2\%2.tga BuiltMods\mods\%1\data\maps\official\%2\ copy Mods\%1\Data\Maps\Official\%2\%2_art.tga BuiltMods\mods\%1\data\maps\official\%2\ copy Mods\%1\Data\Maps\Official\%2\map.str BuiltMods\mods\%1\data\maps\official\%2\ @echo Fixing Map Data.... tools\AssetResolver.exe -m "%cd%\BuiltMods\mods\%1\Data\maps\official\%2\map.manifest" -s map
CALL BuildMod_art.bat %1 %2 %3 %4 %5
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Mod Name: %1 %2
IF EXIST "%cd%\Builtmods\CnC3Xml\mod_art.manifest" del "%cd%\Builtmods\CnC3Xml\mod_art.manifest"
copy "%cd%\Mods\%1\data\mod_art.xml" "%cd%\Mods\%1\data\mod.xml"
@echo Building Art Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:Art
copy "%cd%\Builtmods\mods\%1\data\mod_art.manifest" "%cd%\Builtmods\CnC3Xml\"
del "%cd%\Mods\%1\data\mod.xml"
ren "%cd%\Builtmods\mods\%1\data\mod_art.version" mod.version
@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*.cdata -o:"%cd%\BuiltMods\mods\Art.big"
@echo Copying built mod...
copy "%cd%\builtmods\mods\Art.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q /S
echo add-big Art.big >> "%cd%\builtmods\mods\config_art.txt"
copy "%cd%\builtmods\mods\config_art.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q
rd "%cd%\builtmods\mods\%1\" /Q /S
@echo Free Vars...
set personal=
CALL BuildMod_audio.bat %1 %2 %3 %4 %5
Now these are actually called through the batches are in front of line. (art -> audio -> data -> lang)
CALL BuildMod_audio.bat %1 %2 %3 %4 %5
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Mod Name: %1 %2
IF EXIST "%cd%\Builtmods\CnC3Xml\mod_audio.manifest" del "%cd%\Builtmods\CnC3Xml\mod_audio.manifest"
copy "%cd%\Mods\%1\data\mod_audio.xml" "%cd%\Mods\%1\data\mod.xml"
@echo Building Audio Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:Audio /bps:"%cd%\BuiltMods\CnC3Xml\mod_art.manifest"
copy "%cd%\Builtmods\mods\%1\data\mod_audio.manifest" "%cd%\Builtmods\CnC3Xml\"
del "%cd%\Mods\%1\data\mod.xml"
ren "%cd%\Builtmods\mods\%1\data\mod_audio.version" mod.version
@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -o:"%cd%\BuiltMods\mods\Audio.big"
@echo Copying built mod...
copy "%cd%\builtmods\mods\Audio.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q /S
echo add-big Audio.big >> "%cd%\builtmods\mods\config_audio.txt"
copy "%cd%\builtmods\mods\config_audio.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q
rd "%cd%\builtmods\mods\%1\" /Q /S
@echo Free Vars...
set personal=
CALL BuildMod_data.bat %1 %2 %3 %4 %5
CALL BuildMod_data.bat %1 %2 %3 %4 %5
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Mod Name: %1 %2
IF EXIST "%cd%\Builtmods\CnC3Xml\mod_data.manifest" del "%cd%\Builtmods\CnC3Xml\mod_data.manifest"
copy "%cd%\Mods\%1\data\mod_data.xml" "%cd%\Mods\%1\data\mod.xml"
@echo Building Mod Data...
tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:Data /bps:"%cd%\BuiltMods\CnC3Xml\mod_audio.manifest"
copy "%cd%\Builtmods\mods\%1\data\mod_data.manifest" "%cd%\Builtmods\CnC3Xml\"
del "%cd%\Mods\%1\data\mod.xml"
ren "%cd%\Builtmods\mods\%1\data\mod_data.version" mod.version
@echo Creating Mod Big File...
tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*.cdata -o:"%cd%\BuiltMods\mods\Data.big"
@echo Copying built mod...
copy "%cd%\builtmods\mods\Data.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q /S
echo add-big Data.big >> "%cd%\builtmods\mods\config_data.txt"
copy "%cd%\builtmods\mods\config_data.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
echo add-config config_art.txt >> "%cd%\builtmods\mods\config.txt"
echo add-config config_audio.txt >> "%cd%\builtmods\mods\config.txt"
echo add-config config_data.txt >> "%cd%\builtmods\mods\config.txt"
echo add-config config_core.txt >> "%cd%\builtmods\mods\config.txt"
copy "%cd%\builtmods\mods\config.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2"
del "%cd%\builtmods\mods\" /Q
rd "%cd%\builtmods\mods\%1\" /Q /S
@echo Free Vars...
set personal=
CALL BuildMod_lang.bat %1 %2 %3 %4 %5
CALL BuildMod_lang.bat %1 %2 %3 %4 %5
BuildMod_lang
@echo off
@echo Read MyDocs Path...
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') DO SET personal=%%B
if "%personal:~1,11%" == "USERPROFILE" FOR %%A in (%personal%) do set personal=%systemdrive:~0,2%%HOMEPATH%\%personal:~14%
set personal=%personal%\
@echo Mod Name: %1 %2 Language(s): %3 %4 %5
@echo Copying language datas if it exists...
CALL BuildMod_lang1.bat %1 %2 %3
IF NOT "%4"=="" CALL BuildMod_lang1.bat %1 %2 %4
IF NOT "%5"=="" CALL BuildMod_lang1.bat %1 %2 %5
@echo Free Vars...
set personal=
BuildMod_lang1
@echo %3 @echo Building Audio Data if exist... IF EXIST "%cd%\Mods\%1\data\mod_%3.xml" copy "%cd%\Mods\%1\data\mod_%3.xml" "%cd%\Mods\%1\data\mod.xml" IF EXIST "%cd%\Mods\%1\data\mod.xml" CALL tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:%3 /bps:"%cd%\BuiltMods\CnC3Xml\mod_data.manifest" @echo Building Low LOD... IF EXIST "%cd%\Builtmods\mods\%1\data\mod_%3.manifest" copy "%cd%\Builtmods\mods\%1\data\mod_%3.manifest" "%cd%\Builtmods\CnC3Xml\" IF EXIST "%cd%\Mods\%1\data\mod.xml" CALL tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:%3LowLOD /bps:"%cd%\BuiltMods\CnC3Xml\mod_%3.manifest" IF EXIST "%cd%\Builtmods\CnC3Xml\mod_%3.manifest" del "%cd%\Builtmods\CnC3Xml\mod_%3.manifest" IF EXIST "%cd%\Mods\%1\data\mod.xml" del "%cd%\Mods\%1\data\mod.xml" IF EXIST "%cd%\Builtmods\mods\%1\data\mod_%3.version" ren "%cd%\Builtmods\mods\%1\data\mod_%3.version" mod.version IF EXIST "%cd%\Builtmods\mods\%1\data\mod_l_%3.version" del "%cd%\Builtmods\mods\%1\data\mod_l_%3.version" IF EXIST "%cd%\Builtmods\mods\%1\data\mod.version" copy "%cd%\Builtmods\mods\%1\data\mod.version" "%cd%\Builtmods\mods\%1\data\mod_l.version" @echo Copying String File... IF NOT EXIST "%cd%\BuiltMods\mods\%1\lang\%3\data" md "%cd%\BuiltMods\mods\%1\lang\%3\data" copy "%cd%\Mods\%1\Lang\mod_%3.str" "%cd%\BuiltMods\mods\%1\data\mod.str" @echo Creating Mod Big File... tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -o:"%cd%\BuiltMods\mods\%3.big" IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2" copy "%cd%\builtmods\mods\%3.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2" @echo Creating SkuDef and Config... echo mod-game 1.9 >> "%cd%\builtmods\mods\%1_%2_%3.SkuDef" echo add-config %2\config.txt >> "%cd%\builtmods\mods\%1_%2_%3.SkuDef" echo add-config ..\Core\%2\config.txt >> "%cd%\builtmods\mods\%1_%2_%3.SkuDef" echo add-big %3.big >> "%cd%\builtmods\mods\config_%3.txt" copy "%cd%\builtmods\mods\%1_%2_%3.SkuDef" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%1_%2.SkuDef" copy "%cd%\builtmods\mods\config_%3.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2\config.txt" del "%cd%\builtmods\mods\" /Q rd "%cd%\builtmods\mods\%1\" /Q /S @echo %3 end...
