--- a/src/newgrf_engine.cpp Wed Aug 15 10:24:47 2007 +0000
+++ b/src/newgrf_engine.cpp Wed Aug 15 10:30:49 2007 +0000
@@ -272,36 +272,14 @@
/* Still moving towards hanger. */
return AMS_TTDP_TO_HANGAR;
- case TERM1:
+ case FIRST_TERMINAL: // TERM 1
if (amdflag & AMED_EXACTPOS) return AMS_TTDP_TO_PAD1;
return AMS_TTDP_TO_JUNCTION;
- case TERM2:
+ case FIRST_TERMINAL + 1: // TERM 2
if (amdflag & AMED_EXACTPOS) return AMS_TTDP_TO_PAD2;
return AMS_TTDP_TO_ENTRY_2_AND_3_AND_H;
- case TERM3:
- case TERM4:
- case TERM5:
- case TERM6:
- case TERM7:
- case TERM8:
- case TERM9:
- case TERM10:
- case TERM11:
- case TERM12:
- /* TTDPatch only has 3 terminals, so treat these states the same */
- if (amdflag & AMED_EXACTPOS) return AMS_TTDP_TO_PAD3;
- return AMS_TTDP_TO_ENTRY_2_AND_3_AND_H;
-
- case HELIPAD1:
- case HELIPAD2:
- case HELIPAD3:
- case HELIPAD4: // Will only occur for helicopters.
- if (amdflag & AMED_HELI_LOWER) return AMS_TTDP_HELI_LAND_AIRPORT; // Descending.
- if (amdflag & AMED_SLOWTURN) return AMS_TTDP_FLIGHT_TO_TOWER; // Still hasn't started descent.
- return AMS_TTDP_TO_JUNCTION; // On the ground.
-
case TAKEOFF: // Moving to takeoff position.
return AMS_TTDP_TO_OUTWAY;
@@ -340,6 +318,16 @@
}
default:
+ if (FIRST_TERMINAL <= v->u.air.state && v->u.air.state <= LAST_TERMINAL) {
+ /* TTDPatch only has 3 terminals, so treat these states the same */
+ return (amdflag & AMED_EXACTPOS) ? AMS_TTDP_TO_PAD3 : AMS_TTDP_TO_ENTRY_2_AND_3_AND_H;
+ }
+ if (FIRST_HELIPAD <= v->u.air.state && v->u.air.state <= LAST_HELIPAD) {
+ if (amdflag & AMED_HELI_LOWER) return AMS_TTDP_HELI_LAND_AIRPORT; // Descending.
+ if (amdflag & AMED_SLOWTURN) return AMS_TTDP_FLIGHT_TO_TOWER; // Still hasn't started descent.
+ return AMS_TTDP_TO_JUNCTION; // On the ground.
+ }
+
return AMS_TTDP_HANGAR;
}
}
@@ -380,28 +368,14 @@
case HANGAR:
return (v->cur_speed > 0) ? AMA_TTDP_LANDING_TO_HANGAR : AMA_TTDP_IN_HANGAR;
- case TERM1:
- case HELIPAD1:
+ case FIRST_TERMINAL:
+ case FIRST_HELIPAD:
return (v->current_order.type == OT_LOADING) ? AMA_TTDP_ON_PAD1 : AMA_TTDP_LANDING_TO_PAD1;
- case TERM2:
- case HELIPAD2:
+ case FIRST_TERMINAL + 1:
+ case FIRST_HELIPAD + 1:
return (v->current_order.type == OT_LOADING) ? AMA_TTDP_ON_PAD2 : AMA_TTDP_LANDING_TO_PAD2;
- case TERM3:
- case TERM4:
- case TERM5:
- case TERM6:
- case TERM7:
- case TERM8:
- case TERM9:
- case TERM10:
- case TERM11:
- case TERM12:
- case HELIPAD3:
- case HELIPAD4:
- return (v->current_order.type == OT_LOADING) ? AMA_TTDP_ON_PAD3 : AMA_TTDP_LANDING_TO_PAD3;
-
case TAKEOFF: // Moving to takeoff position
case STARTTAKEOFF: // Accelerating down runway
case ENDTAKEOFF: // Ascent
@@ -421,6 +395,10 @@
AMA_TTDP_LANDING_TO_HANGAR : AMA_TTDP_LANDING_TO_PAD1;
default:
+ if (FIRST_TERMINAL <= v->u.air.state && v->u.air.state <= LAST_HELIPAD) {
+ return (v->current_order.type == OT_LOADING) ? AMA_TTDP_ON_PAD3 : AMA_TTDP_LANDING_TO_PAD3;
+ }
+
return AMA_TTDP_IN_HANGAR;
}
}