(svn r2413) - Codechange: Rewrite the displaying of purchase details a bit, make it easyer to add lines later.
authorhackykid
Sun, 05 Jun 2005 23:01:10 +0000
changeset 1907 cebdef7a1c8a
parent 1906 f5ae1d8ad052
child 1908 bc48a30aba72
(svn r2413) - Codechange: Rewrite the displaying of purchase details a bit, make it easyer to add lines later.
- Add: In the purchase details for trains display "(refittable)" after the capacity if the vehicle is refittable.
aircraft_gui.c
lang/english.txt
roadveh_gui.c
ship_gui.c
train_gui.c
vehicle_gui.c
vehicle_gui.h
--- a/aircraft_gui.c	Sun Jun 05 20:45:04 2005 +0000
+++ b/aircraft_gui.c	Sun Jun 05 23:01:10 2005 +0000
@@ -15,25 +15,45 @@
 #include "player.h"
 #include "depot.h"
 
-
-void Set_DPARAM_Aircraft_Build_Window(uint16 engine_number)
+/**
+ * Draw the purchase info details of an aircraft at a given location.
+ * @param x,y location where to draw the info
+ * @param engine_number the engine of which to draw the info of
+ */
+void DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number)
 {
 	const AircraftVehicleInfo *avi = AircraftVehInfo(engine_number);
-	Engine *e;
+	Engine *e = &_engines[engine_number];
 	YearMonthDay ymd;
+	ConvertDayToYMD(&ymd, e->intro_date);
 
+	/* Purchase cost - Max speed */
 	SetDParam(0, avi->base_cost * (_price.aircraft_base>>3)>>5);
 	SetDParam(1, avi->max_speed * 8);
-	SetDParam(2, avi->passenger_capacity);
-	SetDParam(3, avi->mail_capacity);
-	SetDParam(4, avi->running_cost * _price.aircraft_running >> 8);
+	DrawString(x, y, STR_PURCHASE_INFO_COST_SPEED, 0);
+	y += 10;
 
-	e = &_engines[engine_number];
-	SetDParam(6, e->lifelength);
-	SetDParam(7, e->reliability * 100 >> 16);
-	ConvertDayToYMD(&ymd, e->intro_date);
-	SetDParam(5, ymd.year + 1920);
+	/* Cargo capacity */
+	SetDParam(0, avi->passenger_capacity);
+	SetDParam(1, avi->mail_capacity);
+	DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, 0);
+	y += 10;
 
+	/* Running cost */
+	SetDParam(0, avi->running_cost * _price.aircraft_running >> 8);
+	DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, 0);
+	y += 10;
+
+	/* Design date - Life length */
+	SetDParam(0, ymd.year + 1920);
+	SetDParam(1, e->lifelength);
+	DrawString(x, y, STR_PURCHASE_INFO_DESIGNED_LIFE, 0);
+	y += 10;
+
+	/* Reliability */
+	SetDParam(0, e->reliability * 100 >> 16);
+	DrawString(x, y, STR_PURCHASE_INFO_RELIABILITY, 0);
+	y += 10;
 }
 
 static void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection)
@@ -110,9 +130,7 @@
 			WP(w,buildtrain_d).sel_engine = selected_id;
 
 			if (selected_id != -1) {
-				Set_DPARAM_Aircraft_Build_Window(selected_id);
-
-				DrawString(2, w->widget[4].top + 1, STR_A007_COST_SPEED_CAPACITY_PASSENGERS, 0);
+				DrawAircraftPurchaseInfo(2, w->widget[4].top + 1, selected_id);
 			}
 		}
 	} break;
--- a/lang/english.txt	Sun Jun 05 20:45:04 2005 +0000
+++ b/lang/english.txt	Sun Jun 05 23:01:10 2005 +0000
@@ -2420,7 +2420,6 @@
 STR_8814_TRAIN_IS_WAITING_IN_DEPOT                              :{WHITE}Train {COMMA16} is waiting in depot
 STR_8815_NEW_VEHICLES                                           :{BLACK}New Vehicles
 STR_8816                                                        :{BLACK}-
-STR_8817_COST_WEIGHT_T_SPEED_POWER                              :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Weight: {GOLD}{COMMA16}t{}{BLACK}Speed: {GOLD}{VELOCITY}{BLACK}   Power: {GOLD}{COMMA32}hp{}{BLACK}Running Cost: {GOLD}{CURRENCY}/yr{}{BLACK}Capacity: {GOLD}{STRING}{}{BLACK}Designed: {GOLD}{NUMU16}{BLACK} Life: {GOLD}{COMMA16} years{}{BLACK}Max. Reliability: {GOLD}{COMMA8}%
 STR_8818_INFORMATION                                            :{BLACK}Information
 STR_8819_TRAIN_TOO_LONG                                         :{WHITE}Train too long
 STR_881A_TRAINS_CAN_ONLY_BE_ALTERED                             :{WHITE}Trains can only be altered when stopped inside a depot
@@ -2430,7 +2429,6 @@
 STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}New Maglev Vehicles
 STR_881F_BUILD_VEHICLE                                          :{BLACK}Build Vehicle
 STR_8820_RENAME                                                 :{BLACK}Rename
-STR_8821_COST_WEIGHT_T_T_CAPACITY                               :{BLACK}Cost: {GOLD}{CURRENCY}{}{BLACK}Weight: {GOLD}{COMMA16}t  ({COMMA16}t){}{BLACK}Capacity: {GOLD}{STRING}
 STR_8823_SKIP                                                   :{BLACK}Skip
 STR_8824_DELETE                                                 :{BLACK}Delete
 STR_8825_NON_STOP                                               :{BLACK}Non-Stop
@@ -2523,7 +2521,6 @@
 STR_9005_INFORMATION                                            :{BLACK}Information
 STR_9006_NEW_ROAD_VEHICLES                                      :{WHITE}New Road Vehicles
 STR_9007_BUILD_VEHICLE                                          :{BLACK}Build Vehicle
-STR_9008_COST_SPEED_RUNNING_COST                                :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Speed: {GOLD}{VELOCITY}{}{BLACK}Running Cost: {GOLD}{CURRENCY}/yr{}{BLACK}Capacity: {GOLD}{STRING}{}{BLACK}Designed: {GOLD}{NUMU16}{BLACK}  Life: {GOLD}{COMMA16} years{}{BLACK}Max. Reliability: {GOLD}{COMMA8}%
 STR_9009_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Can't build road vehicle...
 STR_900A_MUST_BUILD_ROAD_VEHICLE                                :{WHITE}Must build road vehicle depot first
 STR_900B_ORDERS                                                 :{WHITE}{STRING} (Orders)
@@ -2586,7 +2583,6 @@
 STR_9807_MUST_BUILD_SHIP_DEPOT_FIRST                            :{WHITE}Must build ship depot first
 STR_9808_NEW_SHIPS                                              :{WHITE}New Ships
 STR_9809_BUILD_SHIP                                             :{BLACK}Build Ship
-STR_980A_COST_SPEED_CAPACITY_RUNNING                            :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Speed: {GOLD}{VELOCITY}{}{BLACK}Capacity: {GOLD}{STRING} {STRING}{}{BLACK}Running Cost: {GOLD}{CURRENCY}/yr{}{BLACK}Designed: {GOLD}{NUMU16}{BLACK}   Life: {GOLD}{COMMA16} years{}{BLACK}Max. Reliability: {GOLD}{COMMA8}%
 STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Ship must be stopped in depot
 STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Can't sell ship...
 STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Can't build ship...
@@ -2655,7 +2651,6 @@
 STR_A004_INFORMATION                                            :{BLACK}Information
 STR_A005_NEW_AIRCRAFT                                           :{WHITE}New Aircraft
 STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Build Aircraft
-STR_A007_COST_SPEED_CAPACITY_PASSENGERS                         :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Speed: {GOLD}{VELOCITY}{}{BLACK}Capacity: {GOLD}{COMMA16} passengers, {COMMA16} bags of mail{}{BLACK}Running Cost: {GOLD}{CURRENCY}/yr{}{BLACK}Designed: {GOLD}{NUMU16}{BLACK}  Life: {GOLD}{COMMA16} years{}{BLACK}Max. Reliability: {GOLD}{COMMA8}%
 STR_A008_CAN_T_BUILD_AIRCRAFT                                   :{WHITE}Can't build aircraft...
 STR_A009_AIRCRAFT                                               :{WHITE}{STRING} - {COMMA16} Aircraft
 STR_A00A                                                        :{WHITE}{STRING}
@@ -2823,3 +2818,14 @@
 ############ End of list of rail types
 
 STR_TINY_BLACK                                                  :{BLACK}{TINYFONT}{COMMA16}
+
+STR_PURCHASE_INFO_COST_WEIGHT                                   :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Weight: {GOLD}{COMMA16}t
+STR_PURCHASE_INFO_SPEED_POWER                                   :{BLACK}Speed: {GOLD}{VELOCITY}{BLACK}   Power: {GOLD}{COMMA32}hp
+STR_PURCHASE_INFO_RUNNINGCOST                                   :{BLACK}Running Cost: {GOLD}{CURRENCY}/yr
+STR_PURCHASE_INFO_CAPACITY                                      :{BLACK}Capacity: {GOLD}{STRING} {STRING}
+STR_PURCHASE_INFO_DESIGNED_LIFE                                 :{BLACK}Designed: {GOLD}{NUMU16}{BLACK} Life: {GOLD}{COMMA16} years
+STR_PURCHASE_INFO_RELIABILITY                                   :{BLACK}Max. Reliability: {GOLD}{COMMA8}%
+STR_PURCHASE_INFO_COST                                          :{BLACK}Cost: {GOLD}{CURRENCY}
+STR_PURCHASE_INFO_WEIGHT_CWEIGHT                                :{BLACK}Weight: {GOLD}{COMMA16}t  ({COMMA16}t)
+STR_PURCHASE_INFO_COST_SPEED                                    :{BLACK}Cost: {GOLD}{CURRENCY}{BLACK} Speed: {GOLD}{VELOCITY}
+STR_PURCHASE_INFO_AIRCRAFT_CAPACITY                             :{BLACK}Capacity: {GOLD}{COMMA16} passengers, {COMMA16} bags of mail
--- a/roadveh_gui.c	Sun Jun 05 20:45:04 2005 +0000
+++ b/roadveh_gui.c	Sun Jun 05 23:01:10 2005 +0000
@@ -14,23 +14,46 @@
 #include "engine.h"
 #include "depot.h"
 
-void Set_DPARAM_Road_Veh_Build_Window(uint16 engine_number)
+/**
+ * Draw the purchase info details of road vehicle at a given location.
+ * @param x,y location where to draw the info
+ * @param engine_number the engine of which to draw the info of
+ */
+void DrawRoadVehPurchaseInfo(int x, int y, EngineID engine_number)
 {
 	const RoadVehicleInfo *rvi = RoadVehInfo(engine_number);
-	Engine *e;
+	Engine *e = &_engines[engine_number];
 	YearMonthDay ymd;
+	ConvertDayToYMD(&ymd, e->intro_date);
 
+	/* Purchase cost - Max speed */
 	SetDParam(0, rvi->base_cost * (_price.roadveh_base>>3)>>5);
 	SetDParam(1, rvi->max_speed * 10 >> 5);
-	SetDParam(2, rvi->running_cost * _price.roadveh_running >> 8);
-	SetDParam(4, rvi->capacity);
-	SetDParam(3, _cargoc.names_long_p[rvi->cargo_type]);
+	DrawString(x, y, STR_PURCHASE_INFO_COST_SPEED, 0);
+	y += 10;
 
-	e = &_engines[engine_number];
-	SetDParam(6, e->lifelength);
-	SetDParam(7, e->reliability * 100 >> 16);
-	ConvertDayToYMD(&ymd, e->intro_date);
-	SetDParam(5, ymd.year + 1920);
+	/* Running cost */
+	SetDParam(0, rvi->running_cost * _price.roadveh_running >> 8);
+	DrawString(x, y, STR_PURCHASE_INFO_RUNNINGCOST, 0);
+	y += 10;
+
+	/* Cargo type + capacity */
+	SetDParam(0, _cargoc.names_long_p[rvi->cargo_type]);
+	SetDParam(1, rvi->capacity);
+	SetDParam(2, STR_EMPTY);
+	DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
+	y += 10;
+
+	/* Design date - Life length */
+	SetDParam(0, ymd.year + 1920);
+	SetDParam(1, e->lifelength);
+	DrawString(x, y, STR_PURCHASE_INFO_DESIGNED_LIFE, 0);
+	y += 10;
+
+	/* Reliability */
+	SetDParam(0, e->reliability * 100 >> 16);
+	DrawString(x, y, STR_PURCHASE_INFO_RELIABILITY, 0);
+	y += 10;
 }
 
 static void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection)
@@ -379,9 +402,7 @@
 
 		WP(w,buildtrain_d).sel_engine = selected_id;
 		if (selected_id != -1) {
-			Set_DPARAM_Road_Veh_Build_Window(selected_id);
-
-			DrawString(2, w->widget[4].top + 1, STR_9008_COST_SPEED_RUNNING_COST, 0);
+			DrawRoadVehPurchaseInfo(2, w->widget[4].top + 1, selected_id);
 		}
 	}
 }
--- a/ship_gui.c	Sun Jun 05 20:45:04 2005 +0000
+++ b/ship_gui.c	Sun Jun 05 23:01:10 2005 +0000
@@ -14,24 +14,47 @@
 #include "engine.h"
 #include "depot.h"
 
-void Set_DPARAM_Ship_Build_Window(uint16 engine_number)
+/**
+ * Draw the purchase info details of a ship at a given location.
+ * @param x,y location where to draw the info
+ * @param engine_number the engine of which to draw the info of
+ */
+void DrawShipPurchaseInfo(int x, int y, EngineID engine_number)
 {
 	YearMonthDay ymd;
 	const ShipVehicleInfo *svi = ShipVehInfo(engine_number);
 	Engine *e;
 
+	/* Purchase cost - Max speed */
 	SetDParam(0, svi->base_cost * (_price.ship_base>>3)>>5);
 	SetDParam(1, svi->max_speed * 10 >> 5);
-	SetDParam(2, _cargoc.names_long_p[svi->cargo_type]);
-	SetDParam(3, svi->capacity);
-	SetDParam(4, svi->refittable ? STR_9842_REFITTABLE : STR_EMPTY);
-	SetDParam(5, svi->running_cost * _price.ship_running >> 8);
+	DrawString(x,y, STR_PURCHASE_INFO_COST_SPEED, 0);
+	y += 10;
 
+	/* Cargo type + capacity */
+	SetDParam(0, _cargoc.names_long_p[svi->cargo_type]);
+	SetDParam(1, svi->capacity);
+	SetDParam(2, svi->refittable ? STR_9842_REFITTABLE : STR_EMPTY);
+	DrawString(x,y, STR_PURCHASE_INFO_CAPACITY, 0);
+	y += 10;
+
+	/* Running cost */
+	SetDParam(0, svi->running_cost * _price.ship_running >> 8);
+	DrawString(x,y, STR_PURCHASE_INFO_RUNNINGCOST, 0);
+	y += 10;
+
+	/* Design date - Life length */
 	e = &_engines[engine_number];
-	SetDParam(7, e->lifelength);
-	SetDParam(8, e->reliability * 100 >> 16);
 	ConvertDayToYMD(&ymd, e->intro_date);
-	SetDParam(6, ymd.year + 1920);
+	SetDParam(0, ymd.year + 1920);
+	SetDParam(1, e->lifelength);
+	DrawString(x,y, STR_PURCHASE_INFO_DESIGNED_LIFE, 0);
+	y += 10;
+
+	/* Reliability */
+	SetDParam(0, e->reliability * 100 >> 16);
+	DrawString(x,y, STR_PURCHASE_INFO_RELIABILITY, 0);
+	y += 10;
 }
 
 static void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection)
@@ -338,9 +361,7 @@
 			WP(w,buildtrain_d).sel_engine = selected_id;
 
 			if (selected_id != -1) {
-				Set_DPARAM_Ship_Build_Window(selected_id);
-
-				DrawString(2, w->widget[4].top + 1, STR_980A_COST_SPEED_CAPACITY_RUNNING, 0);
+				DrawShipPurchaseInfo(2, w->widget[4].top + 1, selected_id);
 			}
 		}
 		break;
--- a/train_gui.c	Sun Jun 05 20:45:04 2005 +0000
+++ b/train_gui.c	Sun Jun 05 23:01:10 2005 +0000
@@ -17,43 +17,86 @@
 
 int _traininfo_vehicle_pitch = 0;
 
-void Set_DPARAM_Train_Engine_Build_Window(uint16 engine_number)
+/**
+ * Draw the purchase info details of train engine at a given location.
+ * @param x,y location where to draw the info
+ * @param engine_number the engine of which to draw the info of
+ */
+void DrawTrainEnginePurchaseInfo(int x, int y, EngineID engine_number)
 {
 	const RailVehicleInfo *rvi = RailVehInfo(engine_number);
-	Engine *e;
+	Engine *e = &_engines[engine_number];
 	int multihead = (rvi->flags&RVI_MULTIHEAD?1:0);
 	YearMonthDay ymd;
+	ConvertDayToYMD(&ymd, e->intro_date);
 
-
+	/* Purchase Cost - Engine weight */
 	SetDParam(0, rvi->base_cost * (_price.build_railvehicle >> 3) >> 5);
-	SetDParam(2, rvi->max_speed * 10 >> 4);
-	SetDParam(3, rvi->power << multihead);
 	SetDParam(1, rvi->weight << multihead);
-	SetDParam(4, (rvi->running_cost_base * _price.running_rail[rvi->engclass] >> 8) << multihead);
+	DrawString(x,y, STR_PURCHASE_INFO_COST_WEIGHT, 0);
+	y += 10;
 
-	SetDParam(5, STR_8838_N_A);
+	/* Max speed - Engine power */
+	SetDParam(0, rvi->max_speed * 10 >> 4);
+	SetDParam(1, rvi->power << multihead);
+	DrawString(x,y, STR_PURCHASE_INFO_SPEED_POWER, 0);
+	y += 10;
+
+	/* Running cost */
+	SetDParam(0, (rvi->running_cost_base * _price.running_rail[rvi->engclass] >> 8) << multihead);
+	DrawString(x,y, STR_PURCHASE_INFO_RUNNINGCOST, 0);
+	y += 10;
+
+	/* Cargo type + capacity, or N/A */
+	SetDParam(0, STR_8838_N_A);
+	SetDParam(2, STR_EMPTY);
 	if (rvi->capacity != 0) {
-		SetDParam(6, rvi->capacity << multihead);
-		SetDParam(5, _cargoc.names_long_p[rvi->cargo_type]);
+		SetDParam(0, _cargoc.names_long_p[rvi->cargo_type]);
+		SetDParam(1, rvi->capacity << multihead);
+		SetDParam(2, STR_9842_REFITTABLE);
 	}
+	DrawString(x,y, STR_PURCHASE_INFO_CAPACITY, 0);
+	y += 10;
 
-	e = &_engines[engine_number];
+	/* Design date - Life length */
+	SetDParam(0, ymd.year + 1920);
+	SetDParam(1, e->lifelength);
+	DrawString(x,y, STR_PURCHASE_INFO_DESIGNED_LIFE, 0);
+	y += 10;
 
-	SetDParam(8, e->lifelength);
-	SetDParam(9, e->reliability * 100 >> 16);
-	ConvertDayToYMD(&ymd, e->intro_date);
-	SetDParam(7, ymd.year + 1920);
+	/* Reliability */
+	SetDParam(0, e->reliability * 100 >> 16);
+	DrawString(x,y, STR_PURCHASE_INFO_RELIABILITY, 0);
+	y += 10;
 }
 
-void Set_DPARAM_Train_Car_Build_Window(Window *w, uint16 engine_number)
+/**
+ * Draw the purchase info details of a train wagon at a given location.
+ * @param x,y location where to draw the info
+ * @param engine_number the engine of which to draw the info of
+ */
+void DrawTrainWagonPurchaseInfo(int x, int y, EngineID engine_number)
 {
 	const RailVehicleInfo *rvi = RailVehInfo(engine_number);
+	bool refittable = (_engine_refit_masks[engine_number] != 0);
 
-	SetDParam(0, DoCommandByTile(w->window_number, engine_number, 0, DC_QUERY_COST, CMD_BUILD_RAIL_VEHICLE) );
-	SetDParam(4, rvi->capacity);
-	SetDParam(1, rvi->weight);
-	SetDParam(3, _cargoc.names_long_p[rvi->cargo_type]);
-	SetDParam(2, (_cargoc.weights[rvi->cargo_type] * rvi->capacity >> 4) + rvi->weight);
+	/* Purchase cost */
+	SetDParam(0, (rvi->base_cost * _price.build_railwagon) >> 8);
+	DrawString(x, y, STR_PURCHASE_INFO_COST, 0);
+	y += 10;
+
+	/* Wagon weight - (including cargo) */
+	SetDParam(0, rvi->weight);
+	SetDParam(1, (_cargoc.weights[rvi->cargo_type] * rvi->capacity >> 4) + rvi->weight);
+	DrawString(x, y, STR_PURCHASE_INFO_WEIGHT_CWEIGHT, 0);
+	y += 10;
+
+	/* Cargo type + capacity */
+	SetDParam(0, _cargoc.names_long_p[rvi->cargo_type]);
+	SetDParam(1, rvi->capacity);
+	SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
+	DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, 0);
+	y += 10;
 }
 
 void CcBuildWagon(bool success, uint tile, uint32 p1, uint32 p2)
@@ -173,14 +216,10 @@
 
 				if (!(rvi->flags & RVI_WAGON)) {
 					/* it's an engine */
-					Set_DPARAM_Train_Engine_Build_Window(selected_id);
-
-					DrawString(2, w->widget[4].top + 1, STR_8817_COST_WEIGHT_T_SPEED_POWER, 0);
+					DrawTrainEnginePurchaseInfo(2, w->widget[4].top + 1,selected_id);
 				} else {
 					/* it's a wagon */
-					Set_DPARAM_Train_Car_Build_Window(w, selected_id);
-
-					DrawString(2, w->widget[4].top + 1, STR_8821_COST_WEIGHT_T_T_CAPACITY, 0);
+					DrawTrainWagonPurchaseInfo(2, w->widget[4].top + 1, selected_id);
 				}
 			}
 		}
--- a/vehicle_gui.c	Sun Jun 05 20:45:04 2005 +0000
+++ b/vehicle_gui.c	Sun Jun 05 23:01:10 2005 +0000
@@ -844,12 +844,10 @@
 							if (selected_id[i] != -1) {
 								if (!(RailVehInfo(selected_id[i])->flags & RVI_WAGON)) {
 									/* it's an engine */
-									Set_DPARAM_Train_Engine_Build_Window(selected_id[i]);
-									DrawString(2 + offset, 15 + (14 * w->vscroll.cap), STR_8817_COST_WEIGHT_T_SPEED_POWER, 0);
+									DrawTrainEnginePurchaseInfo(2 + offset, 15 + (14 * w->vscroll.cap), selected_id[i]);
 								} else {
 									/* it's a wagon. Train cars are not replaced with the current GUI, but this code is ready for newgrf if anybody adds that*/
-									Set_DPARAM_Train_Car_Build_Window(w, selected_id[i]);
-									DrawString(2 + offset, 15 + (14 * w->vscroll.cap), STR_8821_COST_WEIGHT_T_T_CAPACITY, 0);
+									DrawTrainWagonPurchaseInfo(2 + offset, 15 + (14 * w->vscroll.cap), selected_id[i]);
 								}
 							}
 						}
@@ -858,11 +856,9 @@
 
 					case VEH_Road: {
 						if (selected_id[0] != -1) {
-							Set_DPARAM_Road_Veh_Build_Window(selected_id[0]);
-							DrawString(2, 15 + (14 * w->vscroll.cap), STR_9008_COST_SPEED_RUNNING_COST, 0);
+							DrawRoadVehPurchaseInfo(2, 15 + (14 * w->vscroll.cap), selected_id[0]);
 							if (selected_id[1] != -1) {
-								Set_DPARAM_Road_Veh_Build_Window(selected_id[1]);
-								DrawString(2 + 228, 15 + (14 * w->vscroll.cap), STR_9008_COST_SPEED_RUNNING_COST, 0);
+								DrawRoadVehPurchaseInfo(2 + 228, 15 + (14 * w->vscroll.cap), selected_id[1]);
 							}
 						}
 						break;
@@ -870,11 +866,9 @@
 
 					case VEH_Ship: {
 						if (selected_id[0] != -1) {
-							Set_DPARAM_Ship_Build_Window(selected_id[0]);
-							DrawString(2, 15 + (24 * w->vscroll.cap), STR_980A_COST_SPEED_CAPACITY_RUNNING, 0);
+							DrawShipPurchaseInfo(2, 15 + (24 * w->vscroll.cap), selected_id[0]);
 							if (selected_id[1] != -1) {
-								Set_DPARAM_Ship_Build_Window(selected_id[1]);
-								DrawString(2 + 228, 15 + (24 * w->vscroll.cap), STR_980A_COST_SPEED_CAPACITY_RUNNING, 0);
+								DrawShipPurchaseInfo(2 + 228, 15 + (24 * w->vscroll.cap), selected_id[1]);
 							}
 						}
 						break;
@@ -882,11 +876,9 @@
 
 					case VEH_Aircraft: {
 						if (selected_id[0] != -1) {
-							Set_DPARAM_Aircraft_Build_Window(selected_id[0]);
-							DrawString(2, 15 + (24 * w->vscroll.cap), STR_A007_COST_SPEED_CAPACITY_PASSENGERS, 0);
+							DrawAircraftPurchaseInfo(2, 15 + (24 * w->vscroll.cap), selected_id[0]);
 							if (selected_id[1] != -1) {
-								Set_DPARAM_Aircraft_Build_Window(selected_id[1]);
-								DrawString(2 + 228, 15 + (24 * w->vscroll.cap), STR_A007_COST_SPEED_CAPACITY_PASSENGERS, 0);
+								DrawAircraftPurchaseInfo(2 + 228, 15 + (24 * w->vscroll.cap), selected_id[1]);
 							}
 						}
 						break;
--- a/vehicle_gui.h	Sun Jun 05 20:45:04 2005 +0000
+++ b/vehicle_gui.h	Sun Jun 05 23:01:10 2005 +0000
@@ -70,11 +70,11 @@
 
 void ShowReplaceVehicleWindow(byte vehicletype);
 
-void Set_DPARAM_Train_Engine_Build_Window(uint16 engine_number);
-void Set_DPARAM_Train_Car_Build_Window(Window *w, uint16 engine_number);
-void Set_DPARAM_Road_Veh_Build_Window(uint16 engine_number);
-void Set_DPARAM_Aircraft_Build_Window(uint16 engine_number);
-void Set_DPARAM_Ship_Build_Window(uint16 engine_number);
+void DrawTrainEnginePurchaseInfo(int x, int y, EngineID engine_number);
+void DrawTrainWagonPurchaseInfo(int x, int y, EngineID engine_number);
+void DrawRoadVehPurchaseInfo(int x, int y, EngineID engine_number);
+void DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number);
+void DrawShipPurchaseInfo(int x, int y, EngineID engine_number);
 
 
 #endif /* VEHICLE_GUI_H */