mirror of
https://github.com/spiffcode/hostile-takeover.git
synced 2026-04-25 20:35:16 -06:00
184 lines
3.4 KiB
Batchfile
184 lines
3.4 KiB
Batchfile
@echo off
|
|
|
|
REM Usage:
|
|
REM mkpdb <-pdb database> [-tc template collection] [-ld level] [-size size] [-nocleanup]
|
|
REM -pdb database: e.g., htdata816.pdb
|
|
REM -tc template collection: e.g., grassy.tc
|
|
REM -ld level: e.g., grassy_test.ld
|
|
REM -size size: tile size (16, 24, or 32)
|
|
REM -gt
|
|
REM -lvl level: e.g., grassy_test.lvl
|
|
|
|
REM Example:
|
|
REM mkpdb -pdb htdata816.pdb -tc enva.tc -ld enva.ld -size 16
|
|
REM or
|
|
REM mkpdb -pdb htdata824.pdb -gt
|
|
|
|
SETLOCAL
|
|
|
|
REM Miscellaneous constants
|
|
|
|
set DEPTH=8
|
|
set FIXED_PAL=fixed_%DEPTH%bpp.pal
|
|
set TMPDIR=mkdb_temp
|
|
set TOOLDIR=.
|
|
set CREATORID=WARI
|
|
|
|
REM Parse command-line arguments
|
|
|
|
:NextArg
|
|
if "%1"=="" (
|
|
goto :ProcessArgs
|
|
) else if "%1"=="-tc" (
|
|
set TC=%2
|
|
shift
|
|
) else if "%1"=="-pdb" (
|
|
set PDB=%2
|
|
shift
|
|
) else if "%1"=="-ld" (
|
|
set LD=%2
|
|
shift
|
|
) else if "%1"=="-size" (
|
|
set TILESIZE=%2
|
|
shift
|
|
) else if "%1"=="-nocleanup" (
|
|
set NOCLEANUP=1
|
|
) else if "%1"=="-gt" (
|
|
set GOBTEMPLATES=1
|
|
) else if "%1"=="-lvl" (
|
|
set LVL=%TMPDIR%\%2
|
|
shift
|
|
) else (
|
|
echo Error: unknown argument "%1"
|
|
goto :EOF
|
|
)
|
|
|
|
shift
|
|
goto :NextArg
|
|
|
|
:ProcessArgs
|
|
|
|
REM Prompt user for any missing required arguments and fill in
|
|
REM defaults for missing optional ones.
|
|
|
|
if "%PDB%"=="" (
|
|
set /P PDB="Enter database (.pdb) file name: "
|
|
)
|
|
if "%PDB%"=="" (
|
|
echo Error: database file name required
|
|
goto :EOF
|
|
)
|
|
|
|
if "%TILESIZE%"=="" (
|
|
set TILESIZE=24
|
|
)
|
|
echo Tile size: %TILESIZE%
|
|
|
|
REM
|
|
|
|
set ARTDIR=art%DEPTH%%TILESIZE%
|
|
set ENV_PAL=%ARTDIR%\%TC:.tc=%_%DEPTH%bpp.pal
|
|
|
|
REM
|
|
|
|
md %TMPDIR%
|
|
cd %TMPDIR%
|
|
echo Unpacking database...
|
|
..\%TOOLDIR%\packpdb2 -u ..\%PDB% >stdout.txt
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
cd ..
|
|
echo Error unpacking database
|
|
goto :Error
|
|
)
|
|
del stdout.txt
|
|
cd ..
|
|
|
|
if NOT "%TC%"=="" (
|
|
echo Calculating palette...
|
|
%TOOLDIR%\mcl -makepal %TILESIZE% %TC% 256 128 32 %FIXED_PAL% %ENV_PAL%
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error creating palette
|
|
goto :Error
|
|
)
|
|
|
|
echo Crunching palette...
|
|
%TOOLDIR%\palbin %ENV_PAL% %TMPDIR%\%TC:.tc=%.palbin
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error crunching palette
|
|
goto :Error
|
|
)
|
|
|
|
echo Creating shadow map...
|
|
%TOOLDIR%\shadowmap %ENV_PAL% %TMPDIR%\%TC:.tc=%.palbin.shadowmap 0.6
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error creating shadow map
|
|
goto :Error
|
|
)
|
|
)
|
|
|
|
if "%LVL%"=="" (
|
|
set LVL=%TMPDIR%\%LD:.ld=%.lvl
|
|
)
|
|
|
|
if NOT "%LD%"=="" (
|
|
echo Crunching level...
|
|
%TOOLDIR%\mcl -levels %TILESIZE% %DEPTH% 0.8 0.9 0.9 1.1 1.3 %ARTDIR% %TMPDIR% %LD%
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error compiling level
|
|
goto :Error
|
|
)
|
|
%TOOLDIR%\cl /nologo /EP /FI ..\res.h %LVL% > ini.tmp
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error preprocessing level
|
|
goto :Error
|
|
)
|
|
%TOOLDIR%\inicrunch ini.tmp %LVL%
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
del ini.tmp
|
|
echo Error inicrunching level
|
|
goto :Error
|
|
)
|
|
del ini.tmp
|
|
)
|
|
|
|
if NOT "%GOBTEMPLATES%"=="" (
|
|
echo Crunching GobTemplates...
|
|
%TOOLDIR%\cl /nologo /EP /I. GobTemplates.ini.pp > ini.tmp
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error preprocessing GobTemplates
|
|
goto :Error
|
|
)
|
|
%TOOLDIR%\inicrunch ini.tmp %TMPDIR%\GobTemplates.ini
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
del ini.tmp
|
|
echo Error inicrunching GobTemplates
|
|
goto :Error
|
|
)
|
|
del ini.tmp
|
|
)
|
|
|
|
%TOOLDIR%\packpdb2 -p %CREATORID% %PDB% %TMPDIR%\*.* -nocompress *.*
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Error packing database
|
|
goto :Error
|
|
)
|
|
endlocal
|
|
|
|
echo :NoError
|
|
if "%NOCLEANUP%"=="" (
|
|
@echo cleaning up...
|
|
if exist %TMPDIR% rd /q /s %TMPDIR%
|
|
)
|
|
endlocal
|
|
set MKPDB_RET=0
|
|
goto :EOF
|
|
|
|
:Error
|
|
echo :Error
|
|
if "%NOCLEANUP%"=="" (
|
|
@echo cleaning up...
|
|
if exist %TMPDIR% rd /q /s %TMPDIR%
|
|
)
|
|
endlocal
|
|
set MKPDB_RET=1
|