Index: code/branches/pch/src/core/Clock.cc
===================================================================
--- code/branches/pch/src/core/Clock.cc	(revision 3191)
+++ code/branches/pch/src/core/Clock.cc	(revision 3192)
@@ -57,5 +57,5 @@
         tickTime_ = storedTime_ + timersTime;
         tickDt_ = timersTime - lastTimersTime_;
-        tickDtFloat_ = (float)tickDt_ / 1000000.0f;
+        tickDtFloat_ = static_cast<float>(tickDt_ / 1000000.0f);
 
         if (timersTime > 0x7FFFFFF0)
Index: code/branches/pch/src/core/Clock.h
===================================================================
--- code/branches/pch/src/core/Clock.h	(revision 3191)
+++ code/branches/pch/src/core/Clock.h	(revision 3192)
@@ -39,5 +39,5 @@
 
 #include "CorePrereqs.h"
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
@@ -53,9 +53,9 @@
         unsigned long long getMicroseconds()   const { return tickTime_; }
         unsigned long long getMilliseconds()   const { return tickTime_ / 1000; }
-        int                getSeconds()        const { return tickTime_ / 1000000; }
-        float              getSecondsPrecise() const { return (float)tickTime_ / 1000000.0f; }
+        unsigned long      getSeconds()        const { return static_cast<long> (tickTime_ / 1000000); }
+        float              getSecondsPrecise() const { return static_cast<float>(tickTime_ / 1000000.0f); }
 
         float              getDeltaTime()      const { return tickDtFloat_; }
-        int                getDeltaTimeMicroseconds() const { return tickDt_; }
+        long               getDeltaTimeMicroseconds() const { return tickDt_; }
 
         unsigned long long getRealMicroseconds() const;
@@ -67,5 +67,5 @@
         unsigned long long storedTime_;
         unsigned long long tickTime_;
-        int                tickDt_;
+        long               tickDt_;
         float              tickDtFloat_;
         unsigned long      lastTimersTime_;
Index: code/branches/pch/src/core/ConsoleCommandCompilation.cc
===================================================================
--- code/branches/pch/src/core/ConsoleCommandCompilation.cc	(revision 3191)
+++ code/branches/pch/src/core/ConsoleCommandCompilation.cc	(revision 3192)
@@ -170,5 +170,5 @@
                 COUT(2) << "Warning: Expression could not be parsed to the end! Remains: '" << expr.getRemains() << "'" << std::endl;
             }
-            return expr.getResult();
+            return static_cast<float>(expr.getResult());
         }
         else
Index: code/branches/pch/src/core/Core.cc
===================================================================
--- code/branches/pch/src/core/Core.cc	(revision 3191)
+++ code/branches/pch/src/core/Core.cc	(revision 3192)
@@ -367,5 +367,5 @@
         if (!bInitialized && this->bInitializeRandomNumberGenerator_)
         {
-            srand(time(0));
+            srand(static_cast<unsigned int>(time(0)));
             rand();
             bInitialized = true;
Index: code/branches/pch/src/core/Game.cc
===================================================================
--- code/branches/pch/src/core/Game.cc	(revision 3191)
+++ code/branches/pch/src/core/Game.cc	(revision 3192)
@@ -190,5 +190,5 @@
 
                 if ((*it)->getCountTickTime())
-                    this->addTickTime(this->gameClock_->getRealMicroseconds() - timeBeforeTick);
+                    this->addTickTime(static_cast<uint32_t>(this->gameClock_->getRealMicroseconds() - timeBeforeTick));
             }
 
@@ -212,6 +212,6 @@
 
                 uint32_t framesPerPeriod = this->statisticsTickTimes_.size();
-                this->avgFPS_ = (float)framesPerPeriod / (currentTime - this->statisticsTickTimes_.front().tickTime) * 1000000.0;
-                this->avgTickTime_ = (float)this->periodTickTime_ / framesPerPeriod / 1000.0;
+                this->avgFPS_ = static_cast<float>(framesPerPeriod) / (currentTime - this->statisticsTickTimes_.front().tickTime) * 1000000.0f;
+                this->avgTickTime_ = static_cast<float>(this->periodTickTime_) / framesPerPeriod / 1000.0f;
 
                 this->periodTime_ -= this->statisticsRefreshCycle_;
Index: code/branches/pch/src/core/input/InputManager.cc
===================================================================
--- code/branches/pch/src/core/input/InputManager.cc	(revision 3191)
+++ code/branches/pch/src/core/input/InputManager.cc	(revision 3192)
@@ -1166,5 +1166,5 @@
         else
         {
-            float fValue = value - joyStickCalibrations_[iJoyStick].middleValue[axis];
+            float fValue = static_cast<float>(value - joyStickCalibrations_[iJoyStick].middleValue[axis]);
             if (fValue > 0.0f)
                 fValue *= joyStickCalibrations_[iJoyStick].positiveCoeff[axis];
Index: code/branches/pch/src/core/input/KeyBinder.cc
===================================================================
--- code/branches/pch/src/core/input/KeyBinder.cc	(revision 3191)
+++ code/branches/pch/src/core/input/KeyBinder.cc	(revision 3192)
@@ -317,5 +317,5 @@
                     {
                         mouseAxes_[2*i + 0].absVal_
-                            = -mouseRelative_[i] / deriveTime_ * 0.0005 * mouseSensitivityDerived_;
+                            = -mouseRelative_[i] / deriveTime_ * 0.0005f * mouseSensitivityDerived_;
                         mouseAxes_[2*i + 1].absVal_ = 0.0f;
                     }
@@ -324,5 +324,5 @@
                         mouseAxes_[2*i + 0].absVal_ = 0.0f;
                         mouseAxes_[2*i + 1].absVal_
-                            =  mouseRelative_[i] / deriveTime_ * 0.0005 * mouseSensitivityDerived_;
+                            =  mouseRelative_[i] / deriveTime_ * 0.0005f * mouseSensitivityDerived_;
                     }
                     else
Index: code/branches/pch/src/orxonox/CameraManager.h
===================================================================
--- code/branches/pch/src/orxonox/CameraManager.h	(revision 3191)
+++ code/branches/pch/src/orxonox/CameraManager.h	(revision 3192)
@@ -40,5 +40,5 @@
 #include <cassert>
 #include <list>
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
Index: code/branches/pch/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/pch/src/orxonox/OrxonoxPrereqs.h	(revision 3191)
+++ code/branches/pch/src/orxonox/OrxonoxPrereqs.h	(revision 3192)
@@ -287,9 +287,4 @@
 namespace Ogre
 {
-    // some got forgotten in OgrePrerequisites
-    class BorderPanelOverlayElement;
-    class PanelOverlayElement;
-    class TextAreaOverlayElement;
-
     // OGRE Wiki adapted code
     class DynamicLines;
Index: code/branches/pch/src/orxonox/gamestates/GSMainMenu.h
===================================================================
--- code/branches/pch/src/orxonox/gamestates/GSMainMenu.h	(revision 3191)
+++ code/branches/pch/src/orxonox/gamestates/GSMainMenu.h	(revision 3192)
@@ -32,5 +32,5 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 #include "core/GameState.h"
 
Index: code/branches/pch/src/orxonox/gui/GUIManager.cc
===================================================================
--- code/branches/pch/src/orxonox/gui/GUIManager.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/gui/GUIManager.cc	(revision 3192)
@@ -395,9 +395,9 @@
     void GUIManager::mouseMoved(IntVector2 abs, IntVector2 rel, IntVector2 clippingSize)
     {
-        guiSystem_->injectMouseMove(rel.x, rel.y);
+        guiSystem_->injectMouseMove(static_cast<float>(rel.x), static_cast<float>(rel.y));
     }
     void GUIManager::mouseScrolled(int abs, int rel)
     {
-        guiSystem_->injectMouseWheelChange(rel);
+        guiSystem_->injectMouseWheelChange(static_cast<float>(rel));
     }
 
Index: code/branches/pch/src/orxonox/gui/GUIManager.h
===================================================================
--- code/branches/pch/src/orxonox/gui/GUIManager.h	(revision 3191)
+++ code/branches/pch/src/orxonox/gui/GUIManager.h	(revision 3192)
@@ -41,7 +41,7 @@
 #include <map>
 #include <string>
-#include <OgrePrerequisites.h>
 #include <CEGUIForwardRefs.h>
 
+#include "util/OgreForwardRefs.h"
 #include "core/input/InputInterfaces.h"
 
Index: code/branches/pch/src/orxonox/interfaces/RadarViewable.cc
===================================================================
--- code/branches/pch/src/orxonox/interfaces/RadarViewable.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/interfaces/RadarViewable.cc	(revision 3192)
@@ -126,5 +126,5 @@
 //Vector3 v = this->getRVWorldPosition();
             //this->line_->setPoint(1, Vector3(0,v.y,0) );
-            this->line_->setPoint(1, Vector3( 0, (int) -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ,0 ));
+            this->line_->setPoint(1, Vector3( 0, static_cast<float>(static_cast<int>( -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ) ) ,0 ));
             this->line_->update();
             if( Map::getSingletonPtr()->playerShipNode_ )
Index: code/branches/pch/src/orxonox/interfaces/RadarViewable.h
===================================================================
--- code/branches/pch/src/orxonox/interfaces/RadarViewable.h	(revision 3191)
+++ code/branches/pch/src/orxonox/interfaces/RadarViewable.h	(revision 3192)
@@ -34,7 +34,7 @@
 #include <string>
 #include <cassert>
-#include <OgrePrerequisites.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/OrxonoxClass.h"
 
Index: code/branches/pch/src/orxonox/objects/Scene.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/Scene.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/Scene.cc	(revision 3192)
@@ -102,5 +102,5 @@
 
         XMLPortParam(Scene, "skybox", setSkybox, getSkybox, xmlelement, mode);
-        XMLPortParam(Scene, "ambientlight", setAmbientLight, getAmbientLight, xmlelement, mode).defaultValues(ColourValue(0.2, 0.2, 0.2, 1));
+        XMLPortParam(Scene, "ambientlight", setAmbientLight, getAmbientLight, xmlelement, mode).defaultValues(ColourValue(0.2f, 0.2f, 0.2f, 1.0f));
         XMLPortParam(Scene, "shadow", setShadow, getShadow, xmlelement, mode).defaultValues(true);
 
Index: code/branches/pch/src/orxonox/objects/Scene.h
===================================================================
--- code/branches/pch/src/orxonox/objects/Scene.h	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/Scene.h	(revision 3192)
@@ -36,7 +36,7 @@
 #include <set>
 #include <string>
-#include <OgrePrerequisites.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
Index: code/branches/pch/src/orxonox/objects/collisionshapes/CollisionShape.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 3192)
@@ -126,6 +126,6 @@
     bool CollisionShape::hasTransform() const
     {
-        return (!this->position_.positionEquals(Vector3(0, 0, 0), 0.001) ||
-                !this->orientation_.equals(Quaternion(1,0,0,0), Degree(0.1)));
+        return (!this->position_.positionEquals(Vector3(0, 0, 0), 0.001f) ||
+                !this->orientation_.equals(Quaternion(1,0,0,0), Degree(0.1f)));
     }
 
Index: code/branches/pch/src/orxonox/objects/controllers/AIController.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/controllers/AIController.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/controllers/AIController.cc	(revision 3192)
@@ -108,5 +108,5 @@
             this->moveToTargetPosition();
 
-        if (this->getControllableEntity() && this->bShooting_ && this->isCloseAtTarget(1000) && this->isLookingAtTarget(Ogre::Math::PI / 20.0))
+        if (this->getControllableEntity() && this->bShooting_ && this->isCloseAtTarget(1000) && this->isLookingAtTarget(Ogre::Math::PI / 20.0f))
             this->getControllableEntity()->fire(0);
 
Index: code/branches/pch/src/orxonox/objects/controllers/PongAI.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/controllers/PongAI.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/controllers/PongAI.cc	(revision 3192)
@@ -39,5 +39,5 @@
     CreateUnloadableFactory(PongAI);
 
-    const static float MAX_REACTION_TIME = 0.4;
+    const static float MAX_REACTION_TIME = 0.4f;
 
     PongAI::PongAI(BaseObject* creator) : Controller(creator)
@@ -49,6 +49,6 @@
         this->ballEndPosition_ = 0;
         this->randomOffset_ = 0;
-        this->relHysteresisOffset_ = 0.02;
-        this->strength_ = 0.5;
+        this->relHysteresisOffset_ = 0.02f;
+        this->strength_ = 0.5f;
         this->movement_ = 0;
         this->oldMove_ = 0;
@@ -171,5 +171,5 @@
 
         // The position shouln't be larger than 0.5 (50% of the bat-length from the middle is the end)
-        position *= 0.48;
+        position *= 0.48f;
 
         // Both sides are equally probable
@@ -190,5 +190,5 @@
 
         // Calculate bounces
-        for (float limit = 0.35; limit < this->strength_ || this->strength_ > 0.99; limit += 0.4)
+        for (float limit = 0.35f; limit < this->strength_ || this->strength_ > 0.99f; limit += 0.4f)
         {
             // Calculate a random prediction error, based on the vertical speed of the ball and the strength of the AI
Index: code/branches/pch/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/gametypes/Gametype.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/gametypes/Gametype.cc	(revision 3192)
@@ -287,5 +287,5 @@
         if (this->spawnpoints_.size() > 0)
         {
-            unsigned int randomspawn = (unsigned int)rnd(this->spawnpoints_.size());
+            unsigned int randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(this->spawnpoints_.size())));
             unsigned int index = 0;
             for (std::set<SpawnPoint*>::const_iterator it = this->spawnpoints_.begin(); it != this->spawnpoints_.end(); ++it)
Index: code/branches/pch/src/orxonox/objects/gametypes/TeamDeathmatch.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3192)
@@ -54,8 +54,8 @@
         static ColourValue colours[] =
         {
-            ColourValue(1.0, 0.3, 0.3),
-            ColourValue(0.3, 0.3, 1.0),
-            ColourValue(0.3, 1.0, 0.3),
-            ColourValue(1.0, 1.0, 0.0)
+            ColourValue(1.0f, 0.3f, 0.3f),
+            ColourValue(0.3f, 0.3f, 1.0f),
+            ColourValue(0.3f, 1.0f, 0.3f),
+            ColourValue(1.0f, 1.0f, 0.0f)
         };
         static std::vector<ColourValue> defaultcolours(colours, colours + sizeof(colours) / sizeof(ColourValue));
@@ -139,5 +139,5 @@
         if (teamSpawnPoints.size() > 0)
         {
-            unsigned int randomspawn = (unsigned int)rnd(teamSpawnPoints.size());
+            unsigned int randomspawn = static_cast<unsigned int>(rnd(static_cast<float>(teamSpawnPoints.size())));
             unsigned int index = 0;
             for (std::set<SpawnPoint*>::const_iterator it = teamSpawnPoints.begin(); it != teamSpawnPoints.end(); ++it)
Index: code/branches/pch/src/orxonox/objects/infos/HumanPlayer.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/infos/HumanPlayer.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/infos/HumanPlayer.cc	(revision 3192)
@@ -143,10 +143,10 @@
     float HumanPlayer::getPing() const
     {
-        return ClientInformation::findClient(this->getClientID())->getRTT();
+        return static_cast<float>(ClientInformation::findClient(this->getClientID())->getRTT());
     }
 
     float HumanPlayer::getPacketLossRatio() const
     {
-        return ClientInformation::findClient(this->getClientID())->getPacketLoss();
+        return static_cast<float>(ClientInformation::findClient(this->getClientID())->getPacketLoss());
     }
 
Index: code/branches/pch/src/orxonox/objects/weaponsystem/MuzzleFlash.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/weaponsystem/MuzzleFlash.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/weaponsystem/MuzzleFlash.cc	(revision 3192)
@@ -40,5 +40,5 @@
     {
         RegisterObject(MuzzleFlash);
-        this->setScale(0.1);
+        this->setScale(0.1f);
         
         this->delayTimer_.setTimer(0.1f, false, this, createExecutor(createFunctor(&MuzzleFlash::destroy)));
Index: code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.cc	(revision 3192)
@@ -44,5 +44,5 @@
         {
             assert(this->getScene()->getSceneManager()); // getScene() was already checked by WorldEntity
-            this->billboard_.setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(0.5, 0.5, 0.7, 0.8), 1);
+            this->billboard_.setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(0.5f, 0.5f, 0.7f, 0.8f), 1);
             this->attachOgreObject(this->billboard_.getBillboardSet());
         }
Index: code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.cc	(revision 3192)
@@ -42,5 +42,5 @@
         this->textureIndex_ = 1;
         this->maxTextureIndex_ = 8;
-        this->textureTimer_.setTimer(0.01, true, this, createExecutor(createFunctor(&LightningGunProjectile::changeTexture)));
+        this->textureTimer_.setTimer(0.01f, true, this, createExecutor(createFunctor(&LightningGunProjectile::changeTexture)));
         
         registerVariables();
Index: code/branches/pch/src/orxonox/objects/worldentities/BlinkingBillboard.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/BlinkingBillboard.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/BlinkingBillboard.cc	(revision 3192)
@@ -79,7 +79,7 @@
             this->time_ += dt;
             if (this->bQuadratic_)
-                this->setScale(this->amplitude_ * square(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_)));
+                this->setScale(this->amplitude_ * static_cast<float>(square(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_))));
             else
-                this->setScale(this->amplitude_ * sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_));
+                this->setScale(this->amplitude_ * static_cast<float>(sin((6.2831853 * this->time_ + this->phase_.valueRadians()) * this->frequency_)));
         }
     }
Index: code/branches/pch/src/orxonox/objects/worldentities/Camera.h
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/Camera.h	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/Camera.h	(revision 3192)
@@ -32,5 +32,5 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 #include "interfaces/Tickable.h"
 #include "objects/worldentities/StaticEntity.h"
Index: code/branches/pch/src/orxonox/objects/worldentities/ExplosionChunk.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/ExplosionChunk.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/ExplosionChunk.cc	(revision 3192)
@@ -151,10 +151,10 @@
             Vector3 change(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1));
             change.normalise();
-            change *= rnd(0.4, 0.8);
+            change *= rnd(0.4f, 0.8f);
             Vector3 velocity = this->getVelocity();
             velocity.normalise();
             velocity += change;
             velocity.normalise();
-            velocity *= length * rnd(0.8, 1.0);
+            velocity *= length * rnd(0.8f, 1.0f);
 
             this->setVelocity(velocity);
Index: code/branches/pch/src/orxonox/objects/worldentities/MobileEntity.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/MobileEntity.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/MobileEntity.cc	(revision 3192)
@@ -92,5 +92,5 @@
                 this->angularVelocity_.z += angularAcceleration_.z * dt;
                 // Calculate new orientation with quaternion derivative. This is about 30% faster than with angle/axis method.
-                float mult = dt * 0.5;
+                float mult = dt * 0.5f;
                 // TODO: this could be optimized by writing it out. The calls currently create 4 new Quaternions!
                 Quaternion newOrientation(0.0f, this->angularVelocity_.x * mult, this->angularVelocity_.y * mult, this->angularVelocity_.z * mult);
Index: code/branches/pch/src/orxonox/objects/worldentities/Planet.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/Planet.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/Planet.cc	(revision 3192)
@@ -91,16 +91,16 @@
         float scaleFactor = this->getScale();
 
-        this->distList.push_back(10.0*scaleFactor);
-        this->distList.push_back(19.0*scaleFactor);
-        this->distList.push_back(27.0*scaleFactor);
-        this->distList.push_back(34.0*scaleFactor);
-        this->distList.push_back(40.0*scaleFactor);
-        this->distList.push_back(45.0*scaleFactor);
-        this->distList.push_back(49.0*scaleFactor);
-        this->distList.push_back(52.0*scaleFactor);
-        this->distList.push_back(54.0*scaleFactor);
-        this->distList.push_back(55.0*scaleFactor);
+        this->distList.push_back(10.0f*scaleFactor);
+        this->distList.push_back(19.0f*scaleFactor);
+        this->distList.push_back(27.0f*scaleFactor);
+        this->distList.push_back(34.0f*scaleFactor);
+        this->distList.push_back(40.0f*scaleFactor);
+        this->distList.push_back(45.0f*scaleFactor);
+        this->distList.push_back(49.0f*scaleFactor);
+        this->distList.push_back(52.0f*scaleFactor);
+        this->distList.push_back(54.0f*scaleFactor);
+        this->distList.push_back(55.0f*scaleFactor);
 
-        float reductionValue = 0.2;
+        float reductionValue = 0.2f;
 
         this->mesh_.getEntity()->getMesh()->generateLodLevels(distList, Ogre::ProgressiveMesh::VRQ_PROPORTIONAL, reductionValue);
Index: code/branches/pch/src/orxonox/objects/worldentities/PongBall.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/PongBall.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/PongBall.cc	(revision 3192)
@@ -50,5 +50,5 @@
         this->batID_[0] = OBJECTID_UNKNOWN;
         this->batID_[1] = OBJECTID_UNKNOWN;
-        this->relMercyOffset_ = 0.05;
+        this->relMercyOffset_ = 0.05f;
 
         this->registerVariables();
@@ -103,5 +103,5 @@
                     if (position.x > this->fieldWidth_ / 2 && this->bat_[1])
                     {
-                        distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                        distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                         if (fabs(distance) <= 1)
                         {
@@ -123,5 +123,5 @@
                     if (position.x < -this->fieldWidth_ / 2 && this->bat_[0])
                     {
-                        distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                        distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                         if (fabs(distance) <= 1)
                         {
@@ -173,5 +173,5 @@
               if (position.x > this->fieldWidth_ / 2 && this->bat_[1])
               {
-                distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                distance = (position.z - this->bat_[1]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                 if (fabs(distance) <= 1)
                 {
@@ -184,5 +184,5 @@
               if (position.x < -this->fieldWidth_ / 2 && this->bat_[0])
               {
-                distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10) / 2);
+                distance = (position.z - this->bat_[0]->getPosition().z) / (this->fieldHeight_ * (this->batlength_ * 1.10f) / 2);
                 if (fabs(distance) <= 1)
                 {
Index: code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.h
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.h	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.h	(revision 3192)
@@ -34,11 +34,10 @@
 
 #ifdef ORXONOX_RELEASE
-#include <OgreSceneNode.h>
-#else
-#include <OgrePrerequisites.h>
+#  include <OgreSceneNode.h>
 #endif
 #include <LinearMath/btMotionState.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
Index: code/branches/pch/src/orxonox/objects/worldentities/pawns/Spectator.cc
===================================================================
--- code/branches/pch/src/orxonox/objects/worldentities/pawns/Spectator.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/objects/worldentities/pawns/Spectator.cc	(revision 3192)
@@ -59,5 +59,5 @@
         {
             this->greetingFlare_ = new BillboardSet();
-            this->greetingFlare_->setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(1.0, 1.0, 0.8), Vector3(0, 20, 0), 1);
+            this->greetingFlare_->setBillboardSet(this->getScene()->getSceneManager(), "Examples/Flare", ColourValue(1.0f, 1.0f, 0.8f), Vector3(0, 20, 0), 1);
             if (this->greetingFlare_->getBillboardSet())
                 this->attachOgreObject(this->greetingFlare_->getBillboardSet());
Index: code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3192)
@@ -215,9 +215,9 @@
             if (angle < 0.0)
                 angle = -angle;
-            angle -= 180.0 * (int)(angle / 180.0);
+            angle -= 180.0f * (int)(angle / 180.0);
 
             // take the reverse if angle is about 90 degrees
             float tempAspect;
-            if (angle > 89.0 && angle < 91.0)
+            if (angle > 89.0f && angle < 91.0f)
             {
                 tempAspect = 1.0 / this->windowAspectRatio_;
@@ -231,5 +231,5 @@
             else
             {
-                tempAspect = 1.0;
+                tempAspect = 1.0f;
                 rotState_ = Inbetween;
             }
@@ -238,5 +238,5 @@
             // magnitude of the width is about the magnitude of the height.
             // Correctly we would have to take the square root of width*height
-            this->sizeCorrection_.x = 2.0 / (tempAspect + 1.0);
+            this->sizeCorrection_.x = 2.0f / (tempAspect + 1.0f);
             this->sizeCorrection_.y = tempAspect * this->sizeCorrection_.x;
         }
Index: code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/OrxonoxOverlay.h	(revision 3192)
@@ -38,7 +38,7 @@
 
 #include <string>
-#include <OgrePrerequisites.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 #include "interfaces/WindowEventListener.h"
Index: code/branches/pch/src/orxonox/overlays/OverlayGroup.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/OverlayGroup.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/OverlayGroup.h	(revision 3192)
@@ -38,6 +38,6 @@
 
 #include <set>
-#include <OgrePrerequisites.h>
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 
Index: code/branches/pch/src/orxonox/overlays/OverlayText.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/OverlayText.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/OverlayText.h	(revision 3192)
@@ -34,4 +34,5 @@
 #include <string>
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "OrxonoxOverlay.h"
 
Index: code/branches/pch/src/orxonox/overlays/console/InGameConsole.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/console/InGameConsole.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/console/InGameConsole.h	(revision 3192)
@@ -34,4 +34,5 @@
 
 #include <string>
+#include "util/OgreForwardRefs.h"
 #include "core/Shell.h"
 #include "interfaces/WindowEventListener.h"
Index: code/branches/pch/src/orxonox/overlays/hud/HUDBar.cc
===================================================================
--- code/branches/pch/src/orxonox/overlays/hud/HUDBar.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/hud/HUDBar.cc	(revision 3192)
@@ -78,5 +78,5 @@
         this->textureUnitState_->setTextureName("bar2.tga");
         // use the default colour
-        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2, 0.7, 0.2));
+        this->textureUnitState_->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, ColourValue(0.2f, 0.7f, 0.2f));
 
         this->bar_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
Index: code/branches/pch/src/orxonox/overlays/hud/HUDBar.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/hud/HUDBar.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/hud/HUDBar.h	(revision 3192)
@@ -36,7 +36,7 @@
 #include <map>
 #include <vector>
-#include <OgrePrerequisites.h>
 
 #include "util/Math.h"
+#include "util/OgreForwardRefs.h"
 #include "core/BaseObject.h"
 #include "overlays/OrxonoxOverlay.h"
Index: code/branches/pch/src/orxonox/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/hud/HUDNavigation.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/hud/HUDNavigation.h	(revision 3192)
@@ -32,5 +32,5 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 #include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
Index: code/branches/pch/src/orxonox/overlays/hud/HUDRadar.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/hud/HUDRadar.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/hud/HUDRadar.h	(revision 3192)
@@ -35,6 +35,6 @@
 #include <map>
 #include <vector>
-#include <OgrePrerequisites.h>
 
+#include "util/OgreForwardRefs.h"
 #include "interfaces/RadarListener.h"
 #include "interfaces/RadarViewable.h"
Index: code/branches/pch/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
===================================================================
--- code/branches/pch/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3192)
@@ -47,5 +47,5 @@
         this->text_ = new OverlayText(this);
         this->text_->setFont("Monofur");
-        this->text_->setTextSize(0.04);
+        this->text_->setTextSize(0.04f);
         this->text_->setAlignmentString("center");
         this->text_->setColour(ColourValue::White);
Index: code/branches/pch/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- code/branches/pch/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3192)
@@ -48,5 +48,5 @@
     const std::string NotificationQueue::DEFAULT_FONT = "VeraMono";
     const Vector2 NotificationQueue::DEFAULT_POSITION = Vector2(0.0,0.0);
-    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025;
+    const float NotificationQueue::DEFAULT_FONT_SIZE  = 0.025f;
 
     /**
Index: code/branches/pch/src/orxonox/overlays/stats/Stats.h
===================================================================
--- code/branches/pch/src/orxonox/overlays/stats/Stats.h	(revision 3191)
+++ code/branches/pch/src/orxonox/overlays/stats/Stats.h	(revision 3192)
@@ -32,4 +32,5 @@
 #include "OrxonoxPrereqs.h"
 
+#include "util/OgreForwardRefs.h"
 #include "interfaces/Tickable.h"
 #include "overlays/OrxonoxOverlay.h"
Index: code/branches/pch/src/orxonox/tools/BillboardSet.h
===================================================================
--- code/branches/pch/src/orxonox/tools/BillboardSet.h	(revision 3191)
+++ code/branches/pch/src/orxonox/tools/BillboardSet.h	(revision 3192)
@@ -31,7 +31,5 @@
 
 #include "OrxonoxPrereqs.h"
-
-#include <OgrePrerequisites.h>
-#include "util/UtilPrereqs.h"
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
Index: code/branches/pch/src/orxonox/tools/Mesh.h
===================================================================
--- code/branches/pch/src/orxonox/tools/Mesh.h	(revision 3191)
+++ code/branches/pch/src/orxonox/tools/Mesh.h	(revision 3192)
@@ -31,6 +31,5 @@
 
 #include "OrxonoxPrereqs.h"
-
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 
 namespace orxonox
Index: code/branches/pch/src/orxonox/tools/ParticleInterface.h
===================================================================
--- code/branches/pch/src/orxonox/tools/ParticleInterface.h	(revision 3191)
+++ code/branches/pch/src/orxonox/tools/ParticleInterface.h	(revision 3192)
@@ -32,5 +32,5 @@
 #include "OrxonoxPrereqs.h"
 
-#include <OgrePrerequisites.h>
+#include "util/OgreForwardRefs.h"
 #include "interfaces/TimeFactorListener.h"
 
Index: code/branches/pch/src/orxonox/tools/Shader.cc
===================================================================
--- code/branches/pch/src/orxonox/tools/Shader.cc	(revision 3191)
+++ code/branches/pch/src/orxonox/tools/Shader.cc	(revision 3192)
@@ -216,5 +216,5 @@
                 return (*((float*)pointer->second));
             else
-                return (*((int*)pointer->second));
+                return static_cast<float>(*((int*)pointer->second));
         }
         else
Index: code/branches/pch/src/orxonox/tools/Shader.h
===================================================================
--- code/branches/pch/src/orxonox/tools/Shader.h	(revision 3191)
+++ code/branches/pch/src/orxonox/tools/Shader.h	(revision 3192)
@@ -35,6 +35,6 @@
 #include <string>
 #include <vector>
-#include <OgrePrerequisites.h>
 
+#include "util/OgreForwardRefs.h"
 #include "interfaces/Tickable.h"
 
Index: code/branches/pch/src/util/Convert.h
===================================================================
--- code/branches/pch/src/util/Convert.h	(revision 3191)
+++ code/branches/pch/src/util/Convert.h	(revision 3192)
@@ -307,11 +307,4 @@
     {
         return ConverterExplicit<FromType, ToType>::convert(output, input);
-    }
-
-    // For compatibility reasons. The same, but with capital ConvertValue
-    template<class FromType, class ToType>
-    FORCEINLINE bool ConvertValue(ToType* output, const FromType& input)
-    {
-        return convertValue(output, input);
     }
 
@@ -372,5 +365,5 @@
     FORCEINLINE std::string convertToString(FromType value)
     {
-      return getConvertedValue<FromType, std::string>(value);
+        return getConvertedValue<FromType, std::string>(value);
     }
 
@@ -379,5 +372,5 @@
     FORCEINLINE ToType convertFromString(std::string str)
     {
-      return getConvertedValue<std::string, ToType>(str);
+        return getConvertedValue<std::string, ToType>(str);
     }
 
Index: code/branches/pch/src/util/Math.h
===================================================================
--- code/branches/pch/src/util/Math.h	(revision 3191)
+++ code/branches/pch/src/util/Math.h	(revision 3192)
@@ -229,5 +229,5 @@
     inline float rnd()
     {
-        return rand() / (RAND_MAX + 1.0);
+        return rand() / (RAND_MAX + 1.0f);
     }
 
@@ -256,5 +256,5 @@
     inline float rndsgn()
     {
-        return ((rand() & 0x2) - 1); // rand() & 0x2 is either 2 or 0
+        return static_cast<float>((rand() & 0x2) - 1); // rand() & 0x2 is either 2 or 0
     }
 
Index: code/branches/pch/src/util/OgreForwardRefs.h
===================================================================
--- code/branches/pch/src/util/OgreForwardRefs.h	(revision 3192)
+++ code/branches/pch/src/util/OgreForwardRefs.h	(revision 3192)
@@ -0,0 +1,227 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _OgreForwardRefs_H__
+#define _OgreForwardRefs_H__
+
+#include "UtilPrereqs.h"
+
+namespace Ogre
+{
+    class Angle;
+    class Animation;
+    class AnimationState;
+    class AnimationStateSet;
+    class AnimationTrack;
+    class Archive;
+    class ArchiveFactory;
+    class ArchiveManager;
+    class AutoParamDataSource;
+    class AxisAlignedBox;
+    class AxisAlignedBoxSceneQuery;
+    class Billboard;
+    class BillboardChain;
+    class BillboardSet;
+    class Bone;
+    class Camera;
+    class Codec;
+    class ColourValue;
+    class ConfigDialog;
+    template <typename T> class Controller;
+    template <typename T> class ControllerFunction;
+    class ControllerManager;
+    template <typename T> class ControllerValue;
+    class Degree;
+    class DynLib;
+    class DynLibManager;
+    class EdgeData;
+    class EdgeListBuilder;
+    class Entity;
+    class ErrorDialog;
+    class ExternalTextureSourceManager;
+    class Factory;
+    class Font;
+    class FontPtr;
+    class FontManager;
+    struct FrameEvent;
+    class FrameListener;
+    class Frustum;
+    class GpuProgram;
+    class GpuProgramPtr;
+    class GpuProgramManager;
+	class GpuProgramUsage;
+    class HardwareIndexBuffer;
+    class HardwareOcclusionQuery;
+    class HardwareVertexBuffer;
+	class HardwarePixelBuffer;
+    class HardwarePixelBufferSharedPtr;
+	class HighLevelGpuProgram;
+    class HighLevelGpuProgramPtr;
+	class HighLevelGpuProgramManager;
+	class HighLevelGpuProgramFactory;
+    class IndexData;
+    class IntersectionSceneQuery;
+    class IntersectionSceneQueryListener;
+    class Image;
+    class KeyFrame;
+    class Light;
+    class Log;
+    class LogManager;
+	class ManualResourceLoader;
+	class ManualObject;
+    class Material;
+    class MaterialPtr;
+    class MaterialManager;
+    class MaterialScriptCompiler;
+    class Math;
+    class Matrix3;
+    class Matrix4;
+    class MemoryManager;
+    class Mesh;
+    class MeshPtr;
+    class MeshSerializer;
+    class MeshSerializerImpl;
+    class MeshManager;
+    class MovableObject;
+    class MovablePlane;
+    class Node;
+	class NodeAnimationTrack;
+	class NodeKeyFrame;
+	class NumericAnimationTrack;
+	class NumericKeyFrame;
+    class Overlay;
+    class OverlayContainer;
+    class OverlayElement;
+    class OverlayElementFactory;
+    class OverlayManager;
+    class Particle;
+    class ParticleAffector;
+    class ParticleAffectorFactory;
+    class ParticleEmitter;
+    class ParticleEmitterFactory;
+    class ParticleSystem;
+    class ParticleSystemManager;
+    class ParticleSystemRenderer;
+    class ParticleSystemRendererFactory;
+    class ParticleVisualData;
+    class Pass;
+    class PatchMesh;
+    class PixelBox;
+    class Plane;
+    class PlaneBoundedVolume;
+	class Plugin;
+    class Pose;
+    class ProgressiveMesh;
+    class Profile;
+	class Profiler;
+    class Quaternion;
+	class Radian;
+    class Ray;
+    class RaySceneQuery;
+    class RaySceneQueryListener;
+    class Renderable;
+    class RenderPriorityGroup;
+    class RenderQueue;
+    class RenderQueueGroup;
+	class RenderQueueInvocation;
+	class RenderQueueInvocationSequence;
+    class RenderQueueListener;
+    class RenderSystem;
+    class RenderSystemCapabilities;
+    class RenderTarget;
+    class RenderTargetListener;
+    class RenderTexture;
+	class MultiRenderTarget;
+    class RenderWindow;
+    class RenderOperation;
+    class Resource;
+	class ResourceBackgroundQueue;
+	class ResourceGroupManager;
+    class ResourceManager;
+    class RibbonTrail;
+	class Root;
+    class SceneManager;
+    class SceneManagerEnumerator;
+    class SceneNode;
+    class SceneQuery;
+    class SceneQueryListener;
+	class ScriptLoader;
+    class Serializer;
+    class ShadowCaster;
+    class ShadowRenderable;
+	class ShadowTextureManager;
+    class SimpleRenderable;
+    class SimpleSpline;
+    class Skeleton;
+    class SkeletonPtr;
+    class SkeletonInstance;
+    class SkeletonManager;
+    class Sphere;
+    class SphereSceneQuery;
+	class StaticGeometry;
+    class StringConverter;
+    class StringInterface;
+    class SubEntity;
+    class SubMesh;
+	class TagPoint;
+    class Technique;
+	class TempBlendedBufferInfo;
+	class ExternalTextureSource;
+    class TextureUnitState;
+    class Texture;
+    class TexturePtr;
+	class TextureFont;
+    class TextureManager;
+    class TransformKeyFrame;
+	class Timer;
+    class UserDefinedObject;
+    class Vector2;
+    class Vector3;
+    class Vector4;
+    class Viewport;
+	class VertexAnimationTrack;
+    class VertexBufferBinding;
+    class VertexData;
+    class VertexDeclaration;
+	class VertexMorphKeyFrame;
+    class WireBoundingBox;
+    class Compositor;
+    class CompositorManager;
+    class CompositorChain;
+    class CompositorInstance;
+    class CompositionTechnique;
+    class CompositionPass;
+    class CompositionTargetPass;
+
+    // Originally not in OgrePrerequisites.h
+    class BorderPanelOverlayElement;
+    class PanelOverlayElement;
+    class TextAreaOverlayElement;
+}
+
+#endif /* _OgreForwardRefs_H__ */
