1
0
Fork 0

Fix: Train unit ID allocation when moving engine to new train at train limit

pull/12887/head
Jonathan G Rennison 2024-08-02 20:46:51 +01:00
parent 57afa6002a
commit 1b9a3245d6
1 changed files with 5 additions and 4 deletions

View File

@ -1346,14 +1346,15 @@ CommandCost CmdMoveRailVehicle(DoCommandFlag flags, VehicleID src_veh, VehicleID
SetWindowDirty(WC_COMPANY, _current_company); SetWindowDirty(WC_COMPANY, _current_company);
} }
/* Add new heads to statistics */
if (src_head != nullptr && src_head->IsFrontEngine()) GroupStatistics::CountVehicle(src_head, 1);
if (dst_head != nullptr && dst_head->IsFrontEngine()) GroupStatistics::CountVehicle(dst_head, 1);
/* Handle 'new engine' part of cases #1b, #2b, #3b, #4b and #5 in NormaliseTrainHead. */ /* Handle 'new engine' part of cases #1b, #2b, #3b, #4b and #5 in NormaliseTrainHead. */
NormaliseTrainHead(src_head); NormaliseTrainHead(src_head);
NormaliseTrainHead(dst_head); NormaliseTrainHead(dst_head);
/* Add new heads to statistics.
* This should be done after NormaliseTrainHead due to engine total limit checks in GetFreeUnitNumber. */
if (src_head != nullptr && src_head->IsFrontEngine()) GroupStatistics::CountVehicle(src_head, 1);
if (dst_head != nullptr && dst_head->IsFrontEngine()) GroupStatistics::CountVehicle(dst_head, 1);
if ((flags & DC_NO_CARGO_CAP_CHECK) == 0) { if ((flags & DC_NO_CARGO_CAP_CHECK) == 0) {
CheckCargoCapacity(src_head); CheckCargoCapacity(src_head);
CheckCargoCapacity(dst_head); CheckCargoCapacity(dst_head);