diff -r 23785f2ffa5d src/aircraft_cmd.cpp
--- a/src/aircraft_cmd.cpp Thu Jan 25 14:47:43 2018 +0000
+++ b/src/aircraft_cmd.cpp Thu Jan 25 15:31:38 2018 +0000
@@ -133,6 +133,9 @@
/* don't crash the plane if we know it can't land at the airport */
if ((afc->flags & AirportFTAClass::SHORT_STRIP) && (avi->subtype & AIR_FAST) && !_cheats.no_jetcrash.value) continue;
+ /* the plane won't land at any helicopter station */
+ if (!(afc->flags & AirportFTAClass::AIRPLANES) && (avi->subtype & AIR_CTOL)) continue;
+
/* v->tile can't be used here, when aircraft is flying v->tile is set to 0 */
uint distance = DistanceSquare(vtile, st->airport.tile);
if (v->acache.cached_max_range_sqr != 0) {
@@ -374,7 +377,7 @@
{
const Station *st = GetTargetAirportIfValid(this);
/* If the station is not a valid airport or if it has no hangars */
- if (st == NULL || !st->airport.HasHangar()) {
+ if (st == NULL || !CanVehicleUseStation(this, st) || !st->airport.HasHangar()) {
/* the aircraft has to search for a hangar on its own */
StationID station = FindNearestHangar(this);