Mercurial > hg > openttd
changeset 5769:12ae5df772c0 draft
(svn r8320) -Fix
Simplify TrainPowerChanged() somewhat by eleminating code duplication
author | tron <tron@openttd.org> |
---|---|
date | Sun, 21 Jan 2007 18:46:19 +0000 |
parents | cb58a39476fd |
children | 4b671cf12da6 |
files | src/train_cmd.cpp |
diffstat | 1 files changed, 5 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -65,22 +65,14 @@ uint32 max_te = 0; for (u = v; u != NULL; u = u->next) { - const RailVehicleInfo *rvi_u; - bool engine_has_power = true; - bool wagon_has_power = true; - /* Power is not added for articulated parts */ if (IsArticulatedPart(u)) continue; - if (IsLevelCrossingTile(u->tile)) { - if (!HasPowerOnRail(u->u.rail.railtype, GetRailTypeCrossing(u->tile))) engine_has_power = false; - if (!HasPowerOnRail(v->u.rail.railtype, GetRailTypeCrossing(u->tile))) wagon_has_power = false; - } else { - if (!HasPowerOnRail(u->u.rail.railtype, GetRailType(u->tile))) engine_has_power = false; - if (!HasPowerOnRail(v->u.rail.railtype, GetRailType(u->tile))) wagon_has_power = false; - } - - rvi_u = RailVehInfo(u->engine_type); + RailType railtype = (IsLevelCrossingTile(u->tile) ? GetRailTypeCrossing(u->tile) : GetRailType(u->tile)); + bool engine_has_power = HasPowerOnRail(u->u.rail.railtype, railtype); + bool wagon_has_power = HasPowerOnRail(v->u.rail.railtype, railtype); + + const RailVehicleInfo *rvi_u = RailVehInfo(u->engine_type); if (engine_has_power && rvi_u->power != 0) { power += rvi_u->power;