X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIStorm.hxx;h=f6a7e9018da12337d48ba94b5d90eef3691cac9e;hb=d035fdf3a949e62f0c8e772e100d14087b6d4ba9;hp=1241a064d103835e902bc69b8ccdacd73ba768c5;hpb=4b5a80129d17ab3b7282ce485574a02953d49bf3;p=flightgear.git diff --git a/src/AIModel/AIStorm.hxx b/src/AIModel/AIStorm.hxx index 1241a064d..f6a7e9018 100644 --- a/src/AIModel/AIStorm.hxx +++ b/src/AIModel/AIStorm.hxx @@ -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 @@ -25,20 +25,22 @@ #include "AIBase.hxx" #include -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; };