(svn r12144) -Codechange: Adjust aircraft slowing algorithm so that very fast
authorpeter1138
Fri, 15 Feb 2008 13:28:13 +0000
changeset 9062 cfef22f7dd66
parent 9061 fe9f2555d02e
child 9063 71e5e4283b4b
(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.
src/aircraft_cmd.cpp
--- a/src/aircraft_cmd.cpp	Fri Feb 15 11:02:50 2008 +0000
+++ b/src/aircraft_cmd.cpp	Fri Feb 15 13:28:13 2008 +0000
@@ -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);