(svn r8743) -Fix

-Codechange: Add a Z adjustment attribute for helicopter pads to AirportFTAClass to get rid of some special cases for oilrigs and heliports
This commit is contained in:
tron
2007-02-15 07:43:06 +00:00
parent ac95825b92
commit f6b917f609
4 changed files with 41 additions and 49 deletions

View File

@@ -288,7 +288,8 @@ enum {
static byte MapAircraftMovementState(const Vehicle *v)
{
const Station *st = GetStation(v->u.air.targetairport);
byte amdflag = GetAirport(st->airport_type)->MovingData(v->u.air.pos)->flag;
const AirportFTAClass *afc = GetAirport(st->airport_type);
byte amdflag = afc->MovingData(v->u.air.pos)->flag;
switch (v->u.air.state) {
case HANGAR:
@@ -347,26 +348,11 @@ static byte MapAircraftMovementState(const Vehicle *v)
return AMS_TTDP_CLIMBING;
case HELITAKEOFF: // Helicopter is moving to take off position.
switch (st->airport_type) {
case AT_SMALL:
case AT_LARGE:
case AT_METROPOLITAN:
case AT_INTERNATIONAL:
case AT_COMMUTER:
case AT_INTERCON:
/* Note, Helidepot and Helistation are treated as airports as
* helicopters are taking off from ground level. */
case AT_HELIDEPOT:
case AT_HELISTATION:
if (amdflag & AMED_HELI_RAISE) return AMS_TTDP_HELI_TAKEOFF_AIRPORT;
return AMS_TTDP_TO_JUNCTION;
case AT_HELIPORT:
case AT_OILRIG:
return AMS_TTDP_HELI_TAKEOFF_HELIPORT;
default:
return AMS_TTDP_HELI_TAKEOFF_AIRPORT;
if (afc->delta_z == 0) {
return amdflag & AMED_HELI_RAISE ?
AMS_TTDP_HELI_TAKEOFF_AIRPORT : AMS_TTDP_TO_JUNCTION;
} else {
return AMS_TTDP_HELI_TAKEOFF_HELIPORT;
}
case FLYING:
@@ -383,18 +369,11 @@ static byte MapAircraftMovementState(const Vehicle *v)
case HELILANDING:
case HELIENDLANDING: // Helicoptor is decending.
if (amdflag & AMED_HELI_LOWER) {
switch (st->airport_type) {
case AT_HELIPORT:
case AT_OILRIG:
return AMS_TTDP_HELI_LAND_HELIPORT;
default:
/* Note, Helidepot and Helistation are treated as airports as
* helicopters are landing at ground level. */
return AMS_TTDP_HELI_LAND_AIRPORT;
}
return afc->delta_z == 0 ?
AMS_TTDP_HELI_LAND_AIRPORT : AMS_TTDP_HELI_LAND_HELIPORT;
} else {
return AMS_TTDP_FLIGHT_TO_TOWER;
}
return AMS_TTDP_FLIGHT_TO_TOWER;
default:
return AMS_TTDP_HANGAR;