From b26b8b5b2abbeb29bc7dffb71198405c742b1aee Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 7 Nov 2010 13:35:12 +0000 Subject: [PATCH] (svn r21107) -Fix: Don't use the maximum track speed where the maximum vehicle speed is meant. --- src/ground_vehicle.cpp | 3 ++- src/pathfinder/yapf/yapf_costrail.hpp | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ground_vehicle.cpp b/src/ground_vehicle.cpp index 66e5b99331..142353f7e3 100644 --- a/src/ground_vehicle.cpp +++ b/src/ground_vehicle.cpp @@ -47,8 +47,9 @@ void GroundVehicle::PowerChanged() /* If air drag is set to zero (default), the resulting air drag coefficient is dependent on max speed. */ 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. */ - 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 { /* 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; diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index fe025ee267..1de6eba785 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -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 max_speed = tf->GetSpeedLimit(&min_speed); - if (max_speed < v->max_speed) { - extra_cost += YAPF_TILE_LENGTH * (v->max_speed - max_speed) * (4 + tf->m_tiles_skipped) / v->max_speed; + int max_veh_speed = v->GetDisplayMaxSpeed(); + 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) { - extra_cost += YAPF_TILE_LENGTH * (min_speed - v->max_speed); + if (min_speed > max_veh_speed) { + extra_cost += YAPF_TILE_LENGTH * (min_speed - max_veh_speed); } }