]> git.mxchange.org Git - flightgear.git/commitdiff
In the situation where a class gets deleted, the _slef pointer is set to 0. Make...
authorehofman <ehofman>
Mon, 24 May 2004 14:36:35 +0000 (14:36 +0000)
committerehofman <ehofman>
Mon, 24 May 2004 14:36:35 +0000 (14:36 +0000)
src/AIModel/AIAircraft.hxx
src/AIModel/AIBase.hxx

index 4048deb9e3a8252cc092407a461136774301c967..43bcaa1f34ee830cf32418468fe97e32545ef457 100644 (file)
@@ -90,9 +90,10 @@ private:
 };
 
 inline bool FGAIAircraft::_getGearDown() {
-    return ((fgGetFloat("/position/altitude-agl-ft") < 150.0)
-             && (fgGetFloat("/velocities/airspeed-kt")
-                   < _self->performance->land_speed*1.5));
+    return (!_self) ? false
+                    : ((fgGetFloat("/position/altitude-agl-ft") < 150.0)
+                       && (fgGetFloat("/velocities/airspeed-kt")
+                           < _self->performance->land_speed*1.5));
 }
 
 
index 3436a1332d97219c6a7baaf270a54c757c44d39c..af61d1089e5d579859ef38b135fbcb098ad6c067 100644 (file)
@@ -174,33 +174,58 @@ inline void FGAIBase::setDie( bool die ) { delete_me = die; }
 inline bool FGAIBase::getDie() { return delete_me; }
 
 inline void FGAIBase::_setLongitude( double longitude ) {
-    _self->pos.setlon(longitude);
+    if (_self) _self->pos.setlon(longitude);
 }
 inline void FGAIBase::_setLatitude ( double latitude )  {
-    _self->pos.setlat(latitude);
+    if (_self) _self->pos.setlat(latitude);
 }
 
-inline double FGAIBase::_getLongitude() { return _self->pos.lon(); }
-inline double FGAIBase::_getLatitude () { return _self->pos.lat(); }
-
-inline double FGAIBase::_getBearing()   { return _self->bearing; }
-inline double FGAIBase::_getElevation() { return _self->elevation; }
-inline double FGAIBase::_getRange()     { return _self->range; }
-inline double FGAIBase::_getRdot()      { return _self->rdot; }
-inline double FGAIBase::_getH_offset()  { return _self->horiz_offset; }
-inline double FGAIBase::_getV_offset()  { return _self->vert_offset; }
-inline double FGAIBase::_getX_shift()   { return _self->x_shift; }
-inline double FGAIBase::_getY_shift()   { return _self->y_shift; }
-inline double FGAIBase::_getRotation()  { return _self->rotation; }
+inline double FGAIBase::_getLongitude() {
+    return (!_self) ? 0.0 :_self->pos.lon();
+}
+inline double FGAIBase::_getLatitude () {
+    return (!_self) ? 0.0 :_self->pos.lat();
+}
+inline double FGAIBase::_getBearing()   {
+    return (!_self) ? 0.0 :_self->bearing;
+}
+inline double FGAIBase::_getElevation() {
+    return (!_self) ? 0.0 :_self->elevation;
+}
+inline double FGAIBase::_getRange()     {
+    return (!_self) ? 0.0 :_self->range;
+}
+inline double FGAIBase::_getRdot()      {
+    return (!_self) ? 0.0 :_self->rdot;
+}
+inline double FGAIBase::_getH_offset()  {
+    return (!_self) ? 0.0 :_self->horiz_offset;
+}
+inline double FGAIBase::_getV_offset()  {
+    return (!_self) ? 0.0 :_self->vert_offset;
+}
+inline double FGAIBase::_getX_shift()   {
+    return (!_self) ? 0.0 :_self->x_shift;
+}
+inline double FGAIBase::_getY_shift()   {
+    return (!_self) ? 0.0 :_self->y_shift;
+}
+inline double FGAIBase::_getRotation()  {
+    return (!_self) ? 0.0 :_self->rotation;
+}
 
-inline double FGAIBase::_getVS_fps() { return _self->vs*60.0; }
-inline void FGAIBase::_setVS_fps( double _vs ) { _self->vs = _vs/60.0; }
+inline double FGAIBase::_getVS_fps() {
+    return (!_self) ? 0.0 :_self->vs*60.0;
+}
+inline void FGAIBase::_setVS_fps( double _vs ) {
+    if (_self) _self->vs = _vs/60.0;
+}
 
 inline double FGAIBase::_getAltitude() {
-    return _self->altitude;
+    return (!_self) ? 0.0 :_self->altitude;
 }
 inline void FGAIBase::_setAltitude( double _alt ) {
-    _self->setAltitude( _alt );
+    if (_self) _self->setAltitude( _alt );
 }
 
 inline bool FGAIBase::_isNight() {