Index: orxonox/trunk/src/lib/particles/particle_system.h
===================================================================
--- orxonox/trunk/src/lib/particles/particle_system.h	(revision 4679)
+++ orxonox/trunk/src/lib/particles/particle_system.h	(revision 4680)
@@ -101,5 +101,5 @@
   inline float getMass(void) const { return this->initialMass; };
 
-  unsigned int getFaceCount(void) const;
+  virtual unsigned int getFaceCount(void) const;
 
 
Index: orxonox/trunk/src/world_entities/skybox.cc
===================================================================
--- orxonox/trunk/src/world_entities/skybox.cc	(revision 4679)
+++ orxonox/trunk/src/world_entities/skybox.cc	(revision 4680)
@@ -74,5 +74,4 @@
   this->size = 100.0;
 
-  this->skyModel = NULL;
   this->material = new Material*[6];
   for (int i = 0; i < 6; i++)
@@ -179,5 +178,5 @@
   glTranslatef(r.x, r.y, r.z);
 
-  this->skyModel->draw();
+  this->model->draw();
 
   glPopMatrix();
@@ -192,42 +191,42 @@
 void SkyBox::rebuild()
 {
-  if (this->skyModel)
-    delete skyModel;
-  skyModel = new Model();
-
-  this->skyModel->addVertex (-0.5*size, -0.5*size, 0.5*size);
-  this->skyModel->addVertex (0.5*size, -0.5*size, 0.5*size);
-  this->skyModel->addVertex (-0.5*size, 0.5*size, 0.5*size);
-  this->skyModel->addVertex (0.5*size, 0.5*size, 0.5*size);
-  this->skyModel->addVertex (-0.5*size, 0.5*size, -0.5*size);
-  this->skyModel->addVertex (0.5*size, 0.5*size, -0.5*size);
-  this->skyModel->addVertex (-0.5*size, -0.5*size, -0.5*size);
-  this->skyModel->addVertex (0.5*size, -0.5*size, -0.5*size);
-
-  this->skyModel->addVertexTexture (0.0, 1.0);
-  this->skyModel->addVertexTexture (1.0, 1.0);
-  this->skyModel->addVertexTexture (1.0, 0.0);
-  this->skyModel->addVertexTexture (0.0, 0.0);
-
-  this->skyModel->addVertexNormal (0.0, 0.0, 1.0);
-  this->skyModel->addVertexNormal (0.0, 1.0, 0.0);
-  this->skyModel->addVertexNormal (0.0, 0.0, -1.0);
-  this->skyModel->addVertexNormal (0.0, -1.0, 0.0);
-  this->skyModel->addVertexNormal (1.0, 0.0, 0.0);
-  this->skyModel->addVertexNormal (-1.0, 0.0, 0.0);
-
-  this->skyModel->setMaterial(material[0]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,0,3, 3,1,3, 5,2,3, 4,3,3); // top
-  this->skyModel->setMaterial(material[1]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,1, 7,1,1, 1,2,1, 0,3,1); // bottom
-  this->skyModel->setMaterial(material[2]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,2, 5,3,2, 7,0,2, 6,1,2); // left
-  this->skyModel->setMaterial(material[3]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,0, 1,1,0, 3,2,0, 2,3,0); // right
-  this->skyModel->setMaterial(material[4]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,5); // front
-  this->skyModel->setMaterial(material[5]);
-  this->skyModel->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,4, 0,1,4, 2,2,4, 4,3,4); // back
-
-  this->skyModel->finalize();
-}
+  if (this->model)
+    delete this->model;
+  model = new Model();
+
+  this->model->addVertex (-0.5*size, -0.5*size, 0.5*size);
+  this->model->addVertex (0.5*size, -0.5*size, 0.5*size);
+  this->model->addVertex (-0.5*size, 0.5*size, 0.5*size);
+  this->model->addVertex (0.5*size, 0.5*size, 0.5*size);
+  this->model->addVertex (-0.5*size, 0.5*size, -0.5*size);
+  this->model->addVertex (0.5*size, 0.5*size, -0.5*size);
+  this->model->addVertex (-0.5*size, -0.5*size, -0.5*size);
+  this->model->addVertex (0.5*size, -0.5*size, -0.5*size);
+
+  this->model->addVertexTexture (0.0, 1.0);
+  this->model->addVertexTexture (1.0, 1.0);
+  this->model->addVertexTexture (1.0, 0.0);
+  this->model->addVertexTexture (0.0, 0.0);
+
+  this->model->addVertexNormal (0.0, 0.0, 1.0);
+  this->model->addVertexNormal (0.0, 1.0, 0.0);
+  this->model->addVertexNormal (0.0, 0.0, -1.0);
+  this->model->addVertexNormal (0.0, -1.0, 0.0);
+  this->model->addVertexNormal (1.0, 0.0, 0.0);
+  this->model->addVertexNormal (-1.0, 0.0, 0.0);
+
+  this->model->setMaterial(material[0]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,0,3, 3,1,3, 5,2,3, 4,3,3); // top
+  this->model->setMaterial(material[1]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,1, 7,1,1, 1,2,1, 0,3,1); // bottom
+  this->model->setMaterial(material[2]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,2, 5,3,2, 7,0,2, 6,1,2); // left
+  this->model->setMaterial(material[3]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,0, 1,1,0, 3,2,0, 2,3,0); // right
+  this->model->setMaterial(material[4]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,5); // front
+  this->model->setMaterial(material[5]);
+  this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,4, 0,1,4, 2,2,4, 4,3,4); // back
+
+  this->model->finalize();
+}
Index: orxonox/trunk/src/world_entities/skybox.h
===================================================================
--- orxonox/trunk/src/world_entities/skybox.h	(revision 4679)
+++ orxonox/trunk/src/world_entities/skybox.h	(revision 4680)
@@ -26,7 +26,8 @@
   virtual ~SkyBox();
 
+  void preInit(void);
+
   void loadParams(const TiXmlElement* root);
 
-  void preInit(void);
   void postInit(void);
 
@@ -35,6 +36,8 @@
   /** \brief assumes jpg as input-format */
   void setTexture(const char* name) { setTextureAndType (name, "jpg"); };
+
   void setTextureAndType(const char* name, const char* extension);
-  void setTextures(const char* top, const char* bottom, const char* left, const char* right, const char* front, const char* back);
+  void setTextures(const char* top, const char* bottom, const char* left,
+                   const char* right, const char* front, const char* back);
 
   virtual void draw();
@@ -43,5 +46,4 @@
   void rebuild();
 
-  Model*          skyModel;        //!< A Model for the Sky. This must not be the same as the Model from WorldEntity, because it is not alocated through the ResourceManager.
   Material**      material;        //!< Materials for the SkyBox. sorted by number (0-5) top, bottom, left, right, front, back
   float           size;            //!< Size of the SkyBox. This should match the frustum maximum range.
Index: orxonox/trunk/src/world_entities/world_entity.cc
===================================================================
--- orxonox/trunk/src/world_entities/world_entity.cc	(revision 4679)
+++ orxonox/trunk/src/world_entities/world_entity.cc	(revision 4680)
@@ -19,5 +19,4 @@
 
 #include "world_entity.h"
-#include "model.h"
 #include "list.h"
 #include "vector.h"
Index: orxonox/trunk/src/world_entities/world_entity.h
===================================================================
--- orxonox/trunk/src/world_entities/world_entity.h	(revision 4679)
+++ orxonox/trunk/src/world_entities/world_entity.h	(revision 4680)
@@ -1,3 +1,3 @@
-/*! 
+/*!
     \file world_entity.h
     \brief Definition of the basic WorldEntity
@@ -12,8 +12,8 @@
 #include "factory.h"
 #include "load_param.h"
+#include "model.h"
 
 //class CollisionCluster;
 class CharacterAttributes;
-class Model;
 class SoundEngine;
 class SoundBuffer;
@@ -22,5 +22,5 @@
 //! Basic class from which all interactive stuff in the world is derived from
 class WorldEntity : public PNode
-{	
+{
   friend class World;
 
@@ -33,8 +33,8 @@
 
   //void setCollision (CollisionCluster* newhull);
-  
+
   //void addAbility(Ability* ability);
   //void removeAbility(Ability* ability);
-  void setDrawable (bool bDraw);  
+  void setDrawable (bool bDraw);
   void setCharacterAttributes(CharacterAttributes* charAttr);
   CharacterAttributes* getCharacterAttributes();
@@ -47,12 +47,15 @@
   virtual void command (Command* cmd);
 
+  /** \returns the Count of Faces on this WorldEntity */
+  virtual unsigned int getFaceCount (void) const { if (this->model) return this->model->getFaceCount(); else return 0; };
+
   void processDraw ();
   virtual void draw ();
   virtual void tick (float time);
-  
+
  protected:
   Model* model;                  //!< The model that should be loaded for this entity.
   CharacterAttributes* charAttr;      //!< the character attributes of a world_entity
-  
+
  private:
   bool bCollide;                      //!< If it should be considered for the collisiontest.
