Вот есть такая монструозная вещь, как batch files в виндовсе, намного неудобнее любого sh или perl, но! Зато процессор оных стоит на каждой машине с виндовсом, а значит у каждого художника или геймдизайнера (или бухгалтера, клерка и кто там ещё пользуется компьютером в других отраслях).
Так вот, о чём это я – о том, что на самом деле со времён доса и 98 винды многое изменилось – нынешний cmd стал намного полезней того кошмара, что был много лет назад.
Мне даже удалось написать скрипт для сборки всех 30 наших уровней и практически обойтись без GOTO.
@echo off set EXPORTER=..\..\tool\il_psp_exporter set PC_RKB=..\build\pc\maps set PC_CMD=-pwsp\il_psp.ddhproj -tPC -lRUS -xDX9 -xOpenAL -d set PSP_RKB=..\build\psp\PSP_GAME\USRDIR\data\maps set PSP_CMD=-pwsp\il_psp.ddhproj -tPSP -lRUS -xSASCore -d IF [%1]==[] ( echo Usage: "build_level.bat level_number", or "build_level.bat all" for all levels export exit ) ELSE IF [%1]==[all] ( echo building all levels FOR /L %%i IN (1, 1, 30) DO ( CALL :s_export_level %%i ) ) ELSE CALL :s_export_level %1 GOTO :eof :s_export_level echo ============================= echo processing level%1... echo ============================= echo ----------------------------- echo exporting briefing echo ----------------------------- echo skipped due to technical reasons rem %EXPORTER% wsp\brf_level%1.ddlproj -o%PC_RKB%\brf_level%1.rkb %PC_CMD% rem %EXPORTER% wsp\brf_level%1.ddlproj -o%PSP_RKB%\brf_level%1.rkb %PSP_CMD% echo ----------------------------- echo exporting PC content echo ----------------------------- %EXPORTER% wsp\level%1.ddlproj -o%PC_RKB%\level%1.rkb %PC_CMD% echo ----------------------------- echo exporting PSP content echo ----------------------------- %EXPORTER% wsp\level%1.ddlproj -o%PSP_RKB%\level%1.rkb %PSP_CMD% echo ============================= GOTO :eof |
_Winnie C++ Colorizer |
Что у нас тут имеется:
Инициализация переменных – тут всё вроде бы просто.
Ветвление – обрамляется скобками, открывающая должна быть на той же строке, что и IF (ELSE)
Цикл по цифрам (есть ещё много других циклов, по каталогам, файлам, содержимому файлов).
Ещё имеется функция – это действительно функция (или субрутина, кому как) её можно вызывать и передавать параметры, что, собсно и делается.