mirror of https://github.com/OpenTTD/OpenTTD
(svn r7421) -Fix (r2475): Changed "kick off" acceleration resulted in only a small amount of power being applied whilst moving off and then double the power at 1 mph. This resulted in a perceived delay before trains moved. Fix this by applying the full power of the engine (or the kick off, whichever is greater). Essay over.
parent
1bf18df180
commit
1878d1453d
|
@ -400,7 +400,9 @@ static int GetTrainAcceleration(Vehicle *v, bool mode)
|
||||||
resistance += incl;
|
resistance += incl;
|
||||||
resistance *= 4; //[N]
|
resistance *= 4; //[N]
|
||||||
|
|
||||||
if (speed > 0) {
|
/* Due to the mph to m/s conversion below, at speeds below 3 mph the force is
|
||||||
|
* actually double the train's power */
|
||||||
|
if (speed > 2) {
|
||||||
switch (v->u.rail.railtype) {
|
switch (v->u.rail.railtype) {
|
||||||
case RAILTYPE_RAIL:
|
case RAILTYPE_RAIL:
|
||||||
case RAILTYPE_ELECTRIC:
|
case RAILTYPE_ELECTRIC:
|
||||||
|
@ -416,7 +418,7 @@ static int GetTrainAcceleration(Vehicle *v, bool mode)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//"kickoff" acceleration
|
//"kickoff" acceleration
|
||||||
force = (mass * 8) + resistance;
|
force = max(power, (mass * 8) + resistance);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (force <= 0) force = 10000;
|
if (force <= 0) force = 10000;
|
||||||
|
|
Loading…
Reference in New Issue