Перевозка автомобилей (RoRo: Road-vehicle on Road-vehicle)
Источник: pulsexlb/OpenTTD-patches
px-patch(сентябрьский выпуск 2026 г.), включён в jrpm через git merge.
Обзор
«Перевозка автомобилей» позволяет поездам, кораблям и самолётам напрямую перевозить автотранспорт:
- Автомобилям больше не нужно ехать везде самостоятельно: они могут «поехать пассажиром» — перевозчик доставляет их на дальнюю станцию, где они съезжают на дорогу и продолжают путь сами;
- Перевозчик (поезд/корабль/самолёт) получает возможность перевозить автомобили после переоборудования под груз «Vehicles (Road)» (специальный груз
VEHC, занимающий грузовое пространство); - Со стороны автомобиля флаги заказа «Ожидать перевозки» и «Высадиться здесь» работают в паре с «погрузка автомобилей» / «выгрузка автомобилей» перевозчика.
Использование
Сторона перевозчика (поезд/корабль/самолёт)
- Переоборудуйте поезд в депо вручную под груз «Vehicles (Road)» — стать перевозчиком можно только ручным переоборудованием; переоборудование через заказы не применяется;
- Включите «Погрузка автомобилей» в заказе станции: поезд забирает ожидающие автомобили на этой станции;
- Необязательные сопутствующие опции:
- «Ожидать погрузки» (отправляться только загруженным);
- «Совпадение назначения»: брать только автомобили, чья заявленная станция высадки совпадает со следующей остановкой перевозчика;
- «Выгрузить здесь все автомобили»: выгрузить всех, игнорируя заявленную каждым станцию.
Сторона автомобиля
- Установите «Ожидать перевозки» в заказе станции: автомобиль останавливается и ждёт перевозчика;
- Установите «Высадиться здесь»: автомобиль съезжает с перевозчика на этой станции;
- Опции взаимоисключающие (одна на заказ);
- При высадке автомобиль запускает поиск пути, чтобы выбрать лучшую платформу.
Детали и правила
- Специальный слот груза: перевозка автомобилей использует слот груза 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)