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;