changeset 13597:706013b8e441 draft

(svn r18121) -Codechange: pass the maximum left/right location to the Draw*Engine functions
author rubidium <rubidium@openttd.org>
date Mon, 16 Nov 2009 17:15:42 +0000
parents 74cd704c04a9
children abb90c8bc385
files src/aircraft_cmd.cpp src/build_vehicle_gui.cpp src/engine_func.h src/engine_gui.cpp src/engine_gui.h src/news_gui.cpp src/roadveh_cmd.cpp src/ship_cmd.cpp src/train_cmd.cpp
diffstat 9 files changed, 28 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/aircraft_cmd.cpp
+++ b/src/aircraft_cmd.cpp
@@ -198,14 +198,14 @@
 	return DIR_W + _aircraft_sprite[spritenum];
 }
 
-void DrawAircraftEngine(int x, int y, EngineID engine, SpriteID pal)
+void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
 {
-	DrawSprite(GetAircraftIcon(engine), pal, x, y);
+	DrawSprite(GetAircraftIcon(engine), pal, preferred_x, y);
 
 	if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) {
 		SpriteID rotor_sprite = GetCustomRotorIcon(engine);
 		if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
-		DrawSprite(rotor_sprite, PAL_NONE, x, y - 5);
+		DrawSprite(rotor_sprite, PAL_NONE, preferred_x, y - 5);
 	}
 }
 
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -728,7 +728,7 @@
 
 		SetDParam(0, engine);
 		DrawString(text_left, text_right, y + normal_text_y_offset, STR_ENGINE_NAME, engine == selected_id ? TC_WHITE : TC_BLACK);
-		DrawVehicleEngine(sprite_x, y + sprite_y_offset, engine, (show_count && num_engines == 0) ? PALETTE_CRASH : GetEnginePalette(engine, _local_company));
+		DrawVehicleEngine(l, r, sprite_x, y + sprite_y_offset, engine, (show_count && num_engines == 0) ? PALETTE_CRASH : GetEnginePalette(engine, _local_company));
 		if (show_count) {
 			SetDParam(0, num_engines);
 			DrawString(text_left, text_right, y + small_text_y_offset, STR_TINY_BLACK_COMA, TC_FROMSTRING, SA_RIGHT);
--- a/src/engine_func.h
+++ b/src/engine_func.h
@@ -21,11 +21,6 @@
 extern const uint8 _engine_counts[4];
 extern const uint8 _engine_offsets[4];
 
-void DrawTrainEngine(int x, int y, EngineID engine, SpriteID pal);
-void DrawRoadVehEngine(int x, int y, EngineID engine, SpriteID pal);
-void DrawShipEngine(int x, int y, EngineID engine, SpriteID pal);
-void DrawAircraftEngine(int x, int y, EngineID engine, SpriteID pal);
-
 bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company);
 bool IsEngineRefittable(EngineID engine);
 void SetCachedEngineCounts();
--- a/src/engine_gui.cpp
+++ b/src/engine_gui.cpp
@@ -104,7 +104,7 @@
 		DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_ENGINE_NAME, TC_BLACK, SA_CENTER);
 		y += FONT_HEIGHT_NORMAL;
 
-		DrawVehicleEngine(this->width >> 1, y + VEHICLE_SPACE / 2, engine, GetEnginePalette(engine, _local_company));
+		DrawVehicleEngine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, this->width >> 1, y + VEHICLE_SPACE / 2, engine, GetEnginePalette(engine, _local_company));
 
 		y += VEHICLE_SPACE;
 		DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, GetEngineInfoString(engine), TC_FROMSTRING, SA_CENTER);
@@ -248,30 +248,32 @@
 
 /**
  * Draw an engine.
- * @param x      Horizontal position to use for drawing the engine.
+ * @param left   Minimum horizontal position to use for drawing the engine
+ * @param right  Maximum horizontal position to use for drawing the engine
+ * @param preferred_x Horizontal position to use for drawing the engine.
  * @param y      Vertical position to use for drawing the engine.
  * @param engine Engine to draw.
  * @param pal    Palette to use for drawing.
  */
-void DrawVehicleEngine(int x, int y, EngineID engine, SpriteID pal)
+void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
 {
 	const Engine *e = Engine::Get(engine);
 
 	switch (e->type) {
 		case VEH_TRAIN:
-			DrawTrainEngine(x, y, engine, pal);
+			DrawTrainEngine(left, right, preferred_x, y, engine, pal);
 			break;
 
 		case VEH_ROAD:
-			DrawRoadVehEngine(x, y, engine, pal);
+			DrawRoadVehEngine(left, right, preferred_x, y, engine, pal);
 			break;
 
 		case VEH_SHIP:
-			DrawShipEngine(x, y, engine, pal);
+			DrawShipEngine(left, right, preferred_x, y, engine, pal);
 			break;
 
 		case VEH_AIRCRAFT:
-			DrawAircraftEngine(x, y, engine, pal);
+			DrawAircraftEngine(left, right, preferred_x, y, engine, pal);
 			break;
 
 		default: NOT_REACHED();
--- a/src/engine_gui.h
+++ b/src/engine_gui.h
@@ -22,6 +22,11 @@
 
 StringID GetEngineCategoryName(EngineID engine);
 StringID GetEngineInfoString(EngineID engine);
-void DrawVehicleEngine(int x, int y, EngineID engine, SpriteID pal);
+
+void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
+void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
+void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
+void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
+void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
 
 #endif /* ENGINE_GUI_H */
--- a/src/news_gui.cpp
+++ b/src/news_gui.cpp
@@ -427,7 +427,7 @@
 			case NTW_VEH_SPR: {
 				assert(this->ni->reftype1 == NR_ENGINE);
 				EngineID engine = this->ni->ref1;
-				DrawVehicleEngine((r.left + r.right) / 2, (r.top + r.bottom) / 2, engine, GetEnginePalette(engine, _local_company));
+				DrawVehicleEngine(r.left, r.right, (r.left + r.right) / 2, (r.top + r.bottom) / 2, engine, GetEnginePalette(engine, _local_company));
 				GfxFillRect(r.left, r.top, r.right, r.bottom, PALETTE_TO_STRUCT_GREY, FILLRECT_RECOLOUR);
 				break;
 			}
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
@@ -138,9 +138,9 @@
 	return sprite;
 }
 
-void DrawRoadVehEngine(int x, int y, EngineID engine, SpriteID pal)
+void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
 {
-	DrawSprite(GetRoadVehIcon(engine), pal, x, y);
+	DrawSprite(GetRoadVehIcon(engine), pal, preferred_x, y);
 }
 
 static uint GetRoadVehLength(const RoadVehicle *v)
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
@@ -68,9 +68,9 @@
 	return DIR_W + _ship_sprites[spritenum];
 }
 
-void DrawShipEngine(int x, int y, EngineID engine, SpriteID pal)
+void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
 {
-	DrawSprite(GetShipIcon(engine), pal, x, y);
+	DrawSprite(GetShipIcon(engine), pal, preferred_x, y);
 }
 
 /** Get the size of the sprite of a ship sprite heading west (used for lists)
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -657,7 +657,7 @@
 	return GetDefaultTrainSprite(spritenum, DIR_W);
 }
 
-void DrawTrainEngine(int x, int y, EngineID engine, SpriteID pal)
+void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
 {
 	if (RailVehInfo(engine)->railveh_type == RAILVEH_MULTIHEAD) {
 		int yf = y;
@@ -665,11 +665,11 @@
 
 		SpriteID spritef = GetRailIcon(engine, false, yf);
 		SpriteID spriter = GetRailIcon(engine, true, yr);
-		DrawSprite(spritef, pal, x - 14, yf);
-		DrawSprite(spriter, pal, x + 15, yr);
+		DrawSprite(spritef, pal, preferred_x - 14, yf);
+		DrawSprite(spriter, pal, preferred_x + 15, yr);
 	} else {
 		SpriteID sprite = GetRailIcon(engine, false, y);
-		DrawSprite(sprite, pal, x, y);
+		DrawSprite(sprite, pal, preferred_x, y);
 	}
 }