Index: /trunk/src/lib/coord/p_node.cc
===================================================================
--- /trunk/src/lib/coord/p_node.cc	(revision 6511)
+++ /trunk/src/lib/coord/p_node.cc	(revision 6512)
@@ -123,5 +123,5 @@
 void PNode::loadParams(const TiXmlElement* root)
 {
-  static_cast<BaseObject*>(this)->loadParams(root);
+  BaseObject::loadParams(root);
 
   LoadParam(root, "rel-coor", this, PNode, setRelCoor)
Index: /trunk/src/lib/coord/p_node.h
===================================================================
--- /trunk/src/lib/coord/p_node.h	(revision 6511)
+++ /trunk/src/lib/coord/p_node.h	(revision 6512)
@@ -78,5 +78,5 @@
   virtual ~PNode ();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void init();
Index: /trunk/src/lib/graphics/light.cc
===================================================================
--- /trunk/src/lib/graphics/light.cc	(revision 6511)
+++ /trunk/src/lib/graphics/light.cc	(revision 6512)
@@ -86,5 +86,5 @@
 void Light::loadParams(const TiXmlElement* root)
 {
-  static_cast<PNode*>(this)->loadParams(root);
+  PNode::loadParams(root);
 
   LoadParam(root, "diffuse-color", this, Light, setDiffuseColor)
Index: /trunk/src/lib/graphics/light.h
===================================================================
--- /trunk/src/lib/graphics/light.h	(revision 6511)
+++ /trunk/src/lib/graphics/light.h	(revision 6512)
@@ -29,5 +29,5 @@
   virtual ~Light();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void setDiffuseColor(GLfloat r, GLfloat g, GLfloat b);
@@ -95,5 +95,5 @@
   inline static LightManager* getInstance() { if (!singletonRef) singletonRef = new LightManager();  return singletonRef; };
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void loadLights(const TiXmlElement* root);
 
Index: /trunk/src/lib/graphics/render2D/element_2d.cc
===================================================================
--- /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 6511)
+++ /trunk/src/lib/graphics/render2D/element_2d.cc	(revision 6512)
@@ -131,4 +131,6 @@
 void Element2D::loadParams(const TiXmlElement* root)
 {
+  BaseObject::loadParams(root);
+
   // ELEMENT2D-native settings.
   LoadParam(root, "alignment", this, Element2D, setAlignment)
Index: /trunk/src/lib/graphics/render2D/element_2d.h
===================================================================
--- /trunk/src/lib/graphics/render2D/element_2d.h	(revision 6511)
+++ /trunk/src/lib/graphics/render2D/element_2d.h	(revision 6512)
@@ -91,5 +91,5 @@
     virtual ~Element2D();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     // ACTIVATION //
Index: /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.h
===================================================================
--- /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.h	(revision 6511)
+++ /trunk/src/lib/gui/gl_gui/glmenu/glmenu_imagescreen.h	(revision 6512)
@@ -17,5 +17,5 @@
  public:
   GLMenuImageScreen (const TiXmlElement* root = NULL);
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   virtual ~GLMenuImageScreen ();
 
Index: /trunk/src/lib/lang/base_object.h
===================================================================
--- /trunk/src/lib/lang/base_object.h	(revision 6511)
+++ /trunk/src/lib/lang/base_object.h	(revision 6512)
@@ -28,5 +28,5 @@
   virtual ~BaseObject ();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void setName (const char* newName);
   /** returns the Name of this Object */
Index: /trunk/src/lib/particles/particle_emitter.cc
===================================================================
--- /trunk/src/lib/particles/particle_emitter.cc	(revision 6511)
+++ /trunk/src/lib/particles/particle_emitter.cc	(revision 6512)
@@ -93,5 +93,5 @@
 void ParticleEmitter::loadParams(const TiXmlElement* root)
 {
-  static_cast<PNode*>(this)->loadParams(root);
+  PNode::loadParams(root);
 
   LoadParam(root, "type", this, ParticleEmitter, setType)
Index: /trunk/src/lib/particles/particle_emitter.h
===================================================================
--- /trunk/src/lib/particles/particle_emitter.h	(revision 6511)
+++ /trunk/src/lib/particles/particle_emitter.h	(revision 6512)
@@ -39,5 +39,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   /* controlling the emitter: interface */
Index: /trunk/src/lib/particles/particle_engine.h
===================================================================
--- /trunk/src/lib/particles/particle_engine.h	(revision 6511)
+++ /trunk/src/lib/particles/particle_engine.h	(revision 6512)
@@ -37,5 +37,5 @@
   inline static ParticleEngine* getInstance() { if (!singletonRef) singletonRef = new ParticleEngine();  return singletonRef; };
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void tick(float dt);
Index: /trunk/src/lib/particles/particle_system.cc
===================================================================
--- /trunk/src/lib/particles/particle_system.cc	(revision 6511)
+++ /trunk/src/lib/particles/particle_system.cc	(revision 6512)
@@ -116,6 +116,6 @@
 void ParticleSystem::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
-  static_cast<PhysicsInterface*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
+  PhysicsInterface::loadParams(root);
 
   LoadParam(root, "max-count", this, ParticleSystem, setMaxCount)
Index: /trunk/src/lib/particles/particle_system.h
===================================================================
--- /trunk/src/lib/particles/particle_system.h	(revision 6511)
+++ /trunk/src/lib/particles/particle_system.h	(revision 6512)
@@ -74,5 +74,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void setType(const char* particleType);
Index: /trunk/src/lib/physics/fields/field.cc
===================================================================
--- /trunk/src/lib/physics/fields/field.cc	(revision 6511)
+++ /trunk/src/lib/physics/fields/field.cc	(revision 6512)
@@ -58,5 +58,5 @@
 void Field::loadParams(const TiXmlElement* root)
 {
-  static_cast<PNode*>(this)->loadParams(root);
+  PNode::loadParams(root);
 
   LoadParam(root, "magnitude", this, Field, setMagnitude)
Index: /trunk/src/lib/physics/fields/field.h
===================================================================
--- /trunk/src/lib/physics/fields/field.h	(revision 6511)
+++ /trunk/src/lib/physics/fields/field.h	(revision 6512)
@@ -39,5 +39,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   /**
Index: /trunk/src/lib/physics/fields/gravity.cc
===================================================================
--- /trunk/src/lib/physics/fields/gravity.cc	(revision 6511)
+++ /trunk/src/lib/physics/fields/gravity.cc	(revision 6512)
@@ -44,5 +44,5 @@
 void Gravity::loadParams(const TiXmlElement* root)
 {
-  static_cast<Field*>(this)->loadParams(root);
+  Field::loadParams(root);
 }
 
Index: /trunk/src/lib/physics/fields/gravity.h
===================================================================
--- /trunk/src/lib/physics/fields/gravity.h	(revision 6511)
+++ /trunk/src/lib/physics/fields/gravity.h	(revision 6512)
@@ -21,5 +21,5 @@
   virtual ~Gravity();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   virtual Vector calcForce(const Vector& data) const;
Index: /trunk/src/lib/physics/physics_connection.cc
===================================================================
--- /trunk/src/lib/physics/physics_connection.cc	(revision 6511)
+++ /trunk/src/lib/physics/physics_connection.cc	(revision 6512)
@@ -50,5 +50,5 @@
   this->type = PCON_PhysIField;
 
-  static_cast<BaseObject*>(this)->loadParams(root);
+  BaseObject::loadParams(root);
 
   LoadParam(root, "subject", this, PhysicsConnection, setSubject)
Index: /trunk/src/lib/physics/physics_engine.h
===================================================================
--- /trunk/src/lib/physics/physics_engine.h	(revision 6511)
+++ /trunk/src/lib/physics/physics_engine.h	(revision 6512)
@@ -27,5 +27,5 @@
   inline static PhysicsEngine* getInstance() { if (!singletonRef) singletonRef = new PhysicsEngine();  return singletonRef; };
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void loadFields(const TiXmlElement* root);
   void loadConnections(const TiXmlElement* root);
Index: /trunk/src/proto/proto_world_entity.cc
===================================================================
--- /trunk/src/proto/proto_world_entity.cc	(revision 6511)
+++ /trunk/src/proto/proto_world_entity.cc	(revision 6512)
@@ -63,5 +63,5 @@
 {
   // all the clases this Entity is directly derived from must be called in this way, to load all settings.
-  static_cast<WorldEntity*>(this)->loadParam(root);
+  WorldEntity::loadParam(root);
 
 
Index: /trunk/src/proto/proto_world_entity.h
===================================================================
--- /trunk/src/proto/proto_world_entity.h	(revision 6511)
+++ /trunk/src/proto/proto_world_entity.h	(revision 6512)
@@ -17,5 +17,5 @@
   virtual ~ProtoWorldEntity();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void init();
 
Index: /trunk/src/story_entities/campaign.cc
===================================================================
--- /trunk/src/story_entities/campaign.cc	(revision 6511)
+++ /trunk/src/story_entities/campaign.cc	(revision 6512)
@@ -61,5 +61,5 @@
 void Campaign::loadParams(const TiXmlElement* root)
 {
-  static_cast<StoryEntity*>(this)->loadParams(root);
+  StoryEntity::loadParams(root);
 
   PRINTF(4)("Loaded Campaign specific stuff\n");
Index: /trunk/src/story_entities/campaign.h
===================================================================
--- /trunk/src/story_entities/campaign.h	(revision 6511)
+++ /trunk/src/story_entities/campaign.h	(revision 6512)
@@ -23,5 +23,5 @@
     virtual ~Campaign ();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual bool start();
Index: /trunk/src/story_entities/campaign_data.h
===================================================================
--- /trunk/src/story_entities/campaign_data.h	(revision 6511)
+++ /trunk/src/story_entities/campaign_data.h	(revision 6512)
@@ -21,5 +21,5 @@
     virtual ~CampaignData();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     void loadData(const TiXmlElement* root);
Index: /trunk/src/story_entities/dedicated_server_world.cc
===================================================================
--- /trunk/src/story_entities/dedicated_server_world.cc	(revision 6511)
+++ /trunk/src/story_entities/dedicated_server_world.cc	(revision 6512)
@@ -63,5 +63,5 @@
 void DedicatedServerWorld::loadParams(const TiXmlElement* root)
 {
-  static_cast<GameWorld*>(this)->loadParams(root);
+  GameWorld::loadParams(root);
 
   PRINTF(4)("Loaded DedicatedServerWorld specific stuff\n");
Index: /trunk/src/story_entities/dedicated_server_world.h
===================================================================
--- /trunk/src/story_entities/dedicated_server_world.h	(revision 6511)
+++ /trunk/src/story_entities/dedicated_server_world.h	(revision 6512)
@@ -25,5 +25,5 @@
     virtual ~DedicatedServerWorld ();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
   private:
Index: /trunk/src/story_entities/game_world.cc
===================================================================
--- /trunk/src/story_entities/game_world.cc	(revision 6511)
+++ /trunk/src/story_entities/game_world.cc	(revision 6512)
@@ -110,5 +110,5 @@
 void GameWorld::loadParams(const TiXmlElement* root)
 {
-  static_cast<StoryEntity*>(this)->loadParams(root);
+  StoryEntity::loadParams(root);
 
   LoadParam(root, "path", this, GameWorld, setPath)
Index: /trunk/src/story_entities/game_world.h
===================================================================
--- /trunk/src/story_entities/game_world.h	(revision 6511)
+++ /trunk/src/story_entities/game_world.h	(revision 6512)
@@ -29,5 +29,5 @@
     virtual ~GameWorld ();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     /* functions from story-entity */
Index: /trunk/src/story_entities/multi_player_world.cc
===================================================================
--- /trunk/src/story_entities/multi_player_world.cc	(revision 6511)
+++ /trunk/src/story_entities/multi_player_world.cc	(revision 6512)
@@ -68,5 +68,5 @@
 void MultiPlayerWorld::loadParams(const TiXmlElement* root)
 {
-  static_cast<GameWorld*>(this)->loadParams(root);
+  GameWorld::loadParams(root);
 
   PRINTF(4)("Creating a MultiPlayerWorld\n");
Index: /trunk/src/story_entities/multi_player_world.h
===================================================================
--- /trunk/src/story_entities/multi_player_world.h	(revision 6511)
+++ /trunk/src/story_entities/multi_player_world.h	(revision 6512)
@@ -25,5 +25,5 @@
   virtual ~MultiPlayerWorld ();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void debug();
Index: /trunk/src/story_entities/single_player_world.cc
===================================================================
--- /trunk/src/story_entities/single_player_world.cc	(revision 6511)
+++ /trunk/src/story_entities/single_player_world.cc	(revision 6512)
@@ -71,5 +71,5 @@
 void SinglePlayerWorld::loadParams(const TiXmlElement* root)
 {
-  static_cast<GameWorld*>(this)->loadParams(root);
+  GameWorld::loadParams(root);
 
   PRINTF(4)("Loaded SinglePlayerWorld specific stuff\n");
Index: /trunk/src/story_entities/single_player_world.h
===================================================================
--- /trunk/src/story_entities/single_player_world.h	(revision 6511)
+++ /trunk/src/story_entities/single_player_world.h	(revision 6512)
@@ -27,5 +27,5 @@
     virtual ~SinglePlayerWorld ();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 };
 
Index: /trunk/src/story_entities/story_entity.cc
===================================================================
--- /trunk/src/story_entities/story_entity.cc	(revision 6511)
+++ /trunk/src/story_entities/story_entity.cc	(revision 6512)
@@ -57,5 +57,5 @@
 void StoryEntity::loadParams(const TiXmlElement* root)
 {
-  static_cast<BaseObject*>(this)->loadParams(root);
+  BaseObject::loadParams(root);
 
   LoadParam(root, "identifier", this, StoryEntity, setStoryID)
Index: /trunk/src/story_entities/story_entity.h
===================================================================
--- /trunk/src/story_entities/story_entity.h	(revision 6511)
+++ /trunk/src/story_entities/story_entity.h	(revision 6512)
@@ -30,5 +30,5 @@
   virtual ~StoryEntity ();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   /* initialisation and loading */
Index: /trunk/src/subprojects/collision_detection/collision_test_entity.cc
===================================================================
--- /trunk/src/subprojects/collision_detection/collision_test_entity.cc	(revision 6511)
+++ /trunk/src/subprojects/collision_detection/collision_test_entity.cc	(revision 6512)
@@ -71,5 +71,5 @@
 void CollisionTestEntity::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/subprojects/collision_detection/collision_test_entity.h
===================================================================
--- /trunk/src/subprojects/collision_detection/collision_test_entity.h	(revision 6511)
+++ /trunk/src/subprojects/collision_detection/collision_test_entity.h	(revision 6512)
@@ -24,5 +24,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
 
Index: /trunk/src/util/hud.cc
===================================================================
--- /trunk/src/util/hud.cc	(revision 6511)
+++ /trunk/src/util/hud.cc	(revision 6512)
@@ -55,4 +55,5 @@
 void Hud::loadParams(const TiXmlElement* root)
 {
+  Element2D::loadParams(root);
 }
 
Index: /trunk/src/util/hud.h
===================================================================
--- /trunk/src/util/hud.h	(revision 6511)
+++ /trunk/src/util/hud.h	(revision 6512)
@@ -23,5 +23,5 @@
 
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void setBackGround();
Index: /trunk/src/util/track/track_manager.cc
===================================================================
--- /trunk/src/util/track/track_manager.cc	(revision 6511)
+++ /trunk/src/util/track/track_manager.cc	(revision 6512)
@@ -394,5 +394,5 @@
  * @param root the TiXmlElement to load the Data from
 */
-bool TrackManager::loadParams(const TiXmlElement* root)
+void TrackManager::loadParams(const TiXmlElement* root)
 {
   double x, y, z, d;
Index: /trunk/src/util/track/track_manager.h
===================================================================
--- /trunk/src/util/track/track_manager.h	(revision 6511)
+++ /trunk/src/util/track/track_manager.h	(revision 6512)
@@ -139,5 +139,5 @@
   inline static TrackManager* getInstance() { if (!singletonRef) singletonRef = new TrackManager();  return singletonRef; };
 
-  bool loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   // Methods to change the Path (initialisation)
Index: /trunk/src/world_entities/creatures/md2_creature.cc
===================================================================
--- /trunk/src/world_entities/creatures/md2_creature.cc	(revision 6511)
+++ /trunk/src/world_entities/creatures/md2_creature.cc	(revision 6512)
@@ -205,5 +205,5 @@
 void MD2Creature::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/world_entities/creatures/md2_creature.h
===================================================================
--- /trunk/src/world_entities/creatures/md2_creature.h	(revision 6511)
+++ /trunk/src/world_entities/creatures/md2_creature.h	(revision 6512)
@@ -25,5 +25,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void enter();
Index: /trunk/src/world_entities/environment.cc
===================================================================
--- /trunk/src/world_entities/environment.cc	(revision 6511)
+++ /trunk/src/world_entities/environment.cc	(revision 6512)
@@ -71,5 +71,5 @@
 void Environment::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/world_entities/environment.h
===================================================================
--- /trunk/src/world_entities/environment.h	(revision 6511)
+++ /trunk/src/world_entities/environment.h	(revision 6512)
@@ -24,5 +24,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
 
Index: /trunk/src/world_entities/npcs/ground_turret.cc
===================================================================
--- /trunk/src/world_entities/npcs/ground_turret.cc	(revision 6511)
+++ /trunk/src/world_entities/npcs/ground_turret.cc	(revision 6512)
@@ -76,5 +76,5 @@
 {
   // all the clases this Entity is directly derived from must be called in this way, to load all settings.
-  static_cast<NPC*>(this)->loadParams(root);
+  NPC::loadParams(root);
 
 
Index: /trunk/src/world_entities/npcs/ground_turret.h
===================================================================
--- /trunk/src/world_entities/npcs/ground_turret.h	(revision 6511)
+++ /trunk/src/world_entities/npcs/ground_turret.h	(revision 6512)
@@ -20,5 +20,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   virtual void postSpawn ();
Index: /trunk/src/world_entities/power_ups/laser_power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/laser_power_up.cc	(revision 6511)
+++ /trunk/src/world_entities/power_ups/laser_power_up.cc	(revision 6512)
@@ -65,5 +65,5 @@
 void LaserPowerUp::loadParams(const TiXmlElement* root)
 {
-  static_cast<PowerUp*>(this)->loadParams(root);
+  PowerUp::loadParams(root);
 
 }
Index: /trunk/src/world_entities/power_ups/laser_power_up.h
===================================================================
--- /trunk/src/world_entities/power_ups/laser_power_up.h	(revision 6511)
+++ /trunk/src/world_entities/power_ups/laser_power_up.h	(revision 6512)
@@ -19,4 +19,7 @@
   virtual ~LaserPowerUp ();
 
+  virtual void loadParams(const TiXmlElement* root);
+
+
   virtual void LaserPowerUp::collidesWith(WorldEntity* entity, const Vector& location);
   virtual void tick(float dt);
@@ -28,5 +31,4 @@
   private:
    void init();
-   void loadParams(const TiXmlElement* root);
 
   private:
Index: /trunk/src/world_entities/power_ups/param_power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/param_power_up.cc	(revision 6511)
+++ /trunk/src/world_entities/power_ups/param_power_up.cc	(revision 6512)
@@ -63,5 +63,5 @@
 void ParamPowerUp::loadParams(const TiXmlElement* root)
 {
-  static_cast<PowerUp*>(this)->loadParams(root);
+  PowerUp::loadParams(root);
   LoadParam(root, "type", this, ParamPowerUp, setType);
 
Index: /trunk/src/world_entities/power_ups/param_power_up.h
===================================================================
--- /trunk/src/world_entities/power_ups/param_power_up.h	(revision 6511)
+++ /trunk/src/world_entities/power_ups/param_power_up.h	(revision 6512)
@@ -38,5 +38,5 @@
 private:
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
 private:
Index: /trunk/src/world_entities/power_ups/power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/power_up.cc	(revision 6511)
+++ /trunk/src/world_entities/power_ups/power_up.cc	(revision 6512)
@@ -48,5 +48,5 @@
 void PowerUp::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/world_entities/power_ups/power_up.h
===================================================================
--- /trunk/src/world_entities/power_ups/power_up.h	(revision 6511)
+++ /trunk/src/world_entities/power_ups/power_up.h	(revision 6512)
@@ -20,5 +20,5 @@
 
 public:
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void collidesWith (WorldEntity* entity, const Vector& location);
 
Index: /trunk/src/world_entities/power_ups/turret_power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/turret_power_up.cc	(revision 6511)
+++ /trunk/src/world_entities/power_ups/turret_power_up.cc	(revision 6512)
@@ -65,5 +65,5 @@
 void TurretPowerUp::loadParams(const TiXmlElement* root)
 {
-  static_cast<PowerUp*>(this)->loadParams(root);
+  PowerUp::loadParams(root);
 
 }
Index: /trunk/src/world_entities/power_ups/turret_power_up.h
===================================================================
--- /trunk/src/world_entities/power_ups/turret_power_up.h	(revision 6511)
+++ /trunk/src/world_entities/power_ups/turret_power_up.h	(revision 6512)
@@ -19,4 +19,6 @@
   virtual ~TurretPowerUp ();
 
+  virtual void loadParams(const TiXmlElement* root);
+
   virtual void TurretPowerUp::collidesWith(WorldEntity* entity, const Vector& location);
   virtual void tick(float dt);
@@ -28,5 +30,4 @@
   private:
    void init();
-   void loadParams(const TiXmlElement* root);
 
   private:
Index: /trunk/src/world_entities/power_ups/weapon_power_up.cc
===================================================================
--- /trunk/src/world_entities/power_ups/weapon_power_up.cc	(revision 6511)
+++ /trunk/src/world_entities/power_ups/weapon_power_up.cc	(revision 6512)
@@ -57,5 +57,5 @@
 void WeaponPowerUp::loadParams(const TiXmlElement* root)
 {
-  static_cast<PowerUp*>(this)->loadParams(root);
+  PowerUp::loadParams(root);
   const TiXmlElement* elem = root->FirstChildElement("weapon");
   if(elem != NULL && (elem = elem->FirstChildElement()) != NULL)
Index: /trunk/src/world_entities/power_ups/weapon_power_up.h
===================================================================
--- /trunk/src/world_entities/power_ups/weapon_power_up.h	(revision 6511)
+++ /trunk/src/world_entities/power_ups/weapon_power_up.h	(revision 6512)
@@ -19,4 +19,6 @@
   virtual ~WeaponPowerUp ();
 
+  virtual void loadParams(const TiXmlElement* root);
+
   Weapon* getWeapon();
   void setWeaponClass(const char* name);
@@ -30,5 +32,4 @@
 private:
   void init();
-  void loadParams(const TiXmlElement* root);
 private:
   Weapon* weapon;
Index: /trunk/src/world_entities/projectiles/bomb.cc
===================================================================
--- /trunk/src/world_entities/projectiles/bomb.cc	(revision 6511)
+++ /trunk/src/world_entities/projectiles/bomb.cc	(revision 6512)
@@ -96,5 +96,5 @@
 {
   // all the clases this Entity is directly derived from must be called in this way, to load all settings.
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  Projectile::loadParams(root);
 
 
Index: /trunk/src/world_entities/projectiles/bomb.h
===================================================================
--- /trunk/src/world_entities/projectiles/bomb.h	(revision 6511)
+++ /trunk/src/world_entities/projectiles/bomb.h	(revision 6512)
@@ -22,5 +22,5 @@
   virtual ~Bomb();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
   void init();
 
Index: /trunk/src/world_entities/skybox.cc
===================================================================
--- /trunk/src/world_entities/skybox.cc	(revision 6511)
+++ /trunk/src/world_entities/skybox.cc	(revision 6512)
@@ -58,5 +58,5 @@
 void SkyBox::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 
   LoadParam(root, "Materialset", this, SkyBox, setTexture)
Index: /trunk/src/world_entities/skybox.h
===================================================================
--- /trunk/src/world_entities/skybox.h	(revision 6511)
+++ /trunk/src/world_entities/skybox.h	(revision 6512)
@@ -29,5 +29,5 @@
   void preInit();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void postInit();
Index: /trunk/src/world_entities/space_ships/helicopter.cc
===================================================================
--- /trunk/src/world_entities/space_ships/helicopter.cc	(revision 6511)
+++ /trunk/src/world_entities/space_ships/helicopter.cc	(revision 6512)
@@ -190,5 +190,5 @@
 void Helicopter::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/world_entities/space_ships/helicopter.h
===================================================================
--- /trunk/src/world_entities/space_ships/helicopter.h	(revision 6511)
+++ /trunk/src/world_entities/space_ships/helicopter.h	(revision 6512)
@@ -22,5 +22,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void enter();
Index: /trunk/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6511)
+++ /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6512)
@@ -205,5 +205,5 @@
 void SpaceShip::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 }
 
Index: /trunk/src/world_entities/space_ships/space_ship.h
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.h	(revision 6511)
+++ /trunk/src/world_entities/space_ships/space_ship.h	(revision 6512)
@@ -26,5 +26,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void enter();
Index: /trunk/src/world_entities/spawning_point.cc
===================================================================
--- /trunk/src/world_entities/spawning_point.cc	(revision 6511)
+++ /trunk/src/world_entities/spawning_point.cc	(revision 6512)
@@ -71,5 +71,5 @@
 {
   /* let the world entity its stuff first */
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 
   /* now load the frequency */
Index: /trunk/src/world_entities/spawning_point.h
===================================================================
--- /trunk/src/world_entities/spawning_point.h	(revision 6511)
+++ /trunk/src/world_entities/spawning_point.h	(revision 6512)
@@ -22,5 +22,5 @@
     void init();
 
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     /**  sets the entity that is going to be spawned by this point @param classID: the id from the class_id.h file */
Index: /trunk/src/world_entities/terrain.cc
===================================================================
--- /trunk/src/world_entities/terrain.cc	(revision 6511)
+++ /trunk/src/world_entities/terrain.cc	(revision 6512)
@@ -105,5 +105,5 @@
 void Terrain::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 
   LoadParam(root, "vegetation", this, Terrain, loadVegetation)
Index: /trunk/src/world_entities/terrain.h
===================================================================
--- /trunk/src/world_entities/terrain.h	(revision 6511)
+++ /trunk/src/world_entities/terrain.h	(revision 6512)
@@ -36,5 +36,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void loadVegetation(const char* vegetationFile);
Index: /trunk/src/world_entities/test_entity.cc
===================================================================
--- /trunk/src/world_entities/test_entity.cc	(revision 6511)
+++ /trunk/src/world_entities/test_entity.cc	(revision 6512)
@@ -67,5 +67,5 @@
 void TestEntity::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 
   LoadParam(root, "md2animation", this, TestEntity, setAnim)
Index: /trunk/src/world_entities/test_entity.h
===================================================================
--- /trunk/src/world_entities/test_entity.h	(revision 6511)
+++ /trunk/src/world_entities/test_entity.h	(revision 6512)
@@ -22,5 +22,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void setAnim(int animationIndex);
Index: /trunk/src/world_entities/weapons/aim.cc
===================================================================
--- /trunk/src/world_entities/weapons/aim.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/aim.cc	(revision 6512)
@@ -89,5 +89,5 @@
 void Aim::loadParams(const TiXmlElement* root)
 {
-  static_cast<PNode*>(this)->loadParams(root);
+  PNode::loadParams(root);
 
   LoadParam(root, "texture", this, Aim, setTexture)
Index: /trunk/src/world_entities/weapons/aim.h
===================================================================
--- /trunk/src/world_entities/weapons/aim.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/aim.h	(revision 6512)
@@ -31,5 +31,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   inline void setSource(PNode* source) { this->source = source; };
Index: /trunk/src/world_entities/weapons/aiming_turret.cc
===================================================================
--- /trunk/src/world_entities/weapons/aiming_turret.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/aiming_turret.cc	(revision 6512)
@@ -102,5 +102,5 @@
 void AimingTurret::loadParams(const TiXmlElement* root)
 {
-  static_cast<Weapon*>(this)->loadParams(root);
+  Weapon::loadParams(root);
 
 }
Index: /trunk/src/world_entities/weapons/aiming_turret.h
===================================================================
--- /trunk/src/world_entities/weapons/aiming_turret.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/aiming_turret.h	(revision 6512)
@@ -20,5 +20,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void activate();
Index: /trunk/src/world_entities/weapons/cannon.cc
===================================================================
--- /trunk/src/world_entities/weapons/cannon.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/cannon.cc	(revision 6512)
@@ -118,6 +118,5 @@
 void Cannon::loadParams(const TiXmlElement* root)
 {
-
-
+  Weapon::loadParams(root);
 }
 
Index: /trunk/src/world_entities/weapons/cannon.h
===================================================================
--- /trunk/src/world_entities/weapons/cannon.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/cannon.h	(revision 6512)
@@ -18,5 +18,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void activate();
Index: /trunk/src/world_entities/weapons/crosshair.cc
===================================================================
--- /trunk/src/world_entities/weapons/crosshair.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/crosshair.cc	(revision 6512)
@@ -82,6 +82,6 @@
 void Crosshair::loadParams(const TiXmlElement* root)
 {
-  static_cast<PNode*>(this)->loadParams(root);
-  static_cast<EventListener*>(this)->loadParams(root);
+  PNode::loadParams(root);
+  EventListener::loadParams(root);
 
   LoadParam(root, "texture", this, Crosshair, setTexture)
Index: /trunk/src/world_entities/weapons/crosshair.h
===================================================================
--- /trunk/src/world_entities/weapons/crosshair.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/crosshair.h	(revision 6512)
@@ -28,5 +28,5 @@
 
   void init();
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void setSize(float size);
Index: /trunk/src/world_entities/weapons/targeting_turret.cc
===================================================================
--- /trunk/src/world_entities/weapons/targeting_turret.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/targeting_turret.cc	(revision 6512)
@@ -103,5 +103,5 @@
 void TargetingTurret::loadParams(const TiXmlElement* root)
 {
-  static_cast<Weapon*>(this)->loadParams(root);
+  Weapon::loadParams(root);
 
 }
Index: /trunk/src/world_entities/weapons/targeting_turret.h
===================================================================
--- /trunk/src/world_entities/weapons/targeting_turret.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/targeting_turret.h	(revision 6512)
@@ -20,5 +20,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void activate();
Index: /trunk/src/world_entities/weapons/test_gun.cc
===================================================================
--- /trunk/src/world_entities/weapons/test_gun.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/test_gun.cc	(revision 6512)
@@ -139,5 +139,5 @@
 void TestGun::loadParams(const TiXmlElement* root)
 {
-
+  Weapon::loadParams(root);
 
 }
Index: /trunk/src/world_entities/weapons/test_gun.h
===================================================================
--- /trunk/src/world_entities/weapons/test_gun.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/test_gun.h	(revision 6512)
@@ -43,5 +43,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void activate();
Index: /trunk/src/world_entities/weapons/turret.cc
===================================================================
--- /trunk/src/world_entities/weapons/turret.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/turret.cc	(revision 6512)
@@ -100,5 +100,5 @@
 void Turret::loadParams(const TiXmlElement* root)
 {
-  static_cast<Weapon*>(this)->loadParams(root);
+  Weapon::loadParams(root);
 
 }
Index: /trunk/src/world_entities/weapons/turret.h
===================================================================
--- /trunk/src/world_entities/weapons/turret.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/turret.h	(revision 6512)
@@ -17,5 +17,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
 
     virtual void activate();
Index: /trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/weapon.cc	(revision 6512)
@@ -111,5 +111,5 @@
 void Weapon::loadParams(const TiXmlElement* root)
 {
-  static_cast<WorldEntity*>(this)->loadParams(root);
+  WorldEntity::loadParams(root);
 
   LoadParam(root, "projectile", this, Weapon, setProjectileType)
Index: /trunk/src/world_entities/weapons/weapon.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/weapon.h	(revision 6512)
@@ -86,5 +86,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
     ////////////////////
 
Index: /trunk/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 6511)
+++ /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 6512)
@@ -116,5 +116,5 @@
 void WeaponManager::loadParams(const TiXmlElement* root)
 {
-  static_cast<BaseObject*>(this)->loadParams(root);
+  BaseObject::loadParams(root);
 
   LoadParam(root, "slot-count", this, WeaponManager, setSlotCount)
Index: /trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6511)
+++ /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6512)
@@ -53,5 +53,5 @@
 
     void init();
-    void loadParams(const TiXmlElement* root);
+    virtual void loadParams(const TiXmlElement* root);
     void loadWeapons(const TiXmlElement* root);
 
Index: /trunk/src/world_entities/world_entity.cc
===================================================================
--- /trunk/src/world_entities/world_entity.cc	(revision 6511)
+++ /trunk/src/world_entities/world_entity.cc	(revision 6512)
@@ -92,5 +92,5 @@
 {
   // Do the PNode loading stuff
-  static_cast<PNode*>(this)->loadParams(root);
+  PNode::loadParams(root);
 
   LoadParam(root, "md2texture", this, WorldEntity, loadMD2Texture)
Index: /trunk/src/world_entities/world_entity.h
===================================================================
--- /trunk/src/world_entities/world_entity.h	(revision 6511)
+++ /trunk/src/world_entities/world_entity.h	(revision 6512)
@@ -34,5 +34,5 @@
   virtual ~WorldEntity ();
 
-  void loadParams(const TiXmlElement* root);
+  virtual void loadParams(const TiXmlElement* root);
 
   void loadModel(const char* fileName, float scaling = 1.0f, unsigned int modelNumber = 0);
