diff src/roadveh_cmd.cpp @ 9022:db43607c4798 draft

(svn r12824) -Codechange: Standardise routines for drawing vehicle images, using correct types and less duplication.
author peter1138 <peter1138@openttd.org>
date Mon, 21 Apr 2008 20:50:58 +0000
parents 382abce6450f
children 11b5b3f4175d
line wrap: on
line diff
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
@@ -94,36 +94,42 @@
 	TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW
 };
 
-int RoadVehicle::GetImage(Direction direction) const
+static SpriteID GetRoadVehIcon(EngineID engine)
 {
-	int img = this->spritenum;
-	int image;
+	uint8 spritenum = RoadVehInfo(engine)->image_index;
 
-	if (is_custom_sprite(img)) {
-		image = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img)));
-		if (image != 0) return image;
-		img = _orig_road_vehicle_info[this->engine_type - ROAD_ENGINES_INDEX].image_index;
+	if (is_custom_sprite(spritenum)) {
+		SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W);
+		if (sprite != 0) return sprite;
+
+		spritenum = _orig_road_vehicle_info[engine - ROAD_ENGINES_INDEX].image_index;
 	}
 
-	image = direction + _roadveh_images[img];
-	if (this->cargo.Count() >= this->cargo_cap / 2U) image += _roadveh_full_adder[img];
-	return image;
+	return 6 + _roadveh_images[spritenum];
+}
+
+SpriteID RoadVehicle::GetImage(Direction direction) const
+{
+	uint8 spritenum = this->spritenum;
+	SpriteID sprite;
+
+	if (is_custom_sprite(spritenum)) {
+		sprite = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(spritenum)));
+		if (sprite != 0) return sprite;
+
+		spritenum = _orig_road_vehicle_info[this->engine_type - ROAD_ENGINES_INDEX].image_index;
+	}
+
+	sprite = direction + _roadveh_images[spritenum];
+
+	if (this->cargo.Count() >= this->cargo_cap / 2U) sprite += _roadveh_full_adder[spritenum];
+
+	return sprite;
 }
 
 void DrawRoadVehEngine(int x, int y, EngineID engine, SpriteID pal)
 {
-	int spritenum = RoadVehInfo(engine)->image_index;
-
-	if (is_custom_sprite(spritenum)) {
-		int sprite = GetCustomVehicleIcon(engine, DIR_W);
-
-		if (sprite != 0) {
-			DrawSprite(sprite, pal, x, y);
-			return;
-		}
-		spritenum = _orig_road_vehicle_info[engine - ROAD_ENGINES_INDEX].image_index;
-	}
-	DrawSprite(6 + _roadveh_images[spritenum], pal, x, y);
+	DrawSprite(GetRoadVehIcon(engine), pal, x, y);
 }
 
 static CommandCost EstimateRoadVehCost(EngineID engine_type)