src/newgrf_engine.cpp
branchNewGRF_ports
changeset 6825 c6ec828eeb0d
parent 6823 afccaf7e9674
child 6837 c39d50afbaf0
--- 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;
 	}
 }