changeset 3896:02f298a9999f draft

(svn r4967) -Fix: [clone vehicles] a cloned train engine heads the same way as the original (pointed out by bobingabout) [autoreplace] the same applies to autoreplaced trains if the engine is a single unit (not dualheaded or articulated)
author bjarni <bjarni@openttd.org>
date Tue, 23 May 2006 21:49:18 +0000
parents 73b8a44e3c0b
children 1970bf2c49de
files vehicle.c
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/vehicle.c
+++ b/vehicle.c
@@ -1550,6 +1550,9 @@
 					DoCommand(0, w->index, v->cargo_type, flags, CMD_REFIT_VEH(v->type));
 				}
 			}
+			if (v->type == VEH_Train && HASBIT(v->u.rail.flags, VRF_REVERSE_DIRECTION)) {
+				SETBIT(w->u.rail.flags, VRF_REVERSE_DIRECTION);
+			}
 
 			if (v->type == VEH_Train && !IsFrontEngine(v)) {
 				// this s a train car
@@ -1641,7 +1644,10 @@
 				if (!CmdFailed(temp_cost)) cost += temp_cost;
 			}
 		}
-
+		if (new_v->type == VEH_Train && HASBIT(old_v->u.rail.flags, VRF_REVERSE_DIRECTION) && !IsMultiheaded(new_v) && !(new_v->next != NULL && IsArticulatedPart(new_v->next))) {
+			// we are autorenewing to a single engine, so we will turn it as the old one was turned as well
+			SETBIT(new_v->u.rail.flags, VRF_REVERSE_DIRECTION);
+		}
 
 		if (old_v->type == VEH_Train && !IsFrontEngine(old_v)) {
 			/* this is a railcar. We need to move the car into the train