src/vehicle.cpp
changeset 11120 373bc4028ce2
parent 10922 6ca169cfe005
child 11122 ef4f97adc383
--- a/src/vehicle.cpp	Fri Jul 04 21:43:17 2008 +0000
+++ b/src/vehicle.cpp	Sun Jul 06 11:08:40 2008 +0000
@@ -275,17 +275,8 @@
 	}
 
 	FOR_ALL_VEHICLES(v) {
-		assert(v->first != NULL);
-
-		if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) {
-			if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed
-			TrainConsistChanged(v);
-		} else if (v->type == VEH_ROAD && IsRoadVehFront(v)) {
-			RoadVehUpdateCache(v);
-		}
-	}
-
-	FOR_ALL_VEHICLES(v) {
+		assert(v->First() != NULL);
+
 		switch (v->type) {
 			case VEH_ROAD:
 				v->u.road.roadtype = HasBit(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
@@ -321,6 +312,19 @@
 	}
 }
 
+void InitializeVehicleCaches()
+{
+	Vehicle *v;
+	FOR_ALL_VEHICLES(v) {
+		if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) {
+			if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed
+			TrainConsistChanged(v);
+		} else if (v->type == VEH_ROAD && IsRoadVehFront(v)) {
+			RoadVehUpdateCache(v);
+		}
+	}
+}
+
 Vehicle::Vehicle()
 {
 	this->type               = VEH_INVALID;