X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FAIModel%2FAIStorm.hxx;h=f6a7e9018da12337d48ba94b5d90eef3691cac9e;hb=d035fdf3a949e62f0c8e772e100d14087b6d4ba9;hp=434320b55e282e478f089eff9d954eb384c51c8d;hpb=2d9108e2533afda5e50f175628db5a61b770136b;p=flightgear.git diff --git a/src/AIModel/AIStorm.hxx b/src/AIModel/AIStorm.hxx index 434320b55..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,35 +25,53 @@ #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; }; + inline double getStrengthNorm() const { return strength_norm; }; + 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 void Run(double dt); + // lightning stuff 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_ptr turb_mag_node; + SGPropertyNode_ptr turb_rate_node; + };