|
|
|
@ -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;
|
|
|
|
|