User:Asuka-/BuildMod
From TM-Modding-Wiki
|
Notes
This batch is splittet in several minor batches for the loops.
Parameters: name version lang1 lang2 lang3
BuildMod.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 Mod Name: %1 %2 Language(s): %3 %4 %5
IF EXIST "%cd%\Builtmods\CnC3Xml\mod_common.manifest" del "%cd%\Builtmods\CnC3Xml\mod_common.manifest"
@echo Copying language datas if it exists...
CALL language.bat %1 %2 %3
IF NOT "%4"=="" CALL language.bat %1 %2 %4 %3
IF NOT "%5"=="" CALL language.bat %1 %2 %5 %3
language.bat
@echo %3 @echo Building Audio Data if exist... IF EXIST "%cd%\Mods\%1\Lang\%3\data\mod.xml" CALL tools\binaryAssetBuilder.exe "%cd%\Mods\%1\Lang\%3\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:Common IF NOT "%4"=="" CALL MatchLanguage.bat %1 %3 %4
MatchLanuage.bat
@echo Renameing to match ingame files... set cdatadir=BuiltMods\mods\%1\lang\%2\data\mod\cdata\ set cdatadirmain=BuiltMods\mods\%1\lang\%3\data\mod\cdata\ FOR %%a IN (%cdatadir%*.cdata) DO CALL Resolve.bat %%a
Resolve.bat
set hash=%1 set hashmain=%hash:~-41% set hashmain=%hashmain:~0,-15% FOR %%a IN (%cdatadirmain%%hashmain%*.cdata) DO CALL ResolveFinal.bat %%a
ResolveFinal.bat
set hashnew=%1 set hashnew=%hashnew:~-41% ren %hash% %hashnew% set hashnew=
Resolve.bat
set hash= set hashmain=
MatchLanguage.bat
set cdatadir= set cdatadirmain=
language.bat
@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\lang\%3\data\mod.str" tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1\lang\%3" -x:*.asset -x:*.manifest -x:*.bin -x:*.imp -x:*.relo -x:*.version -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 "builtmods\mods\%3.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2" @echo Creating SkuDef and Config... echo mod-game 1.9 >> builtmods\mods\%1_%2_%3.SkuDef echo add-config ..\Core\%2\config.txt >> builtmods\mods\%1_%2_%3.SkuDef echo add-config %2\config.txt >> builtmods\mods\%1_%2_%3.SkuDef echo add-big %3.big >> builtmods\mods\config_%3.txt copy "builtmods\mods\%1_%2_%3.SkuDef" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%1_%2.SkuDef" copy "builtmods\mods\config_%3.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\%3\%2\config.txt" @echo %3 end...
BuildMod.bat
del "builtmods\mods\" /Q rd "builtmods\mods\%1\" /Q /S @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:false 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" @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:Common @echo Building Low LOD... tools\binaryAssetBuilder.exe "%cd%\Mods\%1\data\mod.xml" /od:"%cd%\BuiltMods" /iod:"%cd%\BuiltMods" /ls:true /gui:false /UsePrecompiled:true /vf:true /bcn:CommonLowLOD /bps:"%cd%\BuiltMods\mods\%1\data\mod_common.manifest" ren "%cd%\Builtmods\mods\%1\data\mod_common.version" mod.version del "%cd%\Builtmods\mods\%1\data\mod_l_common.version" copy "%cd%\Builtmods\mods\%1\data\mod.version" "%cd%\Builtmods\mods\%1\data\mod_l.version" copy "%cd%\Builtmods\mods\%1\data\mod_common.manifest" "%cd%\Builtmods\CnC3Xml\" @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\Core.big" @echo Deleting AptUI Files, INIs and Shaders... del "builtmods\mods\%1\data\aptui\" /Q del "builtmods\mods\%1\data\ini\" /Q del "builtmods\mods\%1\shaders\" /Q /S del "builtmods\mods\%1\window\" /Q /S @echo Copying map files... FOR /f %%a IN (Mods\%1\Data\Maps\Official\MapList.txt) DO CALL maps.bat %1 %%a
maps.bat
@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
BuildMod.bat
@echo Creating Map Big File... tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -x:*.asset -x:*.cdata -x:*_common* -x:*mod.version -x:*mod_l.version -o:"%cd%\BuiltMods\mods\Maps.big" @echo Copying built mod... IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods" md "%personal%Command & Conquer 3 Tiberium Wars\mods" IF NOT EXIST "%personal%Command & Conquer 3 Tiberium Wars\mods\%1" md "%personal%Command & Conquer 3 Tiberium Wars\mods\%1" 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 "builtmods\mods\Core.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2" copy "builtmods\mods\Maps.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2" del "builtmods\mods\" /Q /S @echo Copy Terrain Files... md "builtmods\mods\%1\Art\Terrain" xcopy "Mods\%1\Data\Terrain\*.*" "builtmods\mods\%1\Art\Terrain\" tools\MakeBig.exe -f "%cd%\BuiltMods\mods\%1" -o:"%cd%\BuiltMods\mods\Terrain.big" copy "builtmods\mods\Terrain.big" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2" echo add-big Core.big >> builtmods\mods\config_core.txt echo add-big Maps.big >> builtmods\mods\config_core.txt echo add-big Terrain.big >> builtmods\mods\config_core.txt copy "builtmods\mods\config_core.txt" "%personal%Command & Conquer 3 Tiberium Wars\mods\%1\Core\%2\config.txt" del "builtmods\mods\" /Q rd "builtmods\mods\%1\" /Q /S @echo Free Vars... set personal=
