Skip to content

История версий ​

jrpm-0.1.0 (2026-08-14) — Портирование cmclient завершено ​

На основе первого 0.1.0 выполнено портирование пяти партий функций cmclient (modded + cmclient полностью):

Новые функции (портирование cmclient / modded) ​

  • modded, первая партия: история поездок транспортных средств (b89f93f9) + регулируемая скорость руления самолётов (b89f93f9);
  • cmclient, вторая партия: закладки позиций / детализация грузов / наблюдение (089480b3);
  • cmclient, нулевая партия: консольные команды cmgamespeed / cmgamestats / cmexport / cmtreemap (1fd94d12);
  • cmclient, третья партия ① подсветка: объектный предпросмотр строительства (станции/пути/депо/аэропорты), интеграция с конвейером отрисовки viewport и инструментами строительства (6 коммитов, d97aa38a → 1957bf45);
  • cmclient, третья партия ③ чертежи: выделение/копирование/поворот/16 слотов/восстановление (8e08ca6b);
  • cmclient, четвёртая партия ④ зонирование городов: зоны Tz + growth_tiles раскраска + блок сохранения GRWT (9e3f95a2);
  • cmclient, пятая партия ⑤ воспроизведение команд: cmdrecord / cmdreplay (f113acce28);
  • Исправление конвенции параметров консоли: все команды jrpm теперь используют argv[1] как начальный параметр (argv[0] — имя команды).

Архитектурные выводы ​

  • ② Слой объектов команд не портирован: подсветка/чертежи/воспроизведение используют CMD_ERROR, замыкания команд и нативную сериализацию команд jrpm соответственно, обходясь без 2251 строки сгенерированного кода cmclient.

Совместимость сохранений ​

  • Данные growth_tiles хранятся в отдельном блоке GRWT, старые сохранения (без этого блока) загружаются полностью совместимо;
  • Файлы записи команд (.jrcm) — это собственный формат jrpm, совместимость между версиями не гарантируется.

jrpm-0.1.0 (2026-08-14) ​

Первый выпуск jrpm, основанный на jgrpp 0.73.1 + pulsexlb px-patch, с портированием функций modded / cmclient.

Изменения ​

  • Слияние pulsexlb px-patch (152 коммита):
    • Смена локомотивов (decouple): приказы на расцепку/сцепку, передача маршрутных листов, ограничения длины сцепки и скорости, двойная тяга, сцепка NewGRF, навигация сцепки, независимое управление после расцепки;
    • Модульные аэропорты (multitile-airport): система типов air, диспетчеризация PBS в воздухе, навигация YAPF для авиации, изменение планировки аэропортов (allow_modify_airports);
    • Новые версии сохранений: SLV_MULTITILE_AIRPORTS / SLV_ORDER_DECOUPLE.
  • Переименование версии: openttd-jrpm / jrpm-0.1.0 (имя исполняемого файла и строка ревизии).
  • Совместимость сервера с несколькими версиями: сервер jrpm принимает клиенты jrpm / оригинальный jgrpp / pulsexlb.
  • Собственные функции jrpm:
    • Загрузка ресурсов с нескольких зеркал + параллельная на уровне файлов (настраиваемое количество);
    • Автоматическая группировка ТС по общим приказам (кнопка в окне + команда autogroup);
    • Глобальный AI (API AIGlobal + пример GlobalAI, управляется настройкой);
    • Подсказка стоимости строительства (удалена по требованию, коммит 96ebfb75).
  • Портирование modded (первая партия):
    • История поездок ТС (последние 10 рейсов: прибыль/загрузка/длительность, кнопка History в окне деталей ТС);
    • Регулируемая скорость руления самолётов (vehicle.plane_taxi_speed, управляется XSLF, совместимость со старыми сохранениями).
  • Заимствования из cmclient (вторая партия):
    • Закладки позиций (savelocation / gotolocation, 9 слотов);
    • Окно детализации грузов компании (company_cargo);
    • Помощь в наблюдении (watch <company_id>).

Совместимость сохранений ​

  • Следует конвенции jgrpp: можно загружать сохранения trunk (до последней объединённой версии);
  • Сохранения jrpm (с данными многосекционных аэропортов/приказов расцепки) не гарантируют взаимное чтение со старыми сохранениями jgrpp;
  • Номер версии сохранения SAVEGAME_VERSION совпадает с pulsexlb (SLV_CUSTOM_SUBSIDY_DURATION);
  • Новые функции используют XSLF-расширения или NOSAVE, не нарушая старые сохранения.

Версии上游 ​

  • jgrpp 0.73.1: база проекта (ядро OpenTTD 16.0 + все возможности JGR).
  • pulsexlb px-patch 2608.3: источник смены локомотивов и модульных аэропортов.
  • embeddedt/OpenTTD-modded (эпоха 0.59.1): источник истории поездок и скорости руления.
  • citymania-org/cmclient (vanilla 15.3): источник закладок позиций/детализации грузов/наблюдения.

План развития ​

  • [x] Проверка сборки на реальном железе и исправление ошибок первой компиляции
  • [x] История поездок + скорость руления (modded, первая партия)
  • [x] Закладки позиций + детализация грузов + наблюдение (cmclient, вторая партия)
  • [ ] Система подсветки + система чертежей (cmclient, третья партия, см. план)
  • [ ] HTTP транспортный пул потоков + Range-блочная загрузка (ускорение больших файлов)
  • [ ] Оптимизация сжатия при отправке карты
  • [ ] Статистика доходов по грузам (требует расширения формата сохранений)
  • [ ] (Дальняя перспектива) Интеграция Rust-сервера (см. Openttd-Cluster)