1
0
Fork 0

Add: Check length of platforms for servicing trains.

pull/8480/head
J0anJosep 2020-12-27 22:29:23 +01:00
parent b6946fb17f
commit fc5445d208
2 changed files with 9 additions and 0 deletions

View File

@ -911,6 +911,7 @@ STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE
STR_NEWS_VEHICLE_UNPROFITABLE_YEAR :{WHITE}{VEHICLE}'s profit last year was {CURRENCY_LONG} STR_NEWS_VEHICLE_UNPROFITABLE_YEAR :{WHITE}{VEHICLE}'s profit last year was {CURRENCY_LONG}
STR_NEWS_VEHICLE_UNPROFITABLE_PERIOD :{WHITE}{VEHICLE}'s profit last period was {CURRENCY_LONG} STR_NEWS_VEHICLE_UNPROFITABLE_PERIOD :{WHITE}{VEHICLE}'s profit last period was {CURRENCY_LONG}
STR_NEWS_VEHICLE_CAN_T_FIND_FREE_DEPOT :{WHITE}{VEHICLE} can't find a free depot STR_NEWS_VEHICLE_CAN_T_FIND_FREE_DEPOT :{WHITE}{VEHICLE} can't find a free depot
STR_NEWS_VEHICLE_TOO_LONG_FOR_SERVICING :{WHITE}{VEHICLE} couldn't service in short platform
STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} can't get to the next destination because it is out of range STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} can't get to the next destination because it is out of range
STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} stopped because an ordered refit failed STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} stopped because an ordered refit failed

View File

@ -2418,6 +2418,14 @@ bool HandleTrainEnterDepot(Train *v)
if (IsExtendedRailDepot(v->tile)) { if (IsExtendedRailDepot(v->tile)) {
v->cur_speed = 0; v->cur_speed = 0;
Train *t = Train::From(v); Train *t = Train::From(v);
for (Train *u = t; u != nullptr; u = u->Next()) {
if (!IsCompatibleTrainDepotTile(u->tile, t->tile)) {
SetDParam(0, v->index);
AddVehicleAdviceNewsItem(STR_NEWS_VEHICLE_TOO_LONG_FOR_SERVICING, v->index);
return false;
}
}
for (Train *u = t; u != nullptr; u = u->Next()) u->track |= TRACK_BIT_DEPOT; for (Train *u = t; u != nullptr; u = u->Next()) u->track |= TRACK_BIT_DEPOT;
t->force_proceed = TFP_NONE; t->force_proceed = TFP_NONE;
ClrBit(t->flags, VRF_TOGGLE_REVERSE); ClrBit(t->flags, VRF_TOGGLE_REVERSE);