(svn r10984) -Codechange: unify the way one can get the current speed in the same forwat so we can display it.
authorrubidium
Sun, 26 Aug 2007 20:43:22 +0000
changeset 7973 ce69b7781d4a
parent 7972 dff055fff851
child 7974 6fcdebd75c19
(svn r10984) -Codechange: unify the way one can get the current speed in the same forwat so we can display it.
src/aircraft.h
src/aircraft_gui.cpp
src/roadveh.h
src/roadveh_gui.cpp
src/ship.h
src/ship_gui.cpp
src/train.h
src/train_cmd.cpp
src/train_gui.cpp
src/vehicle.h
--- a/src/aircraft.h	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/aircraft.h	Sun Aug 26 20:43:22 2007 +0000
@@ -137,6 +137,7 @@
 	WindowClass GetVehicleListWindowClass() const { return WC_AIRCRAFT_LIST; }
 	bool IsPrimaryVehicle() const { return IsNormalAircraft(this); }
 	int GetImage(Direction direction) const;
+	int GetDisplaySpeed() const { return this->cur_speed * 10 / 16; }
 	void Tick();
 };
 
--- a/src/aircraft_gui.cpp	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/aircraft_gui.cpp	Sun Aug 26 20:43:22 2007 +0000
@@ -283,14 +283,14 @@
 			switch (v->current_order.type) {
 			case OT_GOTO_STATION: {
 				SetDParam(0, v->current_order.dest);
-				SetDParam(1, v->cur_speed * 10 / 16);
+				SetDParam(1, v->GetDisplaySpeed());
 				str = STR_HEADING_FOR_STATION + _patches.vehicle_speed;
 			} break;
 
 			case OT_GOTO_DEPOT: {
 				/* Aircrafts always go to a station, even if you say depot */
 				SetDParam(0, v->current_order.dest);
-				SetDParam(1, v->cur_speed * 10 / 16);
+				SetDParam(1, v->GetDisplaySpeed());
 				if (HASBIT(v->current_order.flags, OFB_HALT_IN_DEPOT) && !HASBIT(v->current_order.flags, OFB_PART_OF_ORDERS)) {
 					str = STR_HEADING_FOR_HANGAR + _patches.vehicle_speed;
 				} else {
@@ -305,7 +305,7 @@
 			default:
 				if (v->num_orders == 0) {
 					str = STR_NO_ORDERS + _patches.vehicle_speed;
-					SetDParam(0, v->cur_speed * 10 / 16);
+					SetDParam(0, v->GetDisplaySpeed());
 				} else {
 					str = STR_EMPTY;
 				}
--- a/src/roadveh.h	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/roadveh.h	Sun Aug 26 20:43:22 2007 +0000
@@ -82,6 +82,7 @@
 	bool IsPrimaryVehicle() const { return IsRoadVehFront(this); }
 	bool HasFront() const { return true; }
 	int GetImage(Direction direction) const;
+	int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
 	void Tick();
 };
 
--- a/src/roadveh_gui.cpp	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/roadveh_gui.cpp	Sun Aug 26 20:43:22 2007 +0000
@@ -297,14 +297,14 @@
 			switch (v->current_order.type) {
 			case OT_GOTO_STATION: {
 				SetDParam(0, v->current_order.dest);
-				SetDParam(1, v->cur_speed * 10 / 32);
+				SetDParam(1, v->GetDisplaySpeed());
 				str = STR_HEADING_FOR_STATION + _patches.vehicle_speed;
 			} break;
 
 			case OT_GOTO_DEPOT: {
 				Depot *depot = GetDepot(v->current_order.dest);
 				SetDParam(0, depot->town_index);
-				SetDParam(1, v->cur_speed * 10 / 32);
+				SetDParam(1, v->GetDisplaySpeed());
 				if (HASBIT(v->current_order.flags, OFB_HALT_IN_DEPOT) && !HASBIT(v->current_order.flags, OFB_PART_OF_ORDERS)) {
 					str = STR_HEADING_FOR_ROAD_DEPOT + _patches.vehicle_speed;
 				} else {
@@ -320,7 +320,7 @@
 			default:
 				if (v->num_orders == 0) {
 					str = STR_NO_ORDERS + _patches.vehicle_speed;
-					SetDParam(0, v->cur_speed * 10 / 32);
+					SetDParam(0, v->GetDisplaySpeed());
 				} else {
 					str = STR_EMPTY;
 				}
--- a/src/ship.h	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/ship.h	Sun Aug 26 20:43:22 2007 +0000
@@ -47,6 +47,7 @@
 	void PlayLeaveStationSound() const;
 	bool IsPrimaryVehicle() const { return true; }
 	int GetImage(Direction direction) const;
+	int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
 	void Tick();
 };
 
--- a/src/ship_gui.cpp	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/ship_gui.cpp	Sun Aug 26 20:43:22 2007 +0000
@@ -219,14 +219,14 @@
 				switch (v->current_order.type) {
 					case OT_GOTO_STATION: {
 						SetDParam(0, v->current_order.dest);
-						SetDParam(1, v->cur_speed * 10 / 32);
+						SetDParam(1, v->GetDisplaySpeed());
 						str = STR_HEADING_FOR_STATION + _patches.vehicle_speed;
 					} break;
 
 					case OT_GOTO_DEPOT: {
 						Depot *depot = GetDepot(v->current_order.dest);
 						SetDParam(0, depot->town_index);
-						SetDParam(1, v->cur_speed * 10 / 32);
+						SetDParam(1, v->GetDisplaySpeed());
 						if (HASBIT(v->current_order.flags, OFB_HALT_IN_DEPOT) && !HASBIT(v->current_order.flags, OFB_PART_OF_ORDERS)) {
 							str = STR_HEADING_FOR_SHIP_DEPOT + _patches.vehicle_speed;
 						} else {
@@ -242,7 +242,7 @@
 					default:
 						if (v->num_orders == 0) {
 							str = STR_NO_ORDERS + _patches.vehicle_speed;
-							SetDParam(0, v->cur_speed * 10 / 32);
+							SetDParam(0, v->GetDisplaySpeed());
 						} else {
 							str = STR_EMPTY;
 						}
--- a/src/train.h	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/train.h	Sun Aug 26 20:43:22 2007 +0000
@@ -273,6 +273,7 @@
 	bool IsPrimaryVehicle() const { return IsFrontEngine(this); }
 	bool HasFront() const { return true; }
 	int GetImage(Direction direction) const;
+	int GetDisplaySpeed() const { return this->cur_speed * 10 / 16; }
 	void Tick();
 };
 
--- a/src/train_cmd.cpp	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/train_cmd.cpp	Sun Aug 26 20:43:22 2007 +0000
@@ -301,7 +301,7 @@
 static int GetTrainAcceleration(Vehicle *v, bool mode)
 {
 	int max_speed = 2000;
-	int speed = v->cur_speed * 10 / 16; //[mph]
+	int speed = v->GetDisplaySpeed(); //[mph]
 	int curvecount[2] = {0, 0};
 
 	/*first find the curve speed limit */
--- a/src/train_gui.cpp	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/train_gui.cpp	Sun Aug 26 20:43:22 2007 +0000
@@ -179,14 +179,14 @@
 		} else if (v->breakdown_ctr == 1) {
 			str = STR_885C_BROKEN_DOWN;
 		} else if (v->vehstatus & VS_STOPPED) {
-			if (v->u.rail.last_speed == 0) {
+			if (v->cur_speed == 0) {
 				if (v->u.rail.cached_power == 0) {
 					str = STR_TRAIN_NO_POWER;
 				} else {
 					str = STR_8861_STOPPED;
 				}
 			} else {
-				SetDParam(0, v->u.rail.last_speed * 10 / 16);
+				SetDParam(0, v->GetDisplaySpeed());
 				str = STR_TRAIN_STOPPING + _patches.vehicle_speed;
 			}
 		} else {
@@ -194,7 +194,7 @@
 			case OT_GOTO_STATION: {
 				str = STR_HEADING_FOR_STATION + _patches.vehicle_speed;
 				SetDParam(0, v->current_order.dest);
-				SetDParam(1, v->u.rail.last_speed * 10 / 16);
+				SetDParam(1, v->GetDisplaySpeed());
 			} break;
 
 			case OT_GOTO_DEPOT: {
@@ -205,7 +205,7 @@
 				} else {
 					str = STR_HEADING_FOR_TRAIN_DEPOT_SERVICE + _patches.vehicle_speed;
 				}
-				SetDParam(1, v->u.rail.last_speed * 10 / 16);
+				SetDParam(1, v->GetDisplaySpeed());
 			} break;
 
 			case OT_LOADING:
@@ -216,14 +216,14 @@
 			case OT_GOTO_WAYPOINT: {
 				SetDParam(0, v->current_order.dest);
 				str = STR_HEADING_FOR_WAYPOINT + _patches.vehicle_speed;
-				SetDParam(1, v->u.rail.last_speed * 10 / 16);
+				SetDParam(1, v->GetDisplaySpeed());
 				break;
 			}
 
 			default:
 				if (v->num_orders == 0) {
 					str = STR_NO_ORDERS + _patches.vehicle_speed;
-					SetDParam(0, v->u.rail.last_speed * 10 / 16);
+					SetDParam(0, v->GetDisplaySpeed());
 				} else {
 					str = STR_EMPTY;
 				}
--- a/src/vehicle.h	Sun Aug 26 20:16:02 2007 +0000
+++ b/src/vehicle.h	Sun Aug 26 20:43:22 2007 +0000
@@ -415,6 +415,12 @@
 	virtual int GetImage(Direction direction) const { return 0; }
 
 	/**
+	 * Gets the speed in mph that can be sent into SetDParam for string processing.
+	 * @return the vehicle's speed
+	 */
+	virtual int GetDisplaySpeed() const { return 0; }
+
+	/**
 	 * Calls the tick handler of the vehicle
 	 */
 	virtual void Tick() {};