// jet_transport
{5.0, 2.0, 3000.0, 1500.0, 140.0, 300.0, 430.0, 300.0, 130.0},
// jet_fighter
- {7.0, 3.0, 4000.0, 2000.0, 150.0, 350.0, 500.0, 350.0, 150.0}
+ {7.0, 3.0, 4000.0, 2000.0, 150.0, 350.0, 500.0, 350.0, 150.0},
+ // tanker
+ {5.0, 2.0, 3000.0, 1500.0, 140.0, 300.0, 430.0, 300.0, 130.0}
};
fp = 0;
dt_count = 0;
use_perf_vs = true;
+ isTanker = false;
// set heading and altitude locks
hdg_lock = false;
bool FGAIAircraft::init() {
+ refuel_node = fgGetNode("systems/refuel/contact", true);
return FGAIBase::init();
}
rotation = hdg - user_heading;
if (rotation < 0.0) rotation += 360.0;
+ //************************************//
+ // Tanker code //
+ //************************************//
+
+ if ( isTanker) {
+ if ( (range_ft < 250.0) &&
+ (y_shift > 0.0) &&
+ (elevation > 0.0) ) {
+ refuel_node->setBoolValue(true);
+ } else {
+ refuel_node->setBoolValue(false);
+ }
+ }
}
public:
- enum aircraft_e {LIGHT=0, WW2_FIGHTER, JET_TRANSPORT, JET_FIGHTER};
+ enum aircraft_e {LIGHT=0, WW2_FIGHTER, JET_TRANSPORT, JET_FIGHTER, TANKER};
static const PERF_STRUCT settings[];
FGAIAircraft(FGAIManager* mgr);
void TurnTo(double heading);
void ProcessFlightPlan( double dt );
+ inline void SetTanker(bool setting) { isTanker = setting; };
+
private:
bool hdg_lock;
const PERF_STRUCT *performance;
bool use_perf_vs;
+ SGPropertyNode* refuel_node;
+ bool isTanker;
void Run(double dt);
double sign(double x);
++ai_list_itr;
}
wind_from_down->setDoubleValue( strength );
+
}
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
} else if (model_class == "jet_fighter") {
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_FIGHTER]);
+ } else if (model_class == "tanker") {
+ ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
+ ai_plane->SetTanker(true);
} else {
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
}
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
} else if (model_class == "jet_fighter") {
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_FIGHTER]);
+ } else if (model_class == "tanker") {
+ ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
+ ai_plane->SetTanker(true);
} else {
ai_plane->SetPerformance(&FGAIAircraft::settings[FGAIAircraft::JET_TRANSPORT]);
}