Skip to content

Перевозка автомобилей (RoRo: Road-vehicle on Road-vehicle) ​

Источник: pulsexlb/OpenTTD-patches px-patch (сентябрьский выпуск 2026 г.), включён в jrpm через git merge.

Обзор ​

«Перевозка автомобилей» позволяет поездам, кораблям и самолётам напрямую перевозить автотранспорт:

  • Автомобилям больше не нужно ехать везде самостоятельно: они могут «поехать пассажиром» — перевозчик доставляет их на дальнюю станцию, где они съезжают на дорогу и продолжают путь сами;
  • Перевозчик (поезд/корабль/самолёт) получает возможность перевозить автомобили после переоборудования под груз «Vehicles (Road)» (специальный груз VEHC, занимающий грузовое пространство);
  • Со стороны автомобиля флаги заказа «Ожидать перевозки» и «Высадиться здесь» работают в паре с «погрузка автомобилей» / «выгрузка автомобилей» перевозчика.

Использование ​

Сторона перевозчика (поезд/корабль/самолёт) ​

  1. Переоборудуйте поезд в депо вручную под груз «Vehicles (Road)» — стать перевозчиком можно только ручным переоборудованием; переоборудование через заказы не применяется;
  2. Включите «Погрузка автомобилей» в заказе станции: поезд забирает ожидающие автомобили на этой станции;
  3. Необязательные сопутствующие опции:
    • «Ожидать погрузки» (отправляться только загруженным);
    • «Совпадение назначения»: брать только автомобили, чья заявленная станция высадки совпадает со следующей остановкой перевозчика;
    • «Выгрузить здесь все автомобили»: выгрузить всех, игнорируя заявленную каждым станцию.

Сторона автомобиля ​

  1. Установите «Ожидать перевозки» в заказе станции: автомобиль останавливается и ждёт перевозчика;
  2. Установите «Высадиться здесь»: автомобиль съезжает с перевозчика на этой станции;
  3. Опции взаимоисключающие (одна на заказ);
  4. При высадке автомобиль запускает поиск пути, чтобы выбрать лучшую платформу.

Детали и правила ​

  • Специальный слот груза: перевозка автомобилей использует слот груза 128 (NUM_CARGO - 1), вне 64 слотов, доступных NewGRF; общее число типов груза расширено с 64 до 128;
  • Определение выделенного перевозчика: когда все части транспортного средства переоборудованы под «Vehicles (Road)», кнопки заказов по умолчанию показывают перевозку автомобилей; у средств с обычным грузом — обычный груз;
  • Настройка частей перевозчика: vehicle.rv_transport_carrier_parts определяет, какие части могут везти автомобили;
  • Межкомпанийная погрузка: опционально разрешить погрузку/выгрузку автомобилей других компаний с автоматическим расчётом платы;
  • Предупреждение «везут слишком долго»: одноразовое предупреждение, если автомобиль везут слишком долго;
  • Списки заказов игрока: общие/отдельные списки заказов тоже поддерживают флаги перевозки автомобилей.

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

  • Состояние ожидания/перевозки и флаги заказов сохраняются;
  • Старые сохранения (без флага XSLFI_CARGO_TYPES_128) читаются с 64 слотами груза и остаются совместимыми.

Отладочные команды консоли (по умолчанию выключены) ​

Семейство команд rvtransport компилируется только с опцией CMake RORO_DEBUG_COMMANDS=ON, для регрессионных тестов.

Смежный код ​

  • Ядро: src/roadveh_transport.h, src/cargo_type.h (груз VEHC)
  • Заказы: src/order_cmd.cpp, src/order_gui.cpp, src/order_base.h (OrderExtraInfo)
  • Погрузка поездов: src/train_cmd.cpp, src/station_cmd.cpp
  • Расширение груза: src/sl/station_sl.cpp, src/sl/company_sl.cpp (XSLFI_CARGO_TYPES_128)