summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vehicle.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/vehicle.c b/vehicle.c
index 4492fe408..5946f7e87 100644
--- a/vehicle.c
+++ b/vehicle.c
@@ -1714,8 +1714,11 @@ static void MaybeReplaceVehicle(Vehicle *v)
bool stopped = false;
/* Remember the length in case we need to trim train later on
- * If it's not a train, the value is unused */
- uint16 old_total_length = (v->type == VEH_Train) ? v->u.rail.cached_total_length : -1;
+ * If it's not a train, the value is unused
+ * round up to the length of the tiles used for the train instead of the train length instead
+ * Useful when newGRF uses custom length */
+ uint16 old_total_length = (v->type == VEH_Train) ? ((v->u.rail.cached_total_length + 15 )/ 16)* 16 : -1;
+
_current_player = v->owner;