Skip to content

Паром для поездов и дождь ​

Источник: pulsexlb/OpenTTD-patches px-patch (пакет 2026-10, pxp-2610.1 – pxp-2610.3), влит в jrpm через git merge.

В этот пакет вошли две крупные новые возможности: паром для поездов (перевозка поездов судами) и система дождя (с затемнением мира и каплями на экране).

Паром для поездов ​

К уже существующей перевозке автомобилей (RoRo), где машины грузятся на поезда, суда и самолёты, добавилась возможность перевозить судами целые поезда.

Соотношение с RoRo ​

Перевозка автомобилей (VEHC)Перевозка поездов (RAIL)
Перевозчикпоезда, суда, самолётысуда
Перевозимый объектавтомобилипоезда (как локомотивы, так и вагоны)
Метка грузаVEHCRAIL
Слот грузаNUM_CARGO - 1NUM_CARGO - 2

Оба слота груза находятся за пределами 64 слотов NewGRF, поэтому конфликтов не возникает.

Погрузка ​

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

Отображение грузоподъёмности ​

  • Окно сведений о судне показывает грузоподъёмность каждого трюма;
  • Окно сведений о поезде показывает грузоподъёмность каждого вагона.

Сопутствующие исправления ​

В этом пакете также исправлен ряд дефектов погрузки, выгрузки и резервирования перронов:

  • суда ошибочно считали тип пути несовместимым при выгрузке поездов, из-за чего поезд не мог высадиться;
  • при посадке поезда на пароход не сбрасывалось резервирование перрона, а при высадке возникали ошибки структуры и резервирования;
  • остаточное резервирование перрона мешало поездам снова выгружаться на перроны;
  • на некоторых ориентациях перрона поезд не мог выгрузиться;
  • не соблюдалось ограничение по вагонам для перестроенных под перевозку составов.

Система дождя ​

Это чисто декоративная симуляция погоды: она влияет только на картинку и не затрагивает игровую логику и экономику.

Отображение погоды ​

  • Случайные дождливые периоды: состояние погоды задаётся детерминированным ГПСЧ, засеянным из seed'а генерации карты, поэтому все игроки и сервер видят совершенно одинаковую погоду;
  • Плавное затемнение мира: во время дождя мир плавно темнеет, с рассветом светлеет. Затемнение проходит через RAIN_SHADE_LEVELS уровней и считывается при отрисовке обзорных окон;
  • Слой капель: полноэкранный слой дождя, который масштабируется вместе с зумом и имеет случайное смещение, чтобы капли не выглядели статичной картинкой.

Настройка и чит ​

  • Параметр сложности difficulty.rain: при создании игры задаёт, включено ли затемнение мира во время дождя;
  • Чит песочницы «Погода»: цикл из трёх состояний — авто / принудительный дождь / принудительное солнце.

Сохранения ​

Состояние погоды (идёт ли сейчас дождь, seed ГПСЧ, начало текущего дождливого периода) и чит песочницы сохраняются вместе с игрой; после загрузки затемщение сразу переходит к текущей погоде, а не проявляется заново.

  • Блок данных: WTHR;
  • Флаг возможности: XSLFI_WEATHER;
  • Код: src/weather.cpp, src/weather.h, src/sl/weather_sl.cpp.

Связанный код ​

  • Паром для поездов и грузоподъёмность: src/roadveh_transport.cpp, src/cargo_type.h (CT_RAILVEHICLES), src/table/cargo_const.h
  • Визуальные эффекты дождя: src/weather.cpp, src/blitter/32bpp_anim.cpp, src/blitter/40bpp_anim.cpp, src/viewport.cpp
  • Сохранение погоды: src/sl/weather_sl.cpp, src/sl/extended_ver_sl.cpp (XSLFI_WEATHER)
  • Настройки и чит: src/table/settings/difficulty_settings.ini (difficulty.rain), src/cheat_gui.cpp, src/cheat_type.h