Mercurial > hg > openttd
changeset 17173:587b92c2457c draft
(svn r21912) -Codechange: let road vehicles use gcache.last_speed/SetLastSpeed as well
author | rubidium <rubidium@openttd.org> |
---|---|
date | Wed, 26 Jan 2011 17:31:44 +0000 (2011-01-26) |
parents | 679a25d71a9d |
children | 8e48438edd69 |
files | src/roadveh.h src/roadveh_cmd.cpp src/saveload/vehicle_sl.cpp |
diffstat | 3 files changed, 4 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/roadveh.h +++ b/src/roadveh.h @@ -104,7 +104,7 @@ ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; } bool IsPrimaryVehicle() const { return this->IsFrontEngine(); } SpriteID GetImage(Direction direction) const; - int GetDisplaySpeed() const { return this->cur_speed / 2; } + int GetDisplaySpeed() const { return this->gcache.last_speed / 2; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; } Money GetRunningCost() const; int GetDisplayImageWidth(Point *offset = NULL) const;
--- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -651,7 +651,6 @@ */ static int RoadVehAccelerate(RoadVehicle *v) { - uint oldspeed = v->cur_speed; uint accel = v->overtaking != 0 ? 256 : 0; accel += (_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL) ? 256 : v->GetAcceleration(); uint spd = v->subspeed + accel; @@ -673,13 +672,6 @@ first->cur_speed = min(first->cur_speed, GetBridgeSpec(GetBridgeType(v->tile))->speed * 2); } - /* Update statusbar only if speed has changed to save CPU time */ - if (oldspeed != v->cur_speed) { - if (_settings_client.gui.vehicle_speed) { - SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH); - } - } - int scaled_spd = v->GetAdvanceSpeed(spd); scaled_spd += v->progress; @@ -1497,6 +1489,8 @@ if (j >= adv_spd && RoadVehCheckTrainCrash(v)) break; } + v->SetLastSpeed(); + for (RoadVehicle *u = v; u != NULL; u = u->Next()) { if ((u->vehstatus & VS_HIDDEN) != 0) continue;
--- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -345,6 +345,7 @@ case VEH_ROAD: { RoadVehicle *rv = RoadVehicle::From(v); if (rv->IsFrontEngine()) { + rv->gcache.last_speed = rv->cur_speed; // update displayed road vehicle speed RoadVehUpdateCache(rv); if (_settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL) { rv->CargoChanged();