OpenTTD Spring 2013 2.4.291

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Yakuuneen Dance » Пт янв 24, 2014 20:04

pi1985 писал(а):Вот если ты эту строчку совсем удалишь, то можно будет ТС заменить на самого себя. Теоретически. Практически не проверял.


:lol: ура враг побежден и бежит http://i39.tinypic.com/294jxms.png

только он побежден хорошо с какойто из последних 1.4, а с твоей почемута наполовину, заменяет не жалуеца, тока экзешник раздуло в 2 раза и тормозит))) при сборке правда предупреждало, ругалось очень массово вот таким примерно образом "source\src\rail_map.h(300): warning C4800: 'uint' : forcing value to bool 'true' or 'false' (performance warning) (..\src\script\api\script_industry.cpp)", собирал МСВС 2013

что бы это могло быть?) :oops:

апд
загадочное все таки это дело - линуксоедение) запущенный тупо второй раз компилятор ворнинги все те же рисовал а файл стал как положено маленьким и не тормозит)) вобщем презентую свой падч в следующия сборки :mrgreen: с ним терь все вехыклы вообще не стареют если им автозамену не отключать, каждый плановый визит в депо и свежие как огурец))
Yakuuneen Dance
Машинист
Машинист
 
Сообщения: 33
Зарегистрирован: Ср янв 08, 2014 02:52

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Сб янв 25, 2014 00:35

Yakuuneen Dance писал(а):экзешник раздуло в 2 раза и тормозит)))

Это ты собрал отладочный вариант. Там где-то нужно указать win32 release или win64 release. Тогда нормальный будет. А вообще, студия (я пользовался 2010) - жуткий тормоз. Компилит минуты за две, а потом линкует минут двадцать. Мне больше minGW нравится.
Yakuuneen Dance писал(а):"source\src\rail_map.h(300): warning C4800: 'uint' : forcing value to bool 'true' or 'false' (performance warning) (..\src\script\api\script_industry.cpp)"

хз чего студии не нравится, я не обращаю внимания.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Yakuuneen Dance » Сб янв 25, 2014 00:55

pi1985 писал(а):Это ты собрал отладочный вариант. Там где-то нужно указать win32 release или win64 release. Тогда нормальный будет. А вообще, студия (я пользовался 2010) - жуткий тормоз. Компилит минуты за две, а потом линкует минут двадцать. Мне больше minGW нравится.


да, видимо так и было, проверял настройки в беспамятстве перед вторым запуском) не бывает значит чудес))
мне никто из них не нравица :lol:

а чем можно отредактировать попроще грф сеты с вехыклами, только в части статов, названий, времени ввода и вывода из эксплуатации итп? не графики
грф-кодек, ватета не?
Yakuuneen Dance
Машинист
Машинист
 
Сообщения: 33
Зарегистрирован: Ср янв 08, 2014 02:52

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Ср янв 29, 2014 12:57

Маленький анекдот.
Имеется такой патч:
Код: Выделить всё
$ cat ../fgw_05_isclosetotown-for-large-maps.patch
# HG changeset patch
# User MJP
# Date 1390328681 -3600
#      Tue Jan 21 19:24:41 2014 +0100
# Node ID 32c92ee3ff8b72ee063d481acf2d51e776d87a84
# Parent  ccf1c29a18a0b762bf26806e3fbfbbf58eb6d98e
IsCloseToTown() for large maps

diff -r ccf1c29a18a0 -r 32c92ee3ff8b src/town_cmd.cpp
--- a/src/town_cmd.cpp  Tue Jan 21 19:24:36 2014 +0100
+++ b/src/town_cmd.cpp  Tue Jan 21 19:24:41 2014 +0100
@@ -341,6 +341,24 @@
  */
static bool IsCloseToTown(TileIndex tile, uint dist)
{
+       /* On a large map with many towns, it may be faster to check the surroundings of the tile.
+        * An iteration in TILE_AREA_LOOP() is generally 2 times faster than one in FOR_ALL_TOWNS(). */
+       if (Town::GetNumItems() > (size_t) (dist * dist * 2)) {
+               const int tx = TileX(tile);
+               const int ty = TileY(tile);
+               TileArea tile_area = TileArea(
+                       TileXY(max(0,         tx - (int) dist), max(0,         ty - (int) dist)),
+                       TileXY(min(MapMaxX(), tx + (int) dist), min(MapMaxY(), ty + (int) dist))
+               );
+               TILE_AREA_LOOP(atile, tile_area) {
+                       if (GetTileType(atile) == MP_HOUSE) {
+                               Town *t = Town::GetByTile(atile);
+                               if (DistanceManhattan(tile, t->xy) < dist) return true;
+                       }
+               }
+               return false;
+       }
+
        const Town *t;

        FOR_ALL_TOWNS(t) {
$

В моём случае данный патч примениться без ошибок не может, потому что:
Код: Выделить всё
$ grep IsCloseToTown src/town_cmd.cpp
        if (IsCloseToTown(tile, _settings_game.economy.minimum_distance_town)) {
$

т. е. в файле town_cmd.cpp такой функции нет, она была перенесена ранее в файл town.h.
Однако результат вызывает сильное удивление:
Код: Выделить всё
$ patch -p1 -i ../fgw_05_isclosetotown-for-large-maps.patch
patching file src/town_cmd.cpp
Hunk #1 succeeded at 1664 with fuzz 2 (offset 1323 lines).
$

И что же мы видим:
Код: Выделить всё
$ svn diff src/town_cmd.cpp
Index: src/town_cmd.cpp
===================================================================
--- src/town_cmd.cpp    (revision 1)
+++ src/town_cmd.cpp    (working copy)
@@ -1664,6 +1664,24 @@
  */
static bool IsUniqueTownName(const char *name)
{
+       /* On a large map with many towns, it may be faster to check the surroundings of the tile.
+        * An iteration in TILE_AREA_LOOP() is generally 2 times faster than one in FOR_ALL_TOWNS(). */
+       if (Town::GetNumItems() > (size_t) (dist * dist * 2)) {
+               const int tx = TileX(tile);
+               const int ty = TileY(tile);
+               TileArea tile_area = TileArea(
+                       TileXY(max(0,         tx - (int) dist), max(0,         ty - (int) dist)),
+                       TileXY(min(MapMaxX(), tx + (int) dist), min(MapMaxY(), ty + (int) dist))
+               );
+               TILE_AREA_LOOP(atile, tile_area) {
+                       if (GetTileType(atile) == MP_HOUSE) {
+                               Town *t = Town::GetByTile(atile);
+                               if (DistanceManhattan(tile, t->xy) < dist) return true;
+                       }
+               }
+               return false;
+       }
+
        const Town *t;

        FOR_ALL_TOWNS(t) {
$

Я так полагаю, что patch подумала, что изменилось название функции и залила новый текст в неё.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Vaulter » Ср янв 29, 2014 20:13

pi1985 писал(а): with fuzz 2

и говорит нам об этом
Здоровье приносит ту свободу, которую очень немногие понимают, пока не теряют его.
skype: andrey-zaharov
Аватара пользователя
Vaulter
Директор
Директор
 
Сообщения: 439
Зарегистрирован: Вт авг 02, 2005 14:35
Откуда: Санкт-Петербург

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Ivan-r » Сб фев 08, 2014 20:59

версия 1.7.101 фул: Предприятия не производят товары. У них всегда стоит ноль. после генерации всё нормально. но с началом нового месяца все предприятия перестают что либо делать. При изменении чит-кодами производительность увеличивается как будто она в ноль и не уходила.
Всё начинается с 200`000 $
Изображение
Изображение
Изображение
Изображение
Аватара пользователя
Ivan-r
Директор
Директор
 
Сообщения: 432
Зарегистрирован: Пн май 30, 2011 15:58
Откуда: МО

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Сб фев 08, 2014 22:21

Сейв в студию.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение zloytin5 » Вс фев 09, 2014 15:36

А можно эту сборку под андроид собрать?
zloytin5
Начальник станции
Начальник станции
 
Сообщения: 75
Зарегистрирован: Чт авг 08, 2013 11:09

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Вс фев 09, 2014 16:58

Думаю, что можно. Только я не знаю как. Если расскажете, как под линукс это сделать, попробую.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение zloytin5 » Вс фев 09, 2014 17:15

"Эх была была бы у бабушки борода была бы она дедушкой":Dдаже отдаленно не представляю этот процес(((а тут на форуме видел что под линукс делают,может они помогут?а я тестером могу выступить)))
zloytin5
Начальник станции
Начальник станции
 
Сообщения: 75
Зарегистрирован: Чт авг 08, 2013 11:09

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Вс фев 09, 2014 17:59

Ок, если получится, соберу.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Godfather007 » Пн фев 10, 2014 19:20

Сборка не работает в сетевой игре - при нажатии "Новая игра" ничего не происходит.
Godfather007
Машинист
Машинист
 
Сообщения: 29
Зарегистрирован: Пт янв 19, 2007 18:45
Откуда: UMMS

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение pi1985 » Вт фев 11, 2014 01:31

Ага, в почти готовой следующей версии уже пофиксено.
pi1985
Президент
Президент
 
Сообщения: 676
Зарегистрирован: Вт апр 03, 2012 23:10
Откуда: Донбассъ - Забайкалье

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Yakuuneen Dance » Вт фев 11, 2014 13:57

pi1985 писал(а):Ага, в почти готовой следующей версии уже пофиксено.


:P а чо там будет вкуснаго?

а добавь мой суперпатч?))

autoreplace_cmd.cpp
Код: Выделить всё
55 строка   /* if (from == to) return false; */


затестирован, работает не пищит, а кому не нужен тот пусть просто завидует и меняет только на другую модель :lol:

и ватетат, рейтинг станций в части скорости вехыкла считает в зависимости от типа вехыкла, чтоб автобусы его не роняли например
отсюда http://www.tt-forums.net/viewtopic.php?f=33&t=59624
тока там номера строк другие уже, ну на всякий случай сообщаю))
тоже работает с последним патчпаком как положено

Код: Выделить всё
Index: src/station_cmd.cpp
===================================================================
--- src/station_cmd.cpp   (Revision 24187)
+++ src/station_cmd.cpp   (Arbeitskopie)
@@ -3207,8 +3207,27 @@
         }

         if (!skip) {
-            int b = ge->last_speed - 85;
-            if (b >= 0) rating += b >> 2;
+            int b = ge->last_speed;
+
+            if ((st->last_vehicle_type == VEH_TRAIN) || (st->last_vehicle_type == VEH_AIRCRAFT)) {
+               b -= 85;
+               if (b >= 0) rating += b>>2;
+            }
+            else   {
+               if (st->last_vehicle_type == VEH_ROAD)   {
+                  b -= 60;
+                  if (b >= 0) rating += b>>1;
+               }
+               else   {
+                  //ships LSB is 0.5km/h not 1km/h
+                  if (st->last_vehicle_type == VEH_SHIP)   {
+                     b -= 40;
+                     if (b >= 0) rating += b;
+                  }
+               }
+               //looks that rating <= 42, cause trains/plains has max 42
+               if (rating > 42 ) rating = 42;
+            }

            byte days = ge->days_since_pickup;
            if (st->last_vehicle_type == VEH_SHIP) days >>= 2;



тада уаще будет конфета :D
Yakuuneen Dance
Машинист
Машинист
 
Сообщения: 33
Зарегистрирован: Ср янв 08, 2014 02:52

Re: OpenTTD Spring 2013 - моя сборка на основе каргодиста

Сообщение Ivan-r » Вт фев 11, 2014 15:13

Кстати вспоминая про рейтинг станций, а нельзя сделать чтоб он максимальную скорость брал из максимальной скорости необходимого ТС в данный момент времени? Это ведь правильней. Или я опять "Услышал звон, да не знаю где он"?
Всё начинается с 200`000 $
Изображение
Изображение
Изображение
Изображение
Аватара пользователя
Ivan-r
Директор
Директор
 
Сообщения: 432
Зарегистрирован: Пн май 30, 2011 15:58
Откуда: МО

Пред.След.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62