(svn r25115) -Fix (r8973) [FS#5492-ish]: [NewGRF] Acceleration of NewGRF aircraft was too fast, while acceleration of default aircraft was way too slow. I.e. choose wisely who to let write the software for your orbiter.

This commit is contained in:
frosch
2013-03-22 21:27:13 +00:00
parent 9eab26a1a1
commit 30f601d685
4 changed files with 23 additions and 11 deletions

View File

@@ -598,7 +598,14 @@ enum AircraftSpeedLimits {
*/
static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE, bool hard_limit = true)
{
uint spd = v->acceleration * 16;
/**
* 'acceleration' has the unit 3/8 mph/tick. This function is called twice per tick.
* So the speed amount we need to accelerate is:
* acceleration * 3 / 16 mph = acceleration * 3 / 16 * 16 / 10 km-ish/h
* = acceleration * 3 / 10 * 256 * (km-ish/h / 256)
* ~ acceleration * 77 (km-ish/h / 256)
*/
uint spd = v->acceleration * 77;
byte t;
/* Adjust speed limits by plane speed factor to prevent taxiing