--- 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))
);
}