src/train_cmd.cpp
branchcpp_gui
changeset 6285 187e3ef04cc9
parent 6268 4b5241e5dd10
child 6298 c30fe89622df
--- a/src/train_cmd.cpp	Sat Mar 03 20:33:32 2007 +0000
+++ b/src/train_cmd.cpp	Sun Mar 04 04:25:36 2007 +0000
@@ -67,7 +67,7 @@
 		/* Power is not added for articulated parts */
 		if (IsArticulatedPart(u)) continue;
 
-		RailType railtype = (IsLevelCrossingTile(u->tile) ? GetRailTypeCrossing(u->tile) : GetRailType(u->tile));
+		RailType railtype = GetRailType(u->tile);
 		bool engine_has_power = HasPowerOnRail(u->u.rail.railtype, railtype);
 		bool wagon_has_power  = HasPowerOnRail(v->u.rail.railtype, railtype);
 
@@ -785,6 +785,9 @@
 			v->cur_image = 0xAC2;
 			v->random_bits = VehicleRandomBits();
 
+			v->vehicle_flags = 0;
+			if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SETBIT(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
+
 			v->subtype = 0;
 			SetFrontEngine(v);
 			SetTrainEngine(v);
@@ -2515,7 +2518,7 @@
 
 			if (CanFillVehicle(v) && (
 						v->current_order.flags & OF_FULL_LOAD ||
-						(_patches.gradual_loading && !HASBIT(v->load_status, LS_LOADING_FINISHED))
+						(_patches.gradual_loading && !HASBIT(v->vehicle_flags, VF_LOADING_FINISHED))
 					)) {
 				v->u.rail.days_since_order_progr = 0; /* Prevent a train lost message for full loading trains */
 				SET_EXPENSES_TYPE(EXPENSES_TRAIN_INC);
@@ -2705,10 +2708,7 @@
 	return
 		IsTileOwner(tile, v->owner) && (
 			!IsFrontEngine(v) ||
-			HASBIT(
-				v->u.rail.compatible_railtypes,
-				IsTileType(tile, MP_STREET) ? GetRailTypeCrossing(tile) : GetRailType(tile)
-			)
+			HASBIT(v->u.rail.compatible_railtypes, GetRailType(tile))
 		);
 }