X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fparticlesystem.h;h=d11c5c13daaf309f2b3dda963862847d2365924e;hb=ee6972038331a3c26a2a6a0bdb2baca25475b1d2;hp=11bff4a00d6db292707873e4a68fe0cb57ce9fdd;hpb=03fe5c560a616e7d38a8b1d5d11bfe4675fa8896;p=supertux.git diff --git a/src/particlesystem.h b/src/particlesystem.h index 11bff4a00..d11c5c13d 100644 --- a/src/particlesystem.h +++ b/src/particlesystem.h @@ -21,8 +21,16 @@ #define SUPERTUX_PARTICLESYSTEM_H #include -#include "screen/texture.h" -#include "game_object.h" + +#include "video/surface.h" +#include "special/game_object.h" +#include "serializable.h" + +using namespace SuperTux; + +namespace SuperTux { +class LispReader; +} class DisplayManager; @@ -50,6 +58,8 @@ public: virtual void draw(DrawingContext& context); protected: + int layer; + class Particle { public: @@ -64,12 +74,15 @@ protected: float virtual_width, virtual_height; }; -class SnowParticleSystem : public ParticleSystem +class SnowParticleSystem : public ParticleSystem, public Serializable { public: SnowParticleSystem(); virtual ~SnowParticleSystem(); + void parse(LispReader& reader); + void write(LispWriter& writer); + virtual void action(float elapsed_time); std::string type() const @@ -85,12 +98,15 @@ private: Surface* snowimages[3]; }; -class CloudParticleSystem : public ParticleSystem +class CloudParticleSystem : public ParticleSystem, public Serializable { public: CloudParticleSystem(); virtual ~CloudParticleSystem(); + void parse(LispReader& reader); + void write(LispWriter& writer); + virtual void action(float elapsed_time); std::string type() const