summaryrefslogtreecommitdiff
path: root/train_cmd.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-06-12 11:38:07 +0000
committerpeter1138 <peter1138@openttd.org>2006-06-12 11:38:07 +0000
commit02bde34b2bf4bd4ee7be99e5cf76c42eeed9a422 (patch)
tree7047333d1f9b48fe2e09b364f8fac7b105afedce /train_cmd.c
parent84f553b47f357205b64d1ee12c743ee0b3e5c7db (diff)
downloadopenttd-02bde34b2bf4bd4ee7be99e5cf76c42eeed9a422.tar.xz
(svn r5240) - NewGRF: when there is more than one engine in a consist, base livery overrides and powered wagon weight/power on the last engine before the wagon.
Diffstat (limited to 'train_cmd.c')
-rw-r--r--train_cmd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/train_cmd.c b/train_cmd.c
index bf8b29629..7becdb023 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -59,7 +59,7 @@ static void TrainCargoChanged(Vehicle* v)
// powered wagons have extra weight added
if (HASBIT(u->u.rail.flags, VRF_POWEREDWAGON))
- vweight += RailVehInfo(v->engine_type)->pow_wag_weight;
+ vweight += RailVehInfo(u->u.rail.first_engine)->pow_wag_weight;
}
// consist weight is the sum of the weight of all vehicles in the consist
@@ -79,7 +79,6 @@ static void TrainCargoChanged(Vehicle* v)
*/
void TrainPowerChanged(Vehicle* v)
{
- const RailVehicleInfo *rvi_v = RailVehInfo(v->engine_type);
Vehicle* u;
uint32 power = 0;
@@ -106,7 +105,7 @@ void TrainPowerChanged(Vehicle* v)
if (engine_has_power) power += rvi_u->power;
if (HASBIT(u->u.rail.flags, VRF_POWEREDWAGON) && (wagon_has_power)) {
- power += rvi_v->pow_wag_power;
+ power += RailVehInfo(u->u.rail.first_engine)->pow_wag_power;
}
}
@@ -149,6 +148,8 @@ void TrainConsistChanged(Vehicle* v)
u->u.rail.first_engine = (v == u) ? INVALID_ENGINE : first_engine;
u->u.rail.railtype = GetEngine(u->engine_type)->railtype;
+ if (IsTrainEngine(u)) first_engine = u->engine_type;
+
if (rvi_u->visual_effect != 0) {
u->u.rail.cached_vis_effect = rvi_u->visual_effect;
} else {