ЙЕСС! У меня получилось, не все мозги еще пропил!
Заработала падло!
Только что удачно собрал на транке 14565 игру, применив три
патча (airport-close-r14546.patch, fund_town_r14505.patch, r14293-daypatch.diff). Все изменения вносил вручную.
Значит, осталась только проблема с очень старыми
патчами (слишком структура исходников поменялась, надо у знающих камрадов помощи просить).
Значится, рассказываю. Делал все через одно место наверное, ибо не программер ни разу.
Использовал
TortoiseSVN,
BuildOTTD и
Visual Studio С++ 2008 (полную версию ищите сами
)
1. По TortoiseSVN скачайте русифиратор и там подробно объясняется, да впрочем и не нужно - он в оболочку встраивается и остается только "правый клик - применить заплатку", путь надо указать к папке с исходниками или указать взять транк из интернета. Но это всё туфта, поскольку практически, автоматом через эту прогу у меня встал только 1
патч, и подозреваю, что вообще можно автоматом только один, т.к. меняются исходники и в последующих применяемых
патчах могут быть ссылки на уже неправильные строки, т.е. ошибки. Я использовал TortoiseSVN только для просмотра
патчей, да и компилировать тут всё равно нельзя.
2. С помощью Visual Studio вносятся изменения в исходники, (папка "src" транка). Т.е. открываешь TortoiseSVN файл
патча, там примерно так:
начало фрагмента (это отсебятина )
Index: src/saveload.cpp===================================================================
--- src/saveload.cpp (revision 14505)
+++ src/saveload.cpp (working copy)@@ -37,7 +37,7 @@ - номера исправляемых строк, не всегда совпадают и не догоняю, что такое к примеру 7 через запятую. Строка тут 37.
#include "table/strings.h" - предыдущая строка
-extern const uint16 SAVEGAME_VERSION = 102; - это красным строка - ибо нах
+extern const uint16 SAVEGAME_VERSION = 103; - эта зеленым вместо неё
SavegameType _savegame_type; ///< type of savegame we are loading - последующая строка
конец фрагментаПредыдущая и последующая строки тут для более точного указания места исправления, как я понимаю. Внимание! Пустые строки не забывайте (в данном примере так и должно быть). Т.е. в src/saveload.cpp транка надо внести эти поправки. В
патчах обычно указания на несколько исходных файлов и построены они аналогично.
Собственно, в VS открываешь указанные исходники и правишь строки, только повнимательней. Искать места исправлений лучше не по номерам строк (если файл большой), а по предыдущей или последующей строке.
Естественно, при внесении исправлений последовательно из нескольких
патчей в одни и те же исходные файлы, строки сдвинутся немного, не забывайте это учитывать.
VS я только правил, не компилировал, ибо был затык и мне проще оказалось использовать BuildOTTD.
3. Проинсталлив BuildOTTD не обольщайтесь, нихрена она вам автоматом собирать не будет, т.к. какой-то там глюк с поиском хранища (ошибка 404). Да и фиг с ним, "для бешенной собаки семь вёрст не крюк"
Возьмите папку с исправленными исходниками (по умолчанию при раззиповании она обзывается "trunk", пусть так и будет, но это не принципиально, можете взять только внутренности или указать другой путь.. ой, не, понесло, пусть будет trunk. Эту папку вам надо поместить в BuildOTTD, мой путь выглядит так - D:\BuildOTTD\msys\home\ZLZ\trunk.
А далее надо воспользоваться msys.bat в папке BuildOTTD\msys и завершить дело старым почти забытым способом:
cd trunk - переходите в нужную папку
configure - ждете несколько минут
make - ждете еще и нервничаете
Если исправления внесены верно, то сообщений об ошибках в конце не будет, а будет о том, что всё собрано. Если ошибки и экзешник не приготовился, то читайте что пишут и исправляйте в указанных местах. При трех
патчах я седня ошибся три раза, причем сам виноват.
Вот здесь при успешном завершении (D:\BuildOTTD\msys\home\ZLZ\trunk\bin - в моем случае) берете готовый openttd.exe, папки data и lang, и копируете их в папку с игрой (скачанной готовой ночнушкой к примеру) и добавляете файлы, которых не хватает (trg'шки, sample, russian2w). Последний пропишите в конфиг:
[newgrf-static]
russian2w.grf =
чтобы кракозябры убрать.
Аллес
Через msys.bat кстати, можете загрузить транк если хотите (svn checkout
svn://svn.openttd.org/trunk) и даже попытаться применить
патч автоматом (cd trunk => patch -p0 -i patchname), но скорее всего не получится, слишком быстро меняются исходники.
Ну и вот значит, что я седня сделал:
http://rapidshare.com/files/162228659/o ... r14565.rar - линк прямой
Сборка основана на транке 14565, с
патчами "длительности дня"(о зависимостях читайте
здесь), "find town", и "закрытие аэропорта". Соответственно, в ней можно применять grf'ки, которые требуют последних сборок, в частности ECS vectors v1 beta 5 и другие. Работоспособность длительно как понятно не проверял, но конфликтовать там имхо нечему, всего 3
патча.
И напоследок..
Вот вам -
http://rapidshare.com/files/162229643/t ... _3ptch.rar - транк с измененными исходниками в соответствии с приведенными выше
патчами. Поскольку уважаемый Smoky пока не может уделить время для сборок, предлагаю самим на транке 14565 сделать сборку с интересующими
патчами. Т.е. три уже есть, надо взять следующий какой охота и вручную внести изменения. Я попробую туды еще что нибудь добавить на неделе.
Да, кстати... Если кто заикнется, что не знает английский, пусть сразу идет лесом, поскольку я его сам не знаю, но разобраться смог
Уф. Помоему я дольше сообщение сочинял, чем исходники правил и игру собирал.
з.ы. Попробую сейчас Traffic Lights, раз в первом посте его спрашивали, но там много больно. Ну мож получится.