Index: /branches/heathaze/src/proto/proto_world_entity.cc
===================================================================
--- /branches/heathaze/src/proto/proto_world_entity.cc	(revision 10066)
+++ /branches/heathaze/src/proto/proto_world_entity.cc	(revision 10067)
@@ -16,5 +16,5 @@
 #include "proto_world_entity.h"
 
-
+ObjectListDefinition(ProtoWorldEntity);
 
 
@@ -25,4 +25,5 @@
 ProtoWorldEntity::ProtoWorldEntity(const TiXmlElement* root)
 {
+  this->registerObject(this, ProtoWorldEntity::_objectList);
   this->init();
   if (root != NULL)
@@ -46,10 +47,5 @@
 void ProtoWorldEntity::init()
 {
-  this->setClassID(CL_PROTO_WORLD_ENTITY, "ProtoWorldEntity");
-
-  /**
-   * @todo: Write CL_PROTO_WORLD_ENTITY INTO THE src/defs/class_id.h (your own definition)
-   */
-
+  
 }
 
Index: /branches/heathaze/src/proto/proto_world_entity.h
===================================================================
--- /branches/heathaze/src/proto/proto_world_entity.h	(revision 10066)
+++ /branches/heathaze/src/proto/proto_world_entity.h	(revision 10067)
@@ -12,4 +12,6 @@
 class ProtoWorldEntity : public WorldEntity
 {
+
+ ObjectListDeclaration(ProtoWorldEntity);
 
  public:
Index: /branches/heathaze/src/world_entities/Makefile.am
===================================================================
--- /branches/heathaze/src/world_entities/Makefile.am	(revision 10066)
+++ /branches/heathaze/src/world_entities/Makefile.am	(revision 10067)
@@ -31,4 +31,5 @@
 		effects/explosion.cc \
 		effects/billboard.cc \
+		effects/heat_haze.cc\
 		\
 		\
@@ -61,4 +62,5 @@
 		effects/explosion.h \
 		effects/billboard.h \
+		effects/heat_haze.cc\
 		\
 		\
Index: /branches/heathaze/src/world_entities/effects/heat_haze.cc
===================================================================
--- /branches/heathaze/src/world_entities/effects/heat_haze.cc	(revision 10066)
+++ /branches/heathaze/src/world_entities/effects/heat_haze.cc	(revision 10067)
@@ -12,2 +12,98 @@
    main-programmer: Silvan Nellen
 */
+
+#include "heat_haze.h"
+
+
+ObjectListDefinition(HeatHaze);
+
+/**
+ * constructs and loads a HeatHaze from a XML-element
+ * @param root the XML-element to load from
+ */
+HeatHaze::HeatHaze(const TiXmlElement* root)
+{
+  this->registerObject(this, HeatHaze::_objectList);
+  this->init();
+  if (root != NULL)
+    this->loadParams(root);
+}
+
+
+/**
+ * standard deconstructor
+ */
+HeatHaze::~HeatHaze ()
+{
+
+}
+
+
+/**
+ * initializes the HeatHaze
+ * @todo change this to what you wish
+ */
+void HeatHaze::init()
+{
+
+}
+
+
+/**
+ * loads a HeatHaze from a XML-element
+ * @param root the XML-element to load from
+ * @todo make the class Loadable
+ */
+void HeatHaze::loadParams(const TiXmlElement* root)
+{
+  // all the clases this Entity is directly derived from must be called in this way, to load all settings.
+  WorldEntity::loadParam(root);
+
+
+  /**
+   * @todo: make the class Loadable
+   */
+}
+
+
+/**
+ * advances the HeatHaze about time seconds
+ * @param time the Time to step
+ */
+void HeatHaze::tick(float time)
+{
+
+}
+
+/**
+ * draws this worldEntity
+ */
+void HeatHaze::draw () const
+{
+  /*glMatrixMode(GL_MODELVIEW);
+  glPushMatrix();
+  float matrix[4][4];
+
+  // translate 
+  glTranslatef (this->getAbsCoor ().x,
+                this->getAbsCoor ().y,
+                this->getAbsCoor ().z);
+  // rotate 
+  this->getAbsDir().matrix(matrix);
+  glMultMatrixf((float*)matrix);
+
+  if (model)
+    model->draw();
+  glPopMatrix();
+ */
+}
+
+
+/**
+ *
+ *
+ */
+void HeatHaze::collidesWith (WorldEntity* entity, const Vector& location)
+{
+
+}
Index: /branches/heathaze/src/world_entities/effects/heat_haze.h
===================================================================
--- /branches/heathaze/src/world_entities/effects/heat_haze.h	(revision 10066)
+++ /branches/heathaze/src/world_entities/effects/heat_haze.h	(revision 10067)
@@ -3,2 +3,33 @@
  * A class to generate a heat haze effect
  */
+
+#ifndef _HEAT_HAZE_H
+#define _HEAT_HAZE_H
+
+#include "world_entity.h"
+
+//! A Class to generate a heat haze effect
+
+class HeatHaze : public WorldEntity
+{
+ ObjectListDeclaration(HeatHaze);
+ public:
+  HeatHaze(const TiXmlElement* root = NULL);
+  virtual ~HeatHaze();
+
+  virtual void loadParams(const TiXmlElement* root);
+  void init();
+
+  virtual void postSpawn ();
+  virtual void leftWorld ();
+
+
+  virtual void draw() const;
+  virtual void tick(float time);
+  virtual void collidesWith (WorldEntity* entity, const Vector& location);
+
+ private:
+
+};
+
+#endif /* _HEAT_HAZE_H */
