User:Asuka-/BuildMod - TM-Modding-Wiki

User:Asuka-/BuildMod

From TM-Modding-Wiki

Jump to: navigation, search

Contents

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=
Personal tools
languages