projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- data/levels/default/ moved to data/levels/worldmap/
[supertux.git]
/
src
/
particlesystem.h
diff --git
a/src/particlesystem.h
b/src/particlesystem.h
index
01ba586
..
e2a7f1a
100644
(file)
--- a/
src/particlesystem.h
+++ b/
src/particlesystem.h
@@
-21,7
+21,12
@@
#define SUPERTUX_PARTICLESYSTEM_H
#include <vector>
#define SUPERTUX_PARTICLESYSTEM_H
#include <vector>
-#include "texture.h"
+#include "screen/texture.h"
+#include "game_object.h"
+#include "serializable.h"
+
+class LispReader;
+class DisplayManager;
/**
* This is the base class for particle systems. It is responsible for storing a
/**
* This is the base class for particle systems. It is responsible for storing a
@@
-38,25
+43,24
@@
* initialize particles in the constructor and move them in the simulate
* function.
*/
* initialize particles in the constructor and move them in the simulate
* function.
*/
-class ParticleSystem
+class ParticleSystem
: public GameObject
{
public:
ParticleSystem();
virtual ~ParticleSystem();
{
public:
ParticleSystem();
virtual ~ParticleSystem();
- void draw(float scrollx, float scrolly, int layer);
-
- virtual void simulate(float elapsed_time) = 0;
+ virtual void draw(DrawingContext& context);
protected:
protected:
+ int layer;
+
class Particle
{
public:
virtual ~Particle()
{ }
class Particle
{
public:
virtual ~Particle()
{ }
- float x, y;
- int layer;
+ Vector pos;
Surface* texture;
};
Surface* texture;
};
@@
-64,13
+68,19
@@
protected:
float virtual_width, virtual_height;
};
float virtual_width, virtual_height;
};
-class SnowParticleSystem : public ParticleSystem
+class SnowParticleSystem : public ParticleSystem
, public Serializable
{
public:
SnowParticleSystem();
virtual ~SnowParticleSystem();
{
public:
SnowParticleSystem();
virtual ~SnowParticleSystem();
- virtual void simulate(float elapsed_time);
+ void parse(LispReader& reader);
+ void write(LispWriter& writer);
+
+ virtual void action(float elapsed_time);
+
+ std::string type() const
+ { return "SnowParticleSystem"; }
private:
class SnowParticle : public Particle
private:
class SnowParticle : public Particle
@@
-82,13
+92,19
@@
private:
Surface* snowimages[3];
};
Surface* snowimages[3];
};
-class CloudParticleSystem : public ParticleSystem
+class CloudParticleSystem : public ParticleSystem
, public Serializable
{
public:
CloudParticleSystem();
virtual ~CloudParticleSystem();
{
public:
CloudParticleSystem();
virtual ~CloudParticleSystem();
- virtual void simulate(float elapsed_time);
+ void parse(LispReader& reader);
+ void write(LispWriter& writer);
+
+ virtual void action(float elapsed_time);
+
+ std::string type() const
+ { return "SnowParticleSystem"; }
private:
class CloudParticle : public Particle
private:
class CloudParticle : public Particle