summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-08-26 20:43:22 +0000
committerrubidium <rubidium@openttd.org>2007-08-26 20:43:22 +0000
commit91d18ebd17ef4f71e0663ee7affcb7ab6e4747f6 (patch)
tree774788b69d486a12f8c1135fa3ca8e087d508d2a
parent39f17c9de45b8449961d0165e922186ed8b7c2ef (diff)
downloadopenttd-91d18ebd17ef4f71e0663ee7affcb7ab6e4747f6.tar.xz
(svn r10984) -Codechange: unify the way one can get the current speed in the same forwat so we can display it.
-rw-r--r--src/aircraft.h1
-rw-r--r--src/aircraft_gui.cpp6
-rw-r--r--src/roadveh.h1
-rw-r--r--src/roadveh_gui.cpp6
-rw-r--r--src/ship.h1
-rw-r--r--src/ship_gui.cpp6
-rw-r--r--src/train.h1
-rw-r--r--src/train_cmd.cpp2
-rw-r--r--src/train_gui.cpp12
-rw-r--r--src/vehicle.h6
10 files changed, 26 insertions, 16 deletions
diff --git a/src/aircraft.h b/src/aircraft.h
index ccf9a242b..8c132ac02 100644
--- a/src/aircraft.h
+++ b/src/aircraft.h
@@ -137,6 +137,7 @@ struct Aircraft : public Vehicle {
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();
};
diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp
index c6903e93d..20828d67c 100644
--- a/src/aircraft_gui.cpp
+++ b/src/aircraft_gui.cpp
@@ -283,14 +283,14 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e)
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 @@ static void AircraftViewWndProc(Window *w, WindowEvent *e)
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;
}
diff --git a/src/roadveh.h b/src/roadveh.h
index 95a4f2470..8764d8125 100644
--- a/src/roadveh.h
+++ b/src/roadveh.h
@@ -82,6 +82,7 @@ struct RoadVehicle : public Vehicle {
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();
};
diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp
index 0cfd98f35..f885df017 100644
--- a/src/roadveh_gui.cpp
+++ b/src/roadveh_gui.cpp
@@ -297,14 +297,14 @@ static void RoadVehViewWndProc(Window *w, WindowEvent *e)
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 @@ static void RoadVehViewWndProc(Window *w, WindowEvent *e)
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;
}
diff --git a/src/ship.h b/src/ship.h
index 304872758..d60a4521d 100644
--- a/src/ship.h
+++ b/src/ship.h
@@ -47,6 +47,7 @@ struct Ship: public Vehicle {
void PlayLeaveStationSound() const;
bool IsPrimaryVehicle() const { return true; }
int GetImage(Direction direction) const;
+ int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
void Tick();
};
diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp
index fcdcfc24a..44497a08f 100644
--- a/src/ship_gui.cpp
+++ b/src/ship_gui.cpp
@@ -219,14 +219,14 @@ static void ShipViewWndProc(Window *w, WindowEvent *e)
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 @@ static void ShipViewWndProc(Window *w, WindowEvent *e)
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;
}
diff --git a/src/train.h b/src/train.h
index 8d16a988e..f33803781 100644
--- a/src/train.h
+++ b/src/train.h
@@ -273,6 +273,7 @@ struct Train : public Vehicle {
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();
};
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index f399fae58..3459844c7 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -301,7 +301,7 @@ static bool TrainShouldStop(const Vehicle* v, TileIndex tile)
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 */
diff --git a/src/train_gui.cpp b/src/train_gui.cpp
index 1c1c731e0..b61c1c598 100644
--- a/src/train_gui.cpp
+++ b/src/train_gui.cpp
@@ -179,14 +179,14 @@ static void TrainViewWndProc(Window *w, WindowEvent *e)
} 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 @@ static void TrainViewWndProc(Window *w, WindowEvent *e)
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 @@ static void TrainViewWndProc(Window *w, WindowEvent *e)
} 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 @@ static void TrainViewWndProc(Window *w, WindowEvent *e)
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;
}
diff --git a/src/vehicle.h b/src/vehicle.h
index 63f4203ee..cb0c78809 100644
--- a/src/vehicle.h
+++ b/src/vehicle.h
@@ -415,6 +415,12 @@ struct Vehicle : PoolItem<Vehicle, VehicleID, &_Vehicle_pool> {
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() {};