(svn r8534) -Feature/Codechange: Provide aircraft with vertical separation depending on their altitude and velocity

pull/155/head
celestar 18 years ago
parent 6d50c66d67
commit 8be271f9b0

@ -898,14 +898,32 @@ static bool UpdateAircraftSpeed(Vehicle *v)
return t < v->progress;
}
// get Aircraft running altitude
/**
* Gets the cruise altitude of an aircraft.
* The cruise altitude is determined by the velocity of the vehicle
* and the direction it is moving
* @param v The vehicle. Should be an aircraft
* @returns Altitude in pixel units
*/
static byte GetAircraftFlyingAltitude(const Vehicle *v)
{
switch (v->max_speed) {
case 37: return 162;
case 74: return 171;
default: return 180;
/* Make sure Aircraft fly no lower so that they don't conduct
* CFITs (controlled flight into terrain)
*/
byte base_altitude = 150;
/* Make sure eastbound and westbound planes do not "crash" into each
* other by providing them with vertical seperation
*/
switch (v->direction) {
case DIR_N: case DIR_NE: case DIR_E: case DIR_SE: base_altitude += 15; break;
default: break;
}
/* Make faster planes fly higher so that they can overtake slower ones */
base_altitude += min(30 * (v->max_speed / 37), 90);
return base_altitude;
}
static bool AircraftController(Vehicle *v)

Loading…
Cancel
Save