mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-06 22:37:22 +00:00
(svn r8534) -Feature/Codechange: Provide aircraft with vertical separation depending on their altitude and velocity
This commit is contained in:
parent
904088f2f9
commit
6f01ba5ad9
@ -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…
Reference in New Issue
Block a user