Для начала нужно скачать и установить себе MinGW. Идём по ссылке, качаем последнюю версию. На момент написания это 20111118. Запускаем, устанавливаем в папку без пробелов, например, "C:\MinGW". В списке компонентов (components) выбираем галочками "C Compiler", "C++ Compiler", "MSYS Basic System" и "MinGW Developer ToolKit". Затем начинается хорошо известная для пользователей Linux закачка и установка пакетов.
Затем нужно скачать и распаковать последнюю версию компилятора NML. Идёт по ссылке, закачиваем себе архив со словом "win32" в имени. Распаковываем его в отдельную папку, например, "c:\Nml". Там же можно сразу скачать архив с исходниками со словом "src", его можно будет распаковать и использовать в качестве справки по именам свойств, переменных, функций обратного вызова, имён констант и пр.
Очень рекомендую поставить себе систему контроля версий TortoiseHg, последнюю версию под нужную разрядность. Для совместной разработки и интеграции с другими разработчиками она будет незаменима.
После этого можно взять мой архив с исходниками xUSSR Railwayset из темы, распаковать в отдельную папку, подправить пути в файле config.bat и запускать compile.bat для сборки.
Как настроить config.bat под себя.
а) Нужно вписать правильный путь к MinGW и компилятору NML
- Код: Выделить всё
set PATH=C:\MinGW\msys\1.0\bin;C:\MinGW\bin;C:\DOSUtil\Nml3;%PATH%
б) Нужно вписать правильный (существующий) путь, куда будет копироваться получаемая GRF, чтобы она была видна в игре.
- Код: Выделить всё
set GRFFOLDER=%USERPROFILE%\Documents\OpenTTD\content_download\data\my\ecs
В оригинальном файле config.bat используются пути для моей рабочей станции. У меня контент openttd располагается в профиле Windows, вместо "Мои документы" используется "Documents".
После первой сборки grf можно запустить игру, подключить набор и сохранить параметры.
После любой сборки не нужно перезапускать игру, достаточно в меню выбрать "Настройки NewGRF" и в появившемся окне нажать кнопку справа внизу "Применить изменения". Само собой, если меняются порядок идентификаторов ПС или размер моделек (shorten_vehicle), то надо сначала загнать такой транспорт в депо, иначе будет вылет.
Вот как бы и всё в кратце. Постараюсь ответить на вопросы по теме.
Надеюсь, кого-нибудь это заинтересует.