--- 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