ignore messages.pot
[supertux.git] / src / object / particlesystem.h
index 2aae295..23d9e29 100644 (file)
 //  You should have received a copy of the GNU General Public License
 //  along with this program; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
 #ifndef SUPERTUX_PARTICLESYSTEM_H
 #define SUPERTUX_PARTICLESYSTEM_H
 
 #include <vector>
 
 #include "video/surface.h"
-#include "special/game_object.h"
+#include "game_object.h"
 #include "serializable.h"
 
-using namespace SuperTux;
-
 namespace lisp {
 class Lisp;
 }
@@ -40,7 +37,7 @@ class DisplayManager;
  * 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.
@@ -98,6 +95,30 @@ 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: