mirror of https://github.com/OpenTTD/OpenTTD
(svn r21107) -Fix: Don't use the maximum track speed where the maximum vehicle speed is meant.
parent
2d801c64a1
commit
b26b8b5b2a
|
@ -47,8 +47,9 @@ void GroundVehicle<T, Type>::PowerChanged()
|
||||||
|
|
||||||
/* If air drag is set to zero (default), the resulting air drag coefficient is dependent on max speed. */
|
/* If air drag is set to zero (default), the resulting air drag coefficient is dependent on max speed. */
|
||||||
if (air_drag_value == 0) {
|
if (air_drag_value == 0) {
|
||||||
|
uint16 max_speed = v->GetDisplayMaxSpeed();
|
||||||
/* Simplification of the method used in TTDPatch. It uses <= 10 to change more steadily from 128 to 196. */
|
/* Simplification of the method used in TTDPatch. It uses <= 10 to change more steadily from 128 to 196. */
|
||||||
air_drag = (max_track_speed <= 10) ? 192 : max(2048 / max_track_speed, 1);
|
air_drag = (max_speed <= 10) ? 192 : max(2048 / max_speed, 1);
|
||||||
} else {
|
} else {
|
||||||
/* According to the specs, a value of 0x01 in the air drag property means "no air drag". */
|
/* According to the specs, a value of 0x01 in the air drag property means "no air drag". */
|
||||||
air_drag = (air_drag_value == 1) ? 0 : air_drag_value;
|
air_drag = (air_drag_value == 1) ? 0 : air_drag_value;
|
||||||
|
|
|
@ -466,11 +466,12 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
|
||||||
{
|
{
|
||||||
int min_speed = 0;
|
int min_speed = 0;
|
||||||
int max_speed = tf->GetSpeedLimit(&min_speed);
|
int max_speed = tf->GetSpeedLimit(&min_speed);
|
||||||
if (max_speed < v->max_speed) {
|
int max_veh_speed = v->GetDisplayMaxSpeed();
|
||||||
extra_cost += YAPF_TILE_LENGTH * (v->max_speed - max_speed) * (4 + tf->m_tiles_skipped) / v->max_speed;
|
if (max_speed < max_veh_speed) {
|
||||||
|
extra_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + tf->m_tiles_skipped) / max_veh_speed;
|
||||||
}
|
}
|
||||||
if (min_speed > v->max_speed) {
|
if (min_speed > max_veh_speed) {
|
||||||
extra_cost += YAPF_TILE_LENGTH * (min_speed - v->max_speed);
|
extra_cost += YAPF_TILE_LENGTH * (min_speed - max_veh_speed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue