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;
|
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)
|
static byte GetAircraftFlyingAltitude(const Vehicle *v)
|
||||||
{
|
{
|
||||||
switch (v->max_speed) {
|
/* Make sure Aircraft fly no lower so that they don't conduct
|
||||||
case 37: return 162;
|
* CFITs (controlled flight into terrain)
|
||||||
case 74: return 171;
|
*/
|
||||||
default: return 180;
|
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)
|
static bool AircraftController(Vehicle *v)
|
||||||
|
Loading…
Reference in New Issue
Block a user