X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fparticlesystem.h;h=b2a0c71f22345d441ec88be8807bf750bc9ff9cf;hb=37e3ad0ee2ec05d6bfebf611d45046b49fa33387;hp=d11c5c13daaf309f2b3dda963862847d2365924e;hpb=6f801c22d97251799740317fb1d0caf2e744b321;p=supertux.git diff --git a/src/object/particlesystem.h b/src/object/particlesystem.h index d11c5c13d..b2a0c71f2 100644 --- a/src/object/particlesystem.h +++ b/src/object/particlesystem.h @@ -28,8 +28,8 @@ using namespace SuperTux; -namespace SuperTux { -class LispReader; +namespace lisp { +class Lisp; } class DisplayManager; @@ -80,8 +80,8 @@ public: SnowParticleSystem(); virtual ~SnowParticleSystem(); - void parse(LispReader& reader); - void write(LispWriter& writer); + void parse(const lisp::Lisp& lisp); + void write(lisp::Writer& writer); virtual void action(float elapsed_time); @@ -98,14 +98,38 @@ private: Surface* snowimages[3]; }; +class RainParticleSystem : public ParticleSystem, public Serializable +{ +public: + RainParticleSystem(); + virtual ~RainParticleSystem(); + + void parse(const lisp::Lisp& lisp); + void write(lisp::Writer& writer); + + virtual void action(float elapsed_time); + + std::string type() const + { return "RainParticleSystem"; } + +private: + class RainParticle : public Particle + { + public: + float speed; + }; + + Surface* rainimages[2]; +}; + class CloudParticleSystem : public ParticleSystem, public Serializable { public: CloudParticleSystem(); virtual ~CloudParticleSystem(); - void parse(LispReader& reader); - void write(LispWriter& writer); + void parse(const lisp::Lisp& lisp); + void write(lisp::Writer& writer); virtual void action(float elapsed_time);