]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIBase.hxx
Add callsign for consitency.
[flightgear.git] / src / AIModel / AIBase.hxx
index 8840136dae3546c7a9143f7069e6578461433ef8..3d756254a21767244afb99f4f3715aaf929cd836 100644 (file)
@@ -1,7 +1,7 @@
 // FGAIBase.hxx - abstract base class for AI objects
 // Written by David Culp, started Nov 2003, based on
 // David Luff's FGAIEntity class.
-// - davidculp2@comcast.net
+// - davidculp2@comcast.net 
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License as
@@ -40,13 +40,13 @@ class SGMaterial;
 class FGAIManager;
 class FGAIFlightPlan;
 
-class FGAIBase : public osg::Referenced {
+class FGAIBase : public SGReferenced {
 
 public:
     enum object_type { otNull = 0, otAircraft, otShip, otCarrier, otBallistic,
-                       otRocket, otStorm, otThermal, otStatic, otWingman, otGroundVehicle,
-                       otMultiplayer,
-                       MAX_OBJECTS };  // Needs to be last!!!
+        otRocket, otStorm, otThermal, otStatic, otWingman, otGroundVehicle,
+        otEscort, otMultiplayer,
+        MAX_OBJECTS }; // Needs to be last!!!
 
     FGAIBase(object_type ot);
     virtual ~FGAIBase();
@@ -85,6 +85,8 @@ public:
     void setImpactLat( double lat );
     void setImpactLon( double lon );
     void setImpactElev( double e );
+    void setParentName(const string& p);
+    void setParentNode();
 
     int getID() const;
     int _getSubID() const;
@@ -95,7 +97,7 @@ public:
     SGVec3d getCartPos() const;
 
     bool getGroundElevationM(const SGGeod& pos, double& elev,
-                             const SGMaterial** material) const;
+        const SGMaterial** material) const;
 
     double _getCartPosX() const;
     double _getCartPosY() const;
@@ -113,12 +115,14 @@ public:
     string _callsign;
     string _submodel;
     string _name;
+    string _parent;
 
     SGGeod userpos;
 
 
 protected:
 
+    SGPropertyNode_ptr _selected_ac;
     SGPropertyNode_ptr props;
     SGPropertyNode_ptr trigger_node;
     SGPropertyNode_ptr model_removed; // where to report model removal
@@ -177,6 +181,7 @@ protected:
 
     bool _impact_reported;
     bool _collision_reported;
+    bool _expiry_reported;
 
     double _impact_lat;
     double _impact_lon;
@@ -246,6 +251,7 @@ public:
     bool   _getImpact();
     bool   _getImpactData();
     bool   _getCollisionData();
+    bool   _getExpiryData();
 
     SGPropertyNode* _getProps() const;
 
@@ -272,8 +278,8 @@ public:
     inline double _getBearing() { return bearing; };
 
     virtual osg::Node* load3DModel(const string &path,
-                           SGPropertyNode *prop_root);
+        SGPropertyNode *prop_root);
+
     static bool _isNight();
 };
 
@@ -355,6 +361,10 @@ inline void FGAIBase::setYawoffset(double y) {
     _yaw_offset = y;
 }
 
+inline void FGAIBase::setParentName(const string& p) {
+    _parent = p;
+}
+
 inline void FGAIBase::setDie( bool die ) { delete_me = die; }
 
 inline bool FGAIBase::getDie() { return delete_me; }