# HG changeset patch # User rubidium # Date 1188161002 0 # Node ID ce69b7781d4a9018f42131c5a26fd65b3316658d # Parent dff055fff8518958014fc90840fec8537c13ac95 (svn r10984) -Codechange: unify the way one can get the current speed in the same forwat so we can display it. diff -r dff055fff851 -r ce69b7781d4a src/aircraft.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(); }; diff -r dff055fff851 -r ce69b7781d4a src/aircraft_gui.cpp --- 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; } diff -r dff055fff851 -r ce69b7781d4a src/roadveh.h --- 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(); }; diff -r dff055fff851 -r ce69b7781d4a src/roadveh_gui.cpp --- 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; } diff -r dff055fff851 -r ce69b7781d4a src/ship.h --- 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(); }; diff -r dff055fff851 -r ce69b7781d4a src/ship_gui.cpp --- 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; } diff -r dff055fff851 -r ce69b7781d4a src/train.h --- 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(); }; diff -r dff055fff851 -r ce69b7781d4a src/train_cmd.cpp --- 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 */ diff -r dff055fff851 -r ce69b7781d4a src/train_gui.cpp --- 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; } diff -r dff055fff851 -r ce69b7781d4a src/vehicle.h --- 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() {};