git-svn-id: https://scorched3d.svn.sourceforge.net/svnroot/scorched3d/trunk/scorched...
[scorched3d/parasti.git] / src / common / actions / NapalmParams.h
blob9f979deb15c33682bb1ccf98f2f32200739af302
1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
3 //
4 // This file is part of Scorched3D.
5 //
6 // Scorched3D is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #if !defined(__INCLUDE_NapalmParamsh_INCLUDE__)
22 #define __INCLUDE_NapalmParamsh_INCLUDE__
24 #include <string>
25 #include <common/fixed.h>
27 struct lua_State;
28 class XMLNode;
29 class NapalmParams
31 public:
32 NapalmParams();
33 ~NapalmParams();
35 bool parseXML(XMLNode *accessoryNode);
36 void parseLUA(lua_State *L, int position);
38 void setNapalmTime(fixed value) { napalmTime_ = value; }
39 void setNapalmHeight(fixed value) { napalmHeight_ = value; }
40 void setStepTime(fixed value) { stepTime_ = value; }
41 void setHurtStepTime(fixed value) { hurtStepTime_ = value; }
42 void setHurtPerSecond(fixed value) { hurtPerSecond_ = value; }
44 fixed getNapalmTime() { return napalmTime_; }
45 fixed getNapalmHeight() { return napalmHeight_; }
46 fixed getStepTime() { return stepTime_; }
47 fixed getHurtStepTime() { return hurtStepTime_; }
48 fixed getHurtPerSecond() { return hurtPerSecond_; }
49 fixed getGroundScorchPer() { return groundScorchPer_; }
50 int getEffectRadius() { return effectRadius_; }
51 int getNumberParticles() { return numberParticles_; }
52 bool getNoSmoke() { return noSmoke_; }
53 bool getNoObjectDamage() { return noObjectDamage_; }
54 bool getAllowUnderWater() { return allowUnderWater_; }
55 bool getLuminance() { return luminance_; }
56 bool getSingleFlow() { return singleFlow_; }
57 const char *getNapalmTexture() { return napalmTexture_.c_str(); }
58 const char *getDeformTexture() { return deformTexture_.c_str(); }
60 protected:
61 fixed napalmTime_; // The time to generate napalm
62 fixed napalmHeight_; // The height of a napalm point
63 fixed stepTime_; // Add/rm napalm every StepTime secs
64 fixed hurtStepTime_; // Calculate damage every HurtStepTime secs
65 fixed hurtPerSecond_;// Damage per second
66 fixed groundScorchPer_; // The percentage chance the ground will be scorched
67 int effectRadius_; // How close do tanks take damage
68 int numberParticles_;// How many napalm particles can be created
69 bool noSmoke_; // Turns off smoke emitted by napalm
70 bool noObjectDamage_;// Turns off burning damage to landscape objects
71 bool allowUnderWater_;// Turns on/off napalm working under water
72 bool singleFlow_; // Use a single flow of napalm or cover the whole downward area
73 bool luminance_; // The texutre luminance
74 std::string napalmTexture_;
75 std::string deformTexture_;
79 #endif