diff options
author | Stijn Buys <ingar@osirion.org> | 2008-12-07 14:48:54 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-12-07 14:48:54 +0000 |
commit | 11229dcfef77baab5a7a3893a7c6281fbc5f7211 (patch) | |
tree | 54fa65dc37ffa35b486c1b7e76afe26ef2318859 /src/render/particles.h | |
parent | 7de62efc14d0e0f037051bd887c96f28fd9a3215 (diff) |
flame particle systems
Diffstat (limited to 'src/render/particles.h')
-rw-r--r-- | src/render/particles.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/render/particles.h b/src/render/particles.h index 0044832..9c9d44b 100644 --- a/src/render/particles.h +++ b/src/render/particles.h @@ -13,6 +13,7 @@ #include "math/color.h" #include "math/vector3f.h" #include "core/entity.h" +#include "model/classes.h" namespace render { @@ -64,6 +65,8 @@ public: inline float alpha() const { return particles_alpha; } + inline float offset() const { return particles_offset; } + static ParticleScript *find(const std::string &label); static void init(); @@ -84,6 +87,7 @@ private: float particles_eject; float particles_speed; float particles_alpha; + float particles_offset; typedef std::map<std::string, ParticleScript *> Registry; @@ -95,7 +99,7 @@ private: /// abstract base class for a particle system attached to an entity class ParticleSystem { public: - ParticleSystem(ParticleScript *script, core::Entity *entity, const math::Vector3f &location); + ParticleSystem(ParticleScript *script, core::Entity *entity, model::Particles *modelclass); virtual ~ParticleSystem(); /// index of the texture to use @@ -136,8 +140,11 @@ protected: math::Vector3f ejector_location; bool ejector_active; + float radius; float now; math::Color color; + + model::Particles *particlesystem_modelclass; }; /* ---- class Flame ------------------------------------------------ */ @@ -145,6 +152,11 @@ protected: /// flame style particles, like engine flames class Flame : public ParticleSystem { +public: + Flame(ParticleScript *script, core::Entity *entity, model::Particles *modelclass); + virtual ~Flame(); + + virtual void draw(float elapsed); }; /* ---- class Jet -------------------------------------------------- */ @@ -153,7 +165,7 @@ class Flame : public ParticleSystem class Jet : public ParticleSystem { public: - Jet(ParticleScript *script, core::Entity *entity, const math::Vector3f &location); + Jet(ParticleScript *script, core::Entity *entity, model::Particles *modelclass); virtual ~Jet(); virtual void draw(float elapsed); @@ -165,7 +177,7 @@ public: class Trail : public ParticleSystem { public: - Trail(ParticleScript *script, core::Entity *entity, const math::Vector3f &location); + Trail(ParticleScript *script, core::Entity *entity, model::Particles *modelclass); virtual ~Trail(); virtual void draw(float elapsed); |