-class GhostParticleSystem : public ParticleSystem, public Serializable
-{
-public:
- GhostParticleSystem();
- virtual ~GhostParticleSystem();
-
- void parse(const lisp::Lisp& lisp);
- void write(lisp::Writer& writer);
-
- virtual void update(float elapsed_time);
-
- std::string type() const
- { return "GhostParticleSystem"; }
-
-private:
- class GhostParticle : public Particle
- {
- public:
- float speed;
- };
-
- Surface* ghosts[2];
-};
-
-class CloudParticleSystem : public ParticleSystem, public Serializable
-{
-public:
- CloudParticleSystem();
- virtual ~CloudParticleSystem();
-
- void parse(const lisp::Lisp& lisp);
- void write(lisp::Writer& writer);
-
- virtual void update(float elapsed_time);
-
- std::string type() const
- { return "SnowParticleSystem"; }
-
-private:
- class CloudParticle : public Particle
- {
- public:
- float speed;
- };
-
- Surface* cloudimage;
+protected:
+ class Particle
+ {
+ public:
+ Particle() :
+ pos(),
+ texture()
+ {}
+
+ virtual ~Particle()
+ {}
+
+ Vector pos;
+ Surface* texture;
+
+ private:
+ Particle(const Particle&);
+ Particle& operator=(const Particle&);
+ };
+
+ float max_particle_size;
+ int z_pos;
+ std::vector<Particle*> particles;
+ float virtual_width;
+ float virtual_height;