src/aircraft_cmd.cpp
branchNewGRF_ports
changeset 6860 afbf3eb7d265
parent 6857 5012c47e576b
child 6863 13335bf10adb
--- a/src/aircraft_cmd.cpp	Wed Aug 22 21:57:33 2007 +0000
+++ b/src/aircraft_cmd.cpp	Thu Aug 23 20:04:08 2007 +0000
@@ -552,8 +552,10 @@
 
 	if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR;
 
-	/* cannot stop airplane when in flight, or when taking off / landing */
-	if (v->u.air.state >= TAKEOFF && v->u.air.state <= FLYING)
+	/* Cannot stop airplane when in any of the flight states: FLYING, STARTTAKEOFF, ENDTAKEOFF, LANDING, ENDLANDING
+	 * for all command groups (ie. state & 0x07 returns current state ignoring group)
+	 */
+	if ((v->u.air.state >= HANGAR) && ((v->u.air.state == FLYING) || ((v->u.air.state & 0x07) >= 2)))
 		return_cmd_error(STR_A017_AIRCRAFT_IS_IN_FLIGHT);
 
 	/* Check if this aircraft can be started/stopped. The callback will fail or