]> git.mxchange.org Git - flightgear.git/blobdiff - src/AIModel/AIStorm.hxx
Optimise NavCache airport query
[flightgear.git] / src / AIModel / AIStorm.hxx
index 1241a064d103835e902bc69b8ccdacd73ba768c5..f6a7e9018da12337d48ba94b5d90eef3691cac9e 100644 (file)
@@ -16,7 +16,7 @@
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 #ifndef _FG_AIStorm_HXX
 #define _FG_AIStorm_HXX
 #include "AIBase.hxx"
 
 #include <string>
-SG_USING_STD(string);
+using std::string;
 
 
 class FGAIStorm : public FGAIBase {
 
 public:
 
-       FGAIStorm(FGAIManager* mgr);
+       FGAIStorm();
        ~FGAIStorm();
        
-       bool init();
+        void readFromScenario(SGPropertyNode* scFileNode);
+
+       virtual bool init(bool search_in_AI_path=false);
         virtual void bind();
         virtual void unbind();
-       void update(double dt);
+       virtual void update(double dt);
         inline void setStrengthNorm( double s ) { strength_norm = s; };
         inline void setDiameter( double d ) { diameter = d; };
         inline void setHeight( double h ) { height = h; };
@@ -46,9 +48,10 @@ public:
         inline double getDiameter() const { return diameter; };
         inline double getHeight() const { return height; };
 
+        virtual const char* getTypeString(void) const { return "thunderstorm"; }
+
 private:
 
-        double dt;
         double diameter;      // diameter of turbulence zone, in nm
         double height;        // top of turbulence zone, in feet MSL
         double strength_norm; // strength of turbulence
@@ -58,16 +61,16 @@ private:
         double delay;   // average time (sec) between lightning flashes
         int subflashes; // number of subflashes per flash
         double random_delay;  // delay +/- random number
-        double timer; 
-        SGPropertyNode* flash_node; 
+        double timer;
+        SGPropertyNode_ptr flash_node;
         int flashed;    // number of subflashes already done this flash
         bool flashing;  // true if currently flashing;
         int subflash_array[8];
         int subflash_index;
 
         // turbulence stuff
-        SGPropertyNode* turb_mag_node;
-        SGPropertyNode* turb_rate_node;
+        SGPropertyNode_ptr turb_mag_node;
+        SGPropertyNode_ptr turb_rate_node;
 
 };