From 11229dcfef77baab5a7a3893a7c6281fbc5f7211 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 7 Dec 2008 14:48:54 +0000 Subject: flame particle systems --- src/render/particles.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/render/particles.h') 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 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); -- cgit v1.2.3