summaryrefslogtreecommitdiff
path: root/vehicle_gui.c
diff options
context:
space:
mode:
authorcelestar <celestar@openttd.org>2005-01-26 12:51:04 +0000
committercelestar <celestar@openttd.org>2005-01-26 12:51:04 +0000
commitefcd72a2efdc04c87e4ea579355a446b65c0f9fb (patch)
tree784d57ba7b91c2bfec65ea76c4fafdbd9668f83a /vehicle_gui.c
parent5665d51bb31bd2c8860e9b48989fa145ad01e193 (diff)
downloadopenttd-efcd72a2efdc04c87e4ea579355a446b65c0f9fb.tar.xz
(svn r1681) -Feature: New realistic acceleration.
This will make things more difficult as narrow curves and depots impose rather strict speed limits. Feedback welcome For those who don't like low-speed curves: Switch it off
Diffstat (limited to 'vehicle_gui.c')
-rw-r--r--vehicle_gui.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/vehicle_gui.c b/vehicle_gui.c
index c4e85bfe7..f212e9b90 100644
--- a/vehicle_gui.c
+++ b/vehicle_gui.c
@@ -299,7 +299,20 @@ int CDECL VehicleMaxSpeedSorter(const void *a, const void *b)
{
const Vehicle *va = GetVehicle((*(const SortStruct*)a).index);
const Vehicle *vb = GetVehicle((*(const SortStruct*)b).index);
- int r = va->max_speed - vb->max_speed;
+ int max_speed_a = 0xFFFF, max_speed_b = 0xFFFF;
+ int r;
+ const Vehicle *ua = va, *ub = vb;
+ do {
+ if (RailVehInfo(ua->engine_type)->max_speed != 0)
+ max_speed_a = min(max_speed_a, RailVehInfo(ua->engine_type)->max_speed);
+ } while ((ua = ua->next) != NULL);
+
+ do {
+ if (RailVehInfo(ub->engine_type)->max_speed != 0)
+ max_speed_b = min(max_speed_b, RailVehInfo(ub->engine_type)->max_speed);
+ } while ((ub = ub->next) != NULL);
+
+ r = max_speed_a - max_speed_b;
VEHICLEUNITNUMBERSORTER(r, va, vb);