changeset 8566:6d3f10e5fe7f draft

(svn r12144) -Codechange: Adjust aircraft slowing algorithm so that very fast aircraft slow down more rapidly than slower aircraft. This prevents them from reaching the end of the runway at high speed, and also stops slow aircraft from slowing down too much at the start of the runway.
author peter1138 <peter1138@openttd.org>
date Fri, 15 Feb 2008 13:28:13 +0000
parents 1c6548020275
children fde4c44f46c2
files src/aircraft_cmd.cpp
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/aircraft_cmd.cpp
+++ b/src/aircraft_cmd.cpp
@@ -933,7 +933,13 @@
 
 	v->subspeed = (t=v->subspeed) + (byte)spd;
 
-	if (!hard_limit && v->cur_speed > speed_limit) speed_limit = v->cur_speed - (v->cur_speed / 48);
+	/* Aircraft's current speed is used twice so that very fast planes are
+	 * forced to slow down rapidly in the short distance needed. The magic
+	 * value 16384 was determined to give similar results to the old speed/48
+	 * method at slower speeds. This also results in less reduction at slow
+	 * speeds to that aircraft do not get to taxi speed straight after
+	 * touchdown. */
+	if (!hard_limit && v->cur_speed > speed_limit) speed_limit = v->cur_speed - max(1, (v->cur_speed * v->cur_speed) / 16384);
 
 	spd = min(v->cur_speed + (spd >> 8) + (v->subspeed < t), speed_limit);