diff options
author | peter1138 <peter1138@openttd.org> | 2006-06-12 11:38:07 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-06-12 11:38:07 +0000 |
commit | 33f1abc62061b73cb44a3d68ee563f8d128d0caa (patch) | |
tree | 7047333d1f9b48fe2e09b364f8fac7b105afedce /train_cmd.c | |
parent | 6a0a527a87ce6c2ef7cb32ab925750f989461560 (diff) | |
download | openttd-33f1abc62061b73cb44a3d68ee563f8d128d0caa.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.c | 7 |
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 { |