Fix #10926: New free wagons no longer split by type. (#11507)

NormalizeTrainVehInDepot() should only be called if an engine was built, not for wagons.
wip-string
Peter Nelson 7 months ago committed by GitHub
parent 3df7d1aff9
commit e6d132d24b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -689,6 +689,7 @@ static CommandCost CmdBuildRailWagon(DoCommandFlag flags, TileIndex tile, const
/** Move all free vehicles in the depot to the train */
void NormalizeTrainVehInDepot(const Train *u)
{
assert(u->IsEngine());
for (const Train *v : Train::Iterate()) {
if (v->IsFreeWagon() && v->tile == u->tile &&
v->track == TRACK_BIT_DEPOT) {

@ -172,7 +172,7 @@ std::tuple<CommandCost, VehicleID, uint, uint16_t, CargoArray> CmdBuildVehicle(D
}
if (flags & DC_EXEC) {
if (type == VEH_TRAIN && use_free_vehicles && !(flags & DC_AUTOREPLACE)) {
if (type == VEH_TRAIN && use_free_vehicles && !(flags & DC_AUTOREPLACE) && Train::From(v)->IsEngine()) {
/* Move any free wagons to the new vehicle. */
NormalizeTrainVehInDepot(Train::From(v));
}

Loading…
Cancel
Save