История версий
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)