mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 18:40:29 +00:00
(svn r21095) -Codechange: Use a function to convert aircraft speed to old units.
This commit is contained in:
parent
609e6dae3f
commit
cfac2ced69
@ -91,6 +91,7 @@ struct Aircraft : public SpecializedVehicle<Aircraft, VEH_AIRCRAFT> {
|
||||
SpriteID GetImage(Direction direction) const;
|
||||
int GetDisplaySpeed() const { return this->cur_speed; }
|
||||
int GetDisplayMaxSpeed() const { return this->max_speed; }
|
||||
int GetSpeedOldUnits() const { return this->max_speed * 10 / 128; }
|
||||
Money GetRunningCost() const;
|
||||
bool IsInDepot() const { return (this->vehstatus & VS_HIDDEN) != 0 && IsHangarTile(this->tile); }
|
||||
bool Tick();
|
||||
|
@ -1231,7 +1231,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left)
|
||||
case VEH_TRAIN: t = Train::From(u)->tcache.cached_max_speed; break;
|
||||
case VEH_ROAD: t = u->max_speed / 2; break;
|
||||
case VEH_SHIP: t = u->max_speed; break;
|
||||
case VEH_AIRCRAFT: t = u->max_speed * 10 / 128; break; // convert to old units
|
||||
case VEH_AIRCRAFT: t = Aircraft::From(u)->GetSpeedOldUnits(); break; // Convert to old units.
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
|
||||
|
@ -715,8 +715,20 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
|
||||
case 0x17: return v->tick_counter;
|
||||
case 0x18:
|
||||
case 0x19: {
|
||||
uint max_speed = v->type == VEH_TRAIN ? Train::From(v)->tcache.cached_max_speed : v->max_speed;
|
||||
if (v->type == VEH_AIRCRAFT) max_speed = max_speed * 10 / 128;
|
||||
uint max_speed;
|
||||
switch (v->type) {
|
||||
case VEH_TRAIN:
|
||||
max_speed = Train::From(v)->tcache.cached_max_speed;
|
||||
break;
|
||||
|
||||
case VEH_AIRCRAFT:
|
||||
max_speed = Aircraft::From(v)->GetSpeedOldUnits(); // Convert to old units.
|
||||
break;
|
||||
|
||||
default:
|
||||
max_speed = v->max_speed;
|
||||
break;
|
||||
}
|
||||
return (variable - 0x80) == 0x18 ? max_speed : GB(max_speed, 8, 8);
|
||||
}
|
||||
case 0x1A: return v->x_pos;
|
||||
|
Loading…
Reference in New Issue
Block a user