WeaponProjectile.h

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 #if !defined(AFX_WEAPONPROJECTILE_H__70119A64_2064_4066_8EE5_FD6A3E24D5FC__INCLUDED_)
00022 #define AFX_WEAPONPROJECTILE_H__70119A64_2064_4066_8EE5_FD6A3E24D5FC__INCLUDED_
00023 
00024 #include <weapons/Weapon.h>
00025 #include <common/ModelID.h>
00026 
00027 class WeaponProjectile : public Weapon
00028 {
00029 public:
00030         WeaponProjectile();
00031         virtual ~WeaponProjectile();
00032 
00033         virtual bool parseXML(AccessoryCreateContext &context,
00034                 XMLNode *accessoryNode);
00035 
00036         Weapon *getCollisionAction() { return collisionAction_; }
00037 
00038         // Inherited from Weapon
00039         virtual void fireWeapon(ScorchedContext &context,
00040                 WeaponFireContext &weaponContext, FixedVector &position, FixedVector &velocity);
00041 
00042         REGISTER_ACCESSORY_HEADER(WeaponProjectile, AccessoryPart::AccessoryWeapon);
00043 
00044         bool getUnder() { return under_; }
00045         bool getShowShotPath() { return showShotPath_; }
00046         bool getShowEndPoint() { return showEndPoint_; }
00047         bool getApexCollision() { return apexCollision_; }
00048         bool getWaterCollision() { return waterCollision_; }
00049         bool getWallCollision() { return wallCollision_; }
00050         bool getApexNoDud() { return apexNoDud_; }
00051         bool getCreateSmoke() { return createSmoke_; }
00052         bool getCreateFlame() { return createFlame_; }
00053         bool getTimedDud() { return timedDud_; }
00054         fixed getWindFactor(ScorchedContext &context);
00055         fixed getShieldHurtFactor(ScorchedContext &context);
00056         fixed getTimedCollision(ScorchedContext &context) { return timedCollision_.getValue(context); }
00057         fixed getSpinSpeed(ScorchedContext &context) { return spinSpeed_.getValue(context); }
00058         float getFlameLife() { return flameLife_; }
00059         float getFlameStartSize() { return flameStartSize_; }
00060         float getFlameEndSize() { return flameEndSize_; }
00061         float getSmokeLife() { return smokeLife_; }
00062         float getSmokeStartSize() { return smokeStartSize_; }
00063         float getSmokeEndSize() { return smokeEndSize_; }
00064         fixed getThrustAmount(ScorchedContext &context) { return thrustAmount_.getValue(context); }
00065         fixed getThrustTime(ScorchedContext &context) { return thrustTime_.getValue(context); }
00066         fixed getDrag(ScorchedContext &context) { return drag_.getValue(context); }
00067         Vector &getFlameStartColor1() { return flameStartColor1_; }
00068         Vector &getFlameStartColor2() { return flameStartColor2_; }
00069         Vector &getFlameEndColor1() { return flameEndColor1_; }
00070         Vector &getFlameEndColor2() { return flameEndColor2_; }
00071         const char *getEngineSound() { return engineSound_.c_str(); }
00072         fixed getScale(ScorchedContext &context) { return scale_.getValue(context); }
00073         ModelID &getModelID() { return modelId_; }
00074 
00075 protected:
00076         bool under_;
00077         bool showShotPath_;
00078         bool showEndPoint_;
00079         bool apexCollision_;
00080         bool waterCollision_, wallCollision_;
00081         bool apexNoDud_, timedDud_;
00082         NumberParser spinSpeed_;
00083         bool createSmoke_, createFlame_;
00084         float flameLife_, smokeLife_;
00085         float flameStartSize_, flameEndSize_;
00086         float smokeStartSize_, smokeEndSize_;
00087         NumberParser thrustTime_, thrustAmount_;
00088         NumberParser timedCollision_;
00089         NumberParser shieldHurtFactor_;
00090         NumberParser scale_;
00091         NumberParser windFactor_;
00092         NumberParser drag_;
00093         Vector flameStartColor1_, flameStartColor2_;
00094         Vector flameEndColor1_, flameEndColor2_;
00095         std::string engineSound_;
00096         Weapon *collisionAction_;
00097         ModelID modelId_;
00098         int flareType_;
00099 
00100 };
00101 
00102 #endif // !defined(AFX_WEAPONPROJECTILE_H__70119A64_2064_4066_8EE5_FD6A3E24D5FC__INCLUDED_)

Generated on Mon Feb 16 15:14:52 2009 for Scorched3D by  doxygen 1.5.3