#include "video/surface.h"
#include "game_object.h"
#include "serializable.h"
+#include "sector.h"
+#include "math/vector.h"
namespace lisp {
class Lisp;
* layer where it should be drawn and a texture.
* The coordinate system used here is a virtual one. It would be a bad idea to
* populate whole levels with particles. So we're using a virtual rectangle
- * here that is tiled onto the level when drawing. This rectangle has the size
+ * here that is tiled onto the level when drawing. This rect.has the size
* (virtual_width, virtual_height). We're using modulo on the particle
* coordinates, so when a particle leaves left, it'll reenter at the right
* side.
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
{ return "SnowParticleSystem"; }
Surface* snowimages[3];
};
-class RainParticleSystem : public ParticleSystem, public Serializable
+class GhostParticleSystem : public ParticleSystem, public Serializable
{
public:
- RainParticleSystem();
- virtual ~RainParticleSystem();
+ GhostParticleSystem();
+ virtual ~GhostParticleSystem();
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
- { return "RainParticleSystem"; }
+ { return "GhostParticleSystem"; }
private:
- class RainParticle : public Particle
+ class GhostParticle : public Particle
{
public:
float speed;
};
- Surface* rainimages[2];
+ Surface* ghosts[2];
};
class CloudParticleSystem : public ParticleSystem, public Serializable
void parse(const lisp::Lisp& lisp);
void write(lisp::Writer& writer);
- virtual void action(float elapsed_time);
+ virtual void update(float elapsed_time);
std::string type() const
{ return "SnowParticleSystem"; }