Index: code/trunk/src/core/ConfigFileManager.cc
===================================================================
--- code/trunk/src/core/ConfigFileManager.cc	(revision 3300)
+++ code/trunk/src/core/ConfigFileManager.cc	(revision 3301)
@@ -572,5 +572,5 @@
         else
         {
-            COUT(1) << "ConfigFileManager: Can't find a config file for type with ID " << (int)type << std::endl;
+            COUT(1) << "ConfigFileManager: Can't find a config file for type with ID " << static_cast<int>(type) << std::endl;
             COUT(1) << "Using " << DEFAULT_CONFIG_FILE << " file." << std::endl;
             this->setFilename(type, DEFAULT_CONFIG_FILE);
Index: code/trunk/src/core/ConfigValueContainer.h
===================================================================
--- code/trunk/src/core/ConfigValueContainer.h	(revision 3300)
+++ code/trunk/src/core/ConfigValueContainer.h	(revision 3301)
@@ -69,5 +69,8 @@
             inline virtual ~ConfigValueCallback() {}
             inline virtual void call(void* object)
-                { if (!Identifier::isCreatingHierarchy()) { (((T*)object)->*this->function_)(); } }
+            {
+                if (!Identifier::isCreatingHierarchy())
+                    (static_cast<T*>(object)->*this->function_)();
+            }
 
         private:
Index: code/trunk/src/core/Executor.cc
===================================================================
--- code/trunk/src/core/Executor.cc	(revision 3300)
+++ code/trunk/src/core/Executor.cc	(revision 3301)
@@ -99,13 +99,13 @@
 
             // assign all given arguments to the multitypes
-            for (unsigned int i = 0; i < std::min(tokens.size(), (unsigned int)MAX_FUNCTOR_ARGUMENTS); i++)
+            for (unsigned int i = 0; i < std::min(tokens.size(), MAX_FUNCTOR_ARGUMENTS); i++)
                 param[i] = tokens[i];
 
             // fill the remaining multitypes with default values
-            for (unsigned int i = tokens.size(); i < std::min(paramCount, (unsigned int)MAX_FUNCTOR_ARGUMENTS); i++)
+            for (unsigned int i = tokens.size(); i < std::min(paramCount, MAX_FUNCTOR_ARGUMENTS); i++)
                 param[i] = this->defaultValue_[i];
 
             // evaluate the param types through the functor
-            for (unsigned int i = 0; i < std::min(paramCount, (unsigned int)MAX_FUNCTOR_ARGUMENTS); i++)
+            for (unsigned int i = 0; i < std::min(paramCount, MAX_FUNCTOR_ARGUMENTS); i++)
                 this->functor_->evaluateParam(i, param[i]);
 
Index: code/trunk/src/core/Executor.h
===================================================================
--- code/trunk/src/core/Executor.h	(revision 3300)
+++ code/trunk/src/core/Executor.h	(revision 3301)
@@ -104,5 +104,5 @@
             COUT(5) << tokens[i]; \
         } \
-        COUT(5) << ") and " << std::max((int)paramCount - (int)tokens.size(), 0) << " default values ("; \
+        COUT(5) << ") and " << std::max(static_cast<int>(paramCount) - static_cast<int>(tokens.size()), 0) << " default values ("; \
         for (unsigned int i = tokens.size(); i < paramCount; i++) \
         { \
Index: code/trunk/src/core/IRC.cc
===================================================================
--- code/trunk/src/core/IRC.cc	(revision 3300)
+++ code/trunk/src/core/IRC.cc	(revision 3301)
@@ -52,5 +52,5 @@
     void IRC::initialize()
     {
-        unsigned int threadID = (unsigned int)IRC_TCL_THREADID;
+        unsigned int threadID = IRC_TCL_THREADID;
         TclThreadManager::createID(threadID);
         this->bundle_ = TclThreadManager::getInstance().getInterpreterBundle(threadID);
Index: code/trunk/src/core/LuaBind.cc
===================================================================
--- code/trunk/src/core/LuaBind.cc	(revision 3300)
+++ code/trunk/src/core/LuaBind.cc	(revision 3301)
@@ -124,5 +124,5 @@
   const char * LuaBind::lua_Chunkreader(lua_State *L, void *data, size_t *size)
   {
-    LoadS* ls = ((LoadS*)data);
+    LoadS* ls = static_cast<LoadS*>(data);
     if (ls->size == 0) return NULL;
     *size = ls->size;
Index: code/trunk/src/core/Shell.cc
===================================================================
--- code/trunk/src/core/Shell.cc	(revision 3300)
+++ code/trunk/src/core/Shell.cc	(revision 3301)
@@ -228,5 +228,5 @@
     std::string Shell::getFromHistory() const
     {
-        unsigned int index = mod(((int)this->historyOffset_) - ((int)this->historyPosition_), this->maxHistoryLength_);
+        unsigned int index = mod(static_cast<int>(this->historyOffset_) - static_cast<int>(this->historyPosition_), this->maxHistoryLength_);
         if (index < this->commandHistory_.size() && this->historyPosition_ != 0)
             return this->commandHistory_[index];
@@ -249,5 +249,5 @@
             {
                 if (this->bAddOutputLevel_)
-                    output.insert(0, 1, (char)OutputHandler::getOutStream().getOutputLevel());
+                    output.insert(0, 1, static_cast<char>(OutputHandler::getOutStream().getOutputLevel()));
 
                 this->lines_.insert(this->lines_.begin(), output);
Index: code/trunk/src/core/Super.h
===================================================================
--- code/trunk/src/core/Super.h	(revision 3300)
+++ code/trunk/src/core/Super.h	(revision 3301)
@@ -91,5 +91,5 @@
             static void check() \
             { \
-                SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply((T*)0); \
+                SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply(static_cast<T*>(0)); \
                 SuperFunctionCondition<functionnumber + 1, T, 0, templatehack2>::check(); \
             } \
@@ -149,5 +149,5 @@
                 // This call to the apply-function is the whole check. By calling the function with
                 // a T* pointer, the right function get's called.
-                SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply((T*)0);
+                SuperFunctionCondition<functionnumber, T, 0, templatehack2>::apply(static_cast<T*>(0));
 
                 // Go go the check for of next super-function (functionnumber + 1)
Index: code/trunk/src/core/TclThreadManager.cc
===================================================================
--- code/trunk/src/core/TclThreadManager.cc	(revision 3300)
+++ code/trunk/src/core/TclThreadManager.cc	(revision 3301)
@@ -278,15 +278,15 @@
     std::string TclThreadManager::tcl_query(int querierID, Tcl::object const &args)
     {
-        return TclThreadManager::getInstance().evalQuery((unsigned int)querierID, stripEnclosingBraces(args.get()));
+        return TclThreadManager::getInstance().evalQuery(static_cast<unsigned int>(querierID), stripEnclosingBraces(args.get()));
     }
 
     std::string TclThreadManager::tcl_crossquery(int querierID, int threadID, Tcl::object const &args)
     {
-        return TclThreadManager::getInstance().evalQuery((unsigned int)querierID, (unsigned int)threadID, stripEnclosingBraces(args.get()));
+        return TclThreadManager::getInstance().evalQuery(static_cast<unsigned int>(querierID), static_cast<unsigned int>(threadID), stripEnclosingBraces(args.get()));
     }
 
     bool TclThreadManager::tcl_running(int threadID)
     {
-        TclInterpreterBundle* bundle = TclThreadManager::getInstance().getInterpreterBundle((unsigned int)threadID);
+        TclInterpreterBundle* bundle = TclThreadManager::getInstance().getInterpreterBundle(static_cast<unsigned int>(threadID));
         if (bundle)
         {
@@ -556,5 +556,5 @@
                     try
                     {
-                        if (querierID == 0 || std::find(querier->queriers_.begin(), querier->queriers_.end(), (unsigned int)0) != querier->queriers_.end())
+                        if (querierID == 0 || std::find(querier->queriers_.begin(), querier->queriers_.end(), 0U) != querier->queriers_.end())
                             successfullyLocked = interpreter_lock.try_lock();
                         else
@@ -631,5 +631,5 @@
             boost::try_mutex::scoped_lock interpreter_lock(this->orxonoxInterpreterBundle_.interpreterMutex_);
 #endif
-            unsigned long maxtime = (unsigned long)(time.getDeltaTime() * 1000000 * TCLTHREADMANAGER_MAX_CPU_USAGE);
+            unsigned long maxtime = static_cast<unsigned long>(time.getDeltaTime() * 1000000 * TCLTHREADMANAGER_MAX_CPU_USAGE);
             Ogre::Timer timer;
             while (!this->queueIsEmpty())
Index: code/trunk/src/core/XMLPort.h
===================================================================
--- code/trunk/src/core/XMLPort.h	(revision 3300)
+++ code/trunk/src/core/XMLPort.h	(revision 3301)
@@ -93,5 +93,5 @@
 */
 #define XMLPortParamVariable(classname, paramname, variable, xmlelement, mode) \
-    XMLPortVariableHelperClass xmlcontainer##variable##dummy((void*)&variable); \
+    XMLPortVariableHelperClass xmlcontainer##variable##dummy(static_cast<void*>(&variable)); \
     static ExecutorMember<orxonox::XMLPortVariableHelperClass>* xmlcontainer##variable##loadexecutor = static_cast<ExecutorMember<orxonox::XMLPortVariableHelperClass>*>(orxonox::createExecutor(orxonox::createFunctor(orxonox::XMLPortVariableHelperClass::getLoader(variable)), std::string( #classname ) + "::" + #variable + "loader")); \
     static ExecutorMember<orxonox::XMLPortVariableHelperClass>* xmlcontainer##variable##saveexecutor = static_cast<ExecutorMember<orxonox::XMLPortVariableHelperClass>*>(orxonox::createExecutor(orxonox::createFunctor(orxonox::XMLPortVariableHelperClass::getSaver (variable)), std::string( #classname ) + "::" + #variable + "saver" )); \
@@ -561,5 +561,5 @@
                                                     COUT(4) << object->getLoaderIndentation() << "fabricating " << child->Value() << "..." << std::endl;
 
-                                                    BaseObject* newObject = identifier->fabricate((BaseObject*)object);
+                                                    BaseObject* newObject = identifier->fabricate(static_cast<BaseObject*>(object));
                                                     assert(newObject);
                                                     newObject->setLoaderIndentation(object->getLoaderIndentation() + "  ");
@@ -571,9 +571,9 @@
                                                     {
                                                         newObject->XMLPort(*child, XMLPort::LoadObject);
-                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
+                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (objectname " << newObject->getName() << ") to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ")" << std::endl;
                                                     }
                                                     else
                                                     {
-                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << ((BaseObject*)object)->getName() << ")" << std::endl;
+                                                        COUT(4) << object->getLoaderIndentation() << "assigning " << child->Value() << " (object not yet loaded) to " << this->identifier_->getName() << " (objectname " << static_cast<BaseObject*>(object)->getName() << ")" << std::endl;
                                                     }
 
@@ -671,9 +671,9 @@
             template <class T>
             void load(const T& value)
-                { *((T*)this->variable_) = value; }
+                { *static_cast<T*>(this->variable_) = value; }
 
             template <class T>
             const T& save()
-                { return *((T*)this->variable_); }
+                { return *static_cast<T*>(this->variable_); }
 
             template <class T>
Index: code/trunk/src/core/input/InputBuffer.cc
===================================================================
--- code/trunk/src/core/input/InputBuffer.cc	(revision 3300)
+++ code/trunk/src/core/input/InputBuffer.cc	(revision 3301)
@@ -218,5 +218,5 @@
         }
 
-        this->insert((char)evt.text);
+        this->insert(static_cast<char>(evt.text));
     }
 
Index: code/trunk/src/core/input/InputManager.cc
===================================================================
--- code/trunk/src/core/input/InputManager.cc	(revision 3300)
+++ code/trunk/src/core/input/InputManager.cc	(revision 3301)
@@ -175,5 +175,5 @@
 
             // Fill parameter list
-            windowHndStr << (unsigned int)windowHnd_;
+            windowHndStr << static_cast<unsigned int>(windowHnd);
             paramList.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
 #if defined(ORXONOX_PLATFORM_WINDOWS)
Index: code/trunk/src/core/input/KeyBinder.cc
===================================================================
--- code/trunk/src/core/input/KeyBinder.cc	(revision 3300)
+++ code/trunk/src/core/input/KeyBinder.cc	(revision 3301)
@@ -444,11 +444,11 @@
                     if (mousePosition_[i] < 0)
                     {
-                        mouseAxes_[2*i + 0].absVal_ =  -mousePosition_[i]/(float)mouseClippingSize_ * mouseSensitivity_;
-                        mouseAxes_[2*i + 1].absVal_ =  0.0f;
+                        mouseAxes_[2*i + 0].absVal_ = -mouseSensitivity_ * mousePosition_[i] / mouseClippingSize_;
+                        mouseAxes_[2*i + 1].absVal_ = 0.0f;
                     }
                     else
                     {
-                        mouseAxes_[2*i + 0].absVal_ =  0.0f;
-                        mouseAxes_[2*i + 1].absVal_ =   mousePosition_[i]/(float)mouseClippingSize_ * mouseSensitivity_;
+                        mouseAxes_[2*i + 0].absVal_ = 0.0f;
+                        mouseAxes_[2*i + 1].absVal_ =  mouseSensitivity_ * mousePosition_[i] / mouseClippingSize_;
                     }
                 }
@@ -460,7 +460,7 @@
         {
             if (rel[i] < 0)
-                mouseAxes_[0 + 2*i].relVal_ = -((float)rel[i])/(float)mouseClippingSize_ * mouseSensitivity_;
+                mouseAxes_[0 + 2*i].relVal_ = -mouseSensitivity_ * rel[i] / mouseClippingSize_;
             else
-                mouseAxes_[1 + 2*i].relVal_ =  ((float)rel[i])/(float)mouseClippingSize_ * mouseSensitivity_;
+                mouseAxes_[1 + 2*i].relVal_ =  mouseSensitivity_ * rel[i] / mouseClippingSize_;
         }
     }
@@ -474,8 +474,8 @@
         if (rel < 0)
             for (int i = 0; i < -rel/mouseWheelStepSize_; i++)
-                mouseButtons_[8].execute(KeybindMode::OnPress, ((float)abs)/mouseWheelStepSize_);
+                mouseButtons_[8].execute(KeybindMode::OnPress, static_cast<float>(abs)/mouseWheelStepSize_);
         else
             for (int i = 0; i < rel/mouseWheelStepSize_; i++)
-                mouseButtons_[9].execute(KeybindMode::OnPress, ((float)abs)/mouseWheelStepSize_);
+                mouseButtons_[9].execute(KeybindMode::OnPress, static_cast<float>(abs)/mouseWheelStepSize_);
     }
 
Index: code/trunk/src/network/ClientInformation.cc
===================================================================
--- code/trunk/src/network/ClientInformation.cc	(revision 3300)
+++ code/trunk/src/network/ClientInformation.cc	(revision 3301)
@@ -166,5 +166,5 @@
 
   double ClientInformation::getPacketLoss(){
-    return ((double)this->peer_->packetLoss)/ENET_PEER_PACKET_LOSS_SCALE;
+    return static_cast<double>(this->peer_->packetLoss)/ENET_PEER_PACKET_LOSS_SCALE;
   }
 
@@ -173,5 +173,5 @@
       return gamestateID_;
     else
-      return (unsigned int)-1;
+      return static_cast<unsigned int>(-1);
   }
 
@@ -180,5 +180,5 @@
       return partialGamestateID_;
     else
-      return (unsigned int)-1;
+      return static_cast<unsigned int>(-1);
   }
 
@@ -197,5 +197,5 @@
 
   bool ClientInformation::removeClient(unsigned int clientID) {
-    if((unsigned int)clientID==CLIENTID_UNKNOWN)
+    if(clientID==CLIENTID_UNKNOWN)
       return false;
     ClientInformation *temp = head_;
Index: code/trunk/src/network/GamestateClient.h
===================================================================
--- code/trunk/src/network/GamestateClient.h	(revision 3300)
+++ code/trunk/src/network/GamestateClient.h	(revision 3301)
@@ -47,5 +47,5 @@
 #include "GamestateHandler.h"
 
-const unsigned int GAMESTATEID_INITIAL = (unsigned int)-1;
+const unsigned int GAMESTATEID_INITIAL = static_cast<unsigned int>(-1);
 
 namespace orxonox
Index: code/trunk/src/network/GamestateManager.cc
===================================================================
--- code/trunk/src/network/GamestateManager.cc	(revision 3300)
+++ code/trunk/src/network/GamestateManager.cc	(revision 3301)
@@ -174,5 +174,5 @@
     }
 
-    assert(curid==(unsigned int)GAMESTATEID_INITIAL || curid<gamestateID);
+    assert(curid==GAMESTATEID_INITIAL || curid<gamestateID);
     COUT(4) << "acking gamestate " << gamestateID << " for clientid: " << clientID << " curid: " << curid << std::endl;
     std::map<unsigned int, packet::Gamestate*>::iterator it;
Index: code/trunk/src/network/NetworkPrereqs.h
===================================================================
--- code/trunk/src/network/NetworkPrereqs.h	(revision 3300)
+++ code/trunk/src/network/NetworkPrereqs.h	(revision 3301)
@@ -61,7 +61,7 @@
 namespace orxonox
 {
-  static const unsigned int GAMESTATEID_INITIAL = (unsigned int)-1;
-  static const unsigned int CLIENTID_UNKNOWN    = (unsigned int)-2;
-  static const uint32_t     OBJECTID_UNKNOWN    = (uint32_t)(-1);
+  static const unsigned int GAMESTATEID_INITIAL = static_cast<unsigned int>(-1);
+  static const unsigned int CLIENTID_UNKNOWN    = static_cast<unsigned int>(-2);
+  static const uint32_t     OBJECTID_UNKNOWN    = static_cast<uint32_t>(-1);
 }
 
Index: code/trunk/src/network/TrafficControl.cc
===================================================================
--- code/trunk/src/network/TrafficControl.cc	(revision 3300)
+++ code/trunk/src/network/TrafficControl.cc	(revision 3301)
@@ -38,5 +38,5 @@
 namespace orxonox {
 
-  static const unsigned int SCHED_PRIORITY_OFFSET = (unsigned int)-1;
+  static const unsigned int SCHED_PRIORITY_OFFSET = static_cast<unsigned int>(-1);
 
   objInfo::objInfo(uint32_t ID, uint32_t creatorID, int32_t curGsID, int32_t diffGsID, uint32_t size, unsigned int prioperm, unsigned int priosched)
Index: code/trunk/src/network/packet/Chat.cc
===================================================================
--- code/trunk/src/network/packet/Chat.cc	(revision 3300)
+++ code/trunk/src/network/packet/Chat.cc	(revision 3301)
@@ -51,5 +51,5 @@
   *(unsigned int *)(data_ + _PLAYERID ) = playerID;
   *(unsigned int *)(data_ + _MESSAGELENGTH ) = messageLength_;
-  memcpy( data_+_MESSAGE, (void *)message.c_str(), messageLength_ );
+  memcpy( data_+_MESSAGE, static_cast<void*>(const_cast<char*>(message.c_str())), messageLength_ );
 }
 
Index: code/trunk/src/network/packet/Packet.cc
===================================================================
--- code/trunk/src/network/packet/Packet.cc	(revision 3300)
+++ code/trunk/src/network/packet/Packet.cc	(revision 3301)
@@ -143,5 +143,5 @@
       // Assures we don't create a packet and destroy it right after in another thread
       // without having a reference in the packetMap_
-      packetMap_[(size_t)(void*)enetPacket_] = this;
+      packetMap_[reinterpret_cast<size_t>(enetPacket_)] = this;
     }
   }
@@ -172,5 +172,5 @@
 Packet *Packet::createPacket(ENetPacket *packet, ENetPeer *peer){
   uint8_t *data = packet->data;
-  assert(ClientInformation::findClient(&peer->address)->getID() != (unsigned int)-2 || !Host::isServer());
+  assert(ClientInformation::findClient(&peer->address)->getID() != static_cast<unsigned int>(-2) || !Host::isServer());
   unsigned int clientID = ClientInformation::findClient(&peer->address)->getID();
   Packet *p = 0;
@@ -230,5 +230,5 @@
 void Packet::deletePacket(ENetPacket *enetPacket){
   // Get our Packet from a gloabal map with all Packets created in the send() method of Packet.
-  std::map<size_t, Packet*>::iterator it = packetMap_.find((size_t)enetPacket);
+  std::map<size_t, Packet*>::iterator it = packetMap_.find(reinterpret_cast<size_t>(enetPacket));
   assert(it != packetMap_.end());
   // Make sure we don't delete it again in the destructor
Index: code/trunk/src/network/synchronisable/Synchronisable.h
===================================================================
--- code/trunk/src/network/synchronisable/Synchronisable.h	(revision 3300)
+++ code/trunk/src/network/synchronisable/Synchronisable.h	(revision 3301)
@@ -44,5 +44,5 @@
 
 /*#define REGISTERDATA(varname, ...) \
-    registerVariable((void*)&varname, sizeof(varname), DATA, __VA_ARGS__)
+    registerVariable(static_cast<void*>(&varname), sizeof(varname), DATA, __VA_ARGS__)
 #define REGISTERSTRING(stringname, ...) \
     registerVariable(&stringname, stringname.length()+1, STRING, __VA_ARGS__)*/
Index: code/trunk/src/network/synchronisable/SynchronisableVariable.h
===================================================================
--- code/trunk/src/network/synchronisable/SynchronisableVariable.h	(revision 3300)
+++ code/trunk/src/network/synchronisable/SynchronisableVariable.h	(revision 3301)
@@ -36,4 +36,5 @@
 #include <cstring>
 #include "util/Serialise.h"
+#include "util/TemplateUtils.h"
 #include "core/GameMode.h"
 #include "network/synchronisable/NetworkCallbackManager.h"
@@ -78,5 +79,5 @@
       virtual inline void putData(uint8_t*& mem, uint8_t mode, bool forceCallback = false);
       virtual inline uint32_t getSize(uint8_t mode);
-      virtual inline void* getReference(){ return (void *)&this->variable_; }
+      virtual inline void* getReference(){ return static_cast<void*>(const_cast<typename TypeStripper<T>::RawType*>(&this->variable_)); }
     protected:
       
@@ -178,5 +179,5 @@
         {
           this->varReference_++;
-          memcpy((void*)&this->varBuffer_, &this->variable_, sizeof(this->variable_));
+          memcpy(static_cast<void*>(const_cast<typename TypeStripper<T>::RawType*>(&this->varBuffer_)), &this->variable_, sizeof(this->variable_));
         }
       }
@@ -211,5 +212,5 @@
           {
             mem += sizeof(varReference_);
-            memcpy((void*)&this->varBuffer_, &this->variable_, sizeof(T));
+            memcpy(static_cast<void*>(const_cast<typename TypeStripper<T>::RawType*>(&this->varBuffer_)), &this->variable_, sizeof(T));
             if ( this->callback_ != 0 )
               callback = true;
Index: code/trunk/src/orxonox/gamestates/GSDedicated.cc
===================================================================
--- code/trunk/src/orxonox/gamestates/GSDedicated.cc	(revision 3300)
+++ code/trunk/src/orxonox/gamestates/GSDedicated.cc	(revision 3301)
@@ -193,5 +193,5 @@
 //                             boost::recursive_mutex::scoped_lock(this->inputLineMutex_);
                             std::cout << endl << CommandExecutor::hint( std::string((const char*)this->commandLine_,inputIterator_) ) << endl;
-                            strncpy((char*)this->commandLine_, CommandExecutor::complete( std::string((const char*)this->commandLine_,inputIterator_) ).c_str(), MAX_COMMAND_LENGTH);
+                            strncpy(reinterpret_cast<char*>(this->commandLine_), CommandExecutor::complete( std::string(reinterpret_cast<char*>(this->commandLine_),inputIterator_) ).c_str(), MAX_COMMAND_LENGTH);
                             inputIterator_ = strlen((const char*)this->commandLine_);
                             break;
@@ -275,5 +275,5 @@
     void GSDedicated::insertCharacter( unsigned int position, char c )
     {
-//         std::cout << endl << (unsigned int)c << endl;
+//         std::cout << endl << static_cast<unsigned int>(c) << endl;
         // check that we do not exceed MAX_COMMAND_LENGTH
         if( inputIterator_+1 < MAX_COMMAND_LENGTH )
Index: code/trunk/src/orxonox/objects/Scene.cc
===================================================================
--- code/trunk/src/orxonox/objects/Scene.cc	(revision 3300)
+++ code/trunk/src/orxonox/objects/Scene.cc	(revision 3301)
@@ -325,7 +325,7 @@
     {
         // get the WorldEntity pointers
-        WorldEntity* object0 = (WorldEntity*)colObj0->getUserPointer();
+        WorldEntity* object0 = static_cast<WorldEntity*>(colObj0->getUserPointer());
         assert(dynamic_cast<WorldEntity*>(object0));
-        WorldEntity* object1 = (WorldEntity*)colObj1->getUserPointer();
+        WorldEntity* object1 = static_cast<WorldEntity*>(colObj1->getUserPointer());
         assert(dynamic_cast<WorldEntity*>(object1));
 
Index: code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.h
===================================================================
--- code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.h	(revision 3300)
+++ code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.h	(revision 3301)
@@ -63,5 +63,5 @@
             virtual void setScale3D(const Vector3& scale);
             virtual void setScale(float scale);
-            inline const Vector3& getScale3D(void) const
+            inline const Vector3& getScale3D() const
                 { return this->scale_; }
 
Index: code/trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc
===================================================================
--- code/trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc	(revision 3300)
+++ code/trunk/src/orxonox/objects/controllers/WaypointPatrolController.cc	(revision 3301)
@@ -85,5 +85,5 @@
 
         Vector3 myposition = this->getControllableEntity()->getPosition();
-        float shortestsqdistance = (unsigned int)-1;
+        float shortestsqdistance = static_cast<unsigned int>(-1);
 
         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
Index: code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc
===================================================================
--- code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3300)
+++ code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3301)
@@ -74,5 +74,5 @@
                 playersperteam[it->second]++;
 
-        unsigned int minplayers = (unsigned int)-1;
+        unsigned int minplayers = static_cast<unsigned int>(-1);
         size_t minplayersteam = 0;
         for (size_t i = 0; i < this->teams_; ++i)
Index: code/trunk/src/orxonox/objects/gametypes/UnderAttack.cc
===================================================================
--- code/trunk/src/orxonox/objects/gametypes/UnderAttack.cc	(revision 3300)
+++ code/trunk/src/orxonox/objects/gametypes/UnderAttack.cc	(revision 3301)
@@ -51,5 +51,5 @@
 
         this->setConfigValues();
-        this->timesequence_ = static_cast<this->gameTime_);
+        this->timesequence_ = static_cast<int>(this->gameTime_);
     }
 
Index: code/trunk/src/orxonox/objects/weaponsystem/Munition.cc
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/Munition.cc	(revision 3300)
+++ code/trunk/src/orxonox/objects/weaponsystem/Munition.cc	(revision 3301)
@@ -354,5 +354,5 @@
             return false;
 
-        if (amount <= (unsigned int)needed_magazines)
+        if (amount <= static_cast<unsigned int>(needed_magazines))
         {
             // We need more magazines than we get, so just add them
Index: code/trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h	(revision 3300)
+++ code/trunk/src/orxonox/objects/weaponsystem/WeaponSystem.h	(revision 3301)
@@ -84,8 +84,8 @@
 
             static const unsigned int MAX_FIRE_MODES = 8;
-            static const unsigned int FIRE_MODE_UNASSIGNED = (unsigned int)-1;
+            static const unsigned int FIRE_MODE_UNASSIGNED = static_cast<unsigned int>(-1);
 
             static const unsigned int MAX_WEAPON_MODES = 8;
-            static const unsigned int WEAPON_MODE_UNASSIGNED = (unsigned int)-1;
+            static const unsigned int WEAPON_MODE_UNASSIGNED = static_cast<unsigned int>(-1);
 
         private:
Index: code/trunk/src/orxonox/objects/worldentities/ParticleEmitter.h
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/ParticleEmitter.h	(revision 3300)
+++ code/trunk/src/orxonox/objects/worldentities/ParticleEmitter.h	(revision 3301)
@@ -66,5 +66,5 @@
                 { this->LOD_ = static_cast<LODParticle::Value>(level); this->LODchanged(); }
             inline unsigned int getLODxml() const
-                { return (unsigned int)this->LOD_; }
+                { return static_cast<unsigned int>(this->LOD_); }
 
             void sourceChanged();
Index: code/trunk/src/orxonox/objects/worldentities/WorldEntity.h
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/WorldEntity.h	(revision 3300)
+++ code/trunk/src/orxonox/objects/worldentities/WorldEntity.h	(revision 3301)
@@ -148,5 +148,5 @@
             inline void setScale3D(float x, float y, float z)
                 { this->setScale3D(Vector3(x, y, z)); }
-            const Vector3& getScale3D(void) const;
+            const Vector3& getScale3D() const;
             const Vector3& getWorldScale3D() const;
 
@@ -457,5 +457,5 @@
     inline const Quaternion& WorldEntity::getOrientation() const
         { return this->node_->getOrientation(); }
-    inline const Vector3& WorldEntity::getScale3D(void) const
+    inline const Vector3& WorldEntity::getScale3D() const
         { return this->node_->getScale(); }
 #endif
Index: code/trunk/src/orxonox/overlays/GUIOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/GUIOverlay.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/GUIOverlay.cc	(revision 3301)
@@ -67,5 +67,5 @@
             std::string str;
             std::stringstream out;
-            out << static_cast<long>(this);
+            out << reinterpret_cast<long>(this);
             str = out.str();
             GUIManager::getInstance().executeCode("showCursor()");
Index: code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc	(revision 3301)
@@ -82,5 +82,5 @@
         // Get aspect ratio from the render window. Later on, we get informed automatically
         Ogre::RenderWindow* defaultWindow = GraphicsManager::getInstance().getRenderWindow();
-        this->windowAspectRatio_ = (float)defaultWindow->getWidth() / defaultWindow->getHeight();
+        this->windowAspectRatio_ = static_cast<float>(defaultWindow->getWidth()) / defaultWindow->getHeight();
         this->sizeCorrectionChanged();
 
@@ -183,5 +183,5 @@
     void OrxonoxOverlay::windowResized(unsigned int newWidth, unsigned int newHeight)
     {
-        this->windowAspectRatio_ = newWidth/(float)newHeight;
+        this->windowAspectRatio_ = static_cast<float>(newWidth) / newHeight;
         this->sizeCorrectionChanged();
     }
@@ -215,5 +215,5 @@
             if (angle < 0.0)
                 angle = -angle;
-            angle -= 180.0f * static_caste<int>(angle / 180.0);
+            angle -= 180.0f * static_cast<int>(angle / 180.0);
 
             // take the reverse if angle is about 90 degrees
Index: code/trunk/src/orxonox/overlays/console/InGameConsole.cc
===================================================================
--- code/trunk/src/orxonox/overlays/console/InGameConsole.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/console/InGameConsole.cc	(revision 3301)
@@ -93,5 +93,5 @@
         @brief Destructor: Destroys the TextAreas.
     */
-    InGameConsole::~InGameConsole(void)
+    InGameConsole::~InGameConsole()
     {
         this->deactivate();
Index: code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 3301)
@@ -141,5 +141,5 @@
 
         // set text
-        int dist = (int) getDist2Focus();
+        int dist = static_cast<int>(getDist2Focus());
         navText_->setCaption(multi_cast<std::string>(dist));
         float textLength = multi_cast<std::string>(dist).size() * navText_->getCharHeight() * 0.3;
Index: code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationOverlay.cc	(revision 3301)
@@ -129,5 +129,5 @@
     std::string NotificationOverlay::clipMessage(const std::string & message)
     {
-        if(message.length() <= (unsigned int)this->queue_->getNotificationLength()) //!< If the message is not too long.
+        if(message.length() <= static_cast<unsigned int>(this->queue_->getNotificationLength())) //!< If the message is not too long.
             return message;
         return message.substr(0, this->queue_->getNotificationLength());
Index: code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3300)
+++ code/trunk/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 3301)
@@ -398,5 +398,5 @@
         timeString.erase(timeString.length()-1);
         std::ostringstream stream;
-        stream << (unsigned long)notification;
+        stream << reinterpret_cast<unsigned long>(notification);
         std::string addressString = stream.str() ;
         container->name = "NotificationOverlay(" + timeString + ")&" + addressString;
Index: code/trunk/src/orxonox/tools/ParticleInterface.cc
===================================================================
--- code/trunk/src/orxonox/tools/ParticleInterface.cc	(revision 3300)
+++ code/trunk/src/orxonox/tools/ParticleInterface.cc	(revision 3301)
@@ -79,5 +79,5 @@
         }
 
-        this->setDetailLevel((unsigned int)detaillevel);
+        this->setDetailLevel(static_cast<unsigned int>(detaillevel));
     }
 
@@ -185,5 +185,5 @@
     void ParticleInterface::detailLevelChanged(unsigned int newlevel)
     {
-        if (newlevel >= (unsigned int)this->detaillevel_)
+        if (newlevel >= static_cast<unsigned int>(this->detaillevel_))
             this->bAllowedByLOD_ = true;
         else
Index: code/trunk/src/orxonox/tools/Shader.cc
===================================================================
--- code/trunk/src/orxonox/tools/Shader.cc	(revision 3300)
+++ code/trunk/src/orxonox/tools/Shader.cc	(revision 3301)
@@ -165,7 +165,7 @@
             if (pointer->first)
             {
-                if ((*((float*)pointer->second)) != value)
-                {
-                    (*((float*)pointer->second)) = value;
+                if ((*static_cast<float*>(pointer->second)) != value)
+                {
+                    (*static_cast<float*>(pointer->second)) = value;
                     return true;
                 }
@@ -173,7 +173,7 @@
             else
             {
-                if ((*((int*)pointer->second)) != (int)value)
-                {
-                    (*((int*)pointer->second)) = (int)value;
+                if ((*static_cast<int*>(pointer->second)) != static_cast<int>(value))
+                {
+                    (*static_cast<int*>(pointer->second)) = static_cast<int>(value);
                     return true;
                 }
@@ -190,7 +190,7 @@
             if (pointer->first)
             {
-                if ((*((float*)pointer->second)) != (float)value)
-                {
-                    (*((float*)pointer->second)) = (float)value;
+                if ((*static_cast<float*>(pointer->second)) != static_cast<float>(value))
+                {
+                    (*static_cast<float*>(pointer->second)) = static_cast<float>(value);
                     return true;
                 }
@@ -198,7 +198,7 @@
             else
             {
-                if ((*((int*)pointer->second)) != value)
-                {
-                    (*((int*)pointer->second)) = value;
+                if ((*static_cast<int*>(pointer->second)) != value)
+                {
+                    (*static_cast<int*>(pointer->second)) = value;
                     return true;
                 }
@@ -214,7 +214,7 @@
         {
             if (pointer->first)
-                return (*((float*)pointer->second));
+                return (*static_cast<float*>(pointer->second));
             else
-                return static_cast<float>(*((int*)pointer->second));
+                return static_cast<float>(*static_cast<int*>(pointer->second));
         }
         else
@@ -309,6 +309,6 @@
                         {
                             void* temp = (definition_iterator->second.isFloat())
-                                            ? (void*)parameter_pointer->getFloatPointer(definition_iterator->second.physicalIndex)
-                                            : (void*)parameter_pointer->getIntPointer(definition_iterator->second.physicalIndex);
+                                            ? static_cast<void*>(parameter_pointer->getFloatPointer(definition_iterator->second.physicalIndex))
+                                            : static_cast<void*>(parameter_pointer->getIntPointer(definition_iterator->second.physicalIndex));
                             ParameterPointer parameter_pointer = ParameterPointer(definition_iterator->second.isFloat(), temp);
 
Index: code/trunk/src/orxonox/tools/Timer.cc
===================================================================
--- code/trunk/src/orxonox/tools/Timer.cc	(revision 3300)
+++ code/trunk/src/orxonox/tools/Timer.cc	(revision 3301)
@@ -136,5 +136,5 @@
         {
             // If active: Decrease the timer by the duration of the last frame
-            this->time_ -= (long long)(time.getDeltaTimeMicroseconds() * this->getTimeFactor());
+            this->time_ -= static_cast<long long>(time.getDeltaTimeMicroseconds() * this->getTimeFactor());
 
             if (this->time_ <= 0)
Index: code/trunk/src/orxonox/tools/Timer.h
===================================================================
--- code/trunk/src/orxonox/tools/Timer.h	(revision 3300)
+++ code/trunk/src/orxonox/tools/Timer.h	(revision 3301)
@@ -103,11 +103,11 @@
             /** @brief Gives the Timer some extra time. @param time The amount of extra time in seconds */
             inline void addTime(float time)
-                { if (time > 0.0f) this->time_ += (long long)(time * 1000000.0f); }
+                { if (time > 0.0f) this->time_ += static_cast<long long>(time * 1000000.0f); }
             /** @brief Decreases the remaining time of the Timer. @param time The amount of time to remove */
             inline void removeTime(float time)
-                { if (time > 0.0f) this->time_ -= (long long)(time * 1000000.0f); }
+                { if (time > 0.0f) this->time_ -= static_cast<long long>(time * 1000000.0f); }
             /** @brief Sets the interval of the Timer. @param interval The interval */
             inline void setInterval(float interval)
-                { this->interval_ = (long long)(interval * 1000000.0f); }
+                { this->interval_ = static_cast<long long>(interval * 1000000.0f); }
             /** @brief Sets bLoop to a given value. @param bLoop True = loop */
             inline void setLoop(bool bLoop)
Index: code/trunk/src/util/Clipboard.cc
===================================================================
--- code/trunk/src/util/Clipboard.cc	(revision 3300)
+++ code/trunk/src/util/Clipboard.cc	(revision 3301)
@@ -66,5 +66,5 @@
                 EmptyClipboard();
                 HGLOBAL clipbuffer = GlobalAlloc(GMEM_DDESHARE, text.size() + 1);
-                char* buffer = (char*)GlobalLock(clipbuffer);
+                char* buffer = static_cast<char*>(GlobalLock(clipbuffer));
                 strcpy(buffer, text.c_str());
                 GlobalUnlock(clipbuffer);
@@ -94,5 +94,5 @@
             {
                 HANDLE hData = GetClipboardData(CF_TEXT);
-                std::string output = (char*)GlobalLock(hData);
+                std::string output = static_cast<char*>(GlobalLock(hData));
                 GlobalUnlock(hData);
                 CloseClipboard();
Index: code/trunk/src/util/MultiType.h
===================================================================
--- code/trunk/src/util/MultiType.h	(revision 3300)
+++ code/trunk/src/util/MultiType.h	(revision 3301)
@@ -303,5 +303,5 @@
             inline bool                                   setValue(const char* value);
             /** @brief Assigns a pointer. */
-            template <typename V> inline bool             setValue(V* value)               { if (this->value_) { return this->value_->setValue((void*)value); } else { return this->assignValue((void*)value); } }
+            template <typename V> inline bool             setValue(V* value)               { if (this->value_) { return this->value_->setValue(static_cast<void*>(const_cast<typename TypeStripper<V>::RawType*>(value))); } else { return this->assignValue(static_cast<void*>(const_cast<typename TypeStripper<V>::RawType*>(value))); } }
             /** @brief Assigns the value of the other MultiType and converts it to the current type. */
             bool                                          setValue(const MultiType& other) { if (this->value_) { return this->value_->assimilate(other); } else { if (other.value_) { this->value_ = other.value_->clone(); } return true; } }
@@ -335,7 +335,7 @@
             
             /** @brief Saves the value of the MT to a bytestream (pointed at by mem) and increases mem pointer by size of MT */
-            inline void                       exportData(uint8_t*& mem) const { assert(sizeof(MT_Type::Value)<=8); *(uint8_t*)(mem) = this->getType(); mem+=sizeof(uint8_t); this->value_->exportData(mem); }
+            inline void                       exportData(uint8_t*& mem) const { assert(sizeof(MT_Type::Value)<=8); *static_cast<uint8_t*>(mem) = this->getType(); mem+=sizeof(uint8_t); this->value_->exportData(mem); }
             /** @brief Loads the value of the MT from a bytestream (pointed at by mem) and increases mem pointer by size of MT */
-            inline void                       importData(uint8_t*& mem) { assert(sizeof(MT_Type::Value)<=8); this->setType(static_cast<MT_Type::Value>(*(uint8_t*)mem)); mem+=sizeof(uint8_t); this->value_->importData(mem); }
+            inline void                       importData(uint8_t*& mem) { assert(sizeof(MT_Type::Value)<=8); this->setType(static_cast<MT_Type::Value>(*static_cast<uint8_t*>(mem))); mem+=sizeof(uint8_t); this->value_->importData(mem); }
             /** @brief Saves the value of the MT to a bytestream and increases pointer to bytestream by size of MT */
             inline uint8_t*&                  operator << (uint8_t*& mem) { importData(mem); return mem; }
@@ -371,5 +371,5 @@
             operator orxonox::Degree()       const;
             /** @brief Returns the current value, converted to a T* pointer. */
-            template <class T> operator T*() const { return ((T*)this->operator void*()); }
+            template <class T> operator T*() const { return (static_cast<T*>(this->operator void*())); }
 
             inline bool getValue(char*                 value) const { if (this->value_) { return this->value_->getValue(value); } return false; } /** @brief Assigns the value to the given pointer. The value gets converted if the types don't match. */
@@ -420,5 +420,5 @@
             inline orxonox::Radian          getRadian()           const { return this->operator orxonox::Radian();      } /** @brief Returns the current value, converted to the requested type. */
             inline orxonox::Degree          getDegree()           const { return this->operator orxonox::Degree();      } /** @brief Returns the current value, converted to the requested type. */
-            template <typename T> inline T* getPointer()          const { return ((T*)this->getVoid());                 } /** @brief Returns the current value, converted to a T* pointer. */
+            template <typename T> inline T* getPointer()          const { return static_cast<T*>(this->getVoid());      } /** @brief Returns the current value, converted to a T* pointer. */
 
         private:
Index: code/trunk/src/util/OutputHandler.cc
===================================================================
--- code/trunk/src/util/OutputHandler.cc	(revision 3300)
+++ code/trunk/src/util/OutputHandler.cc	(revision 3301)
@@ -97,5 +97,5 @@
     void OutputHandler::setSoftDebugLevel(OutputHandler::OutputDevice device, int level)
     {
-        OutputHandler::getOutStream().softDebugLevel_[(unsigned int)device] = level;
+        OutputHandler::getOutStream().softDebugLevel_[static_cast<unsigned int>(device)] = level;
     }
 
@@ -107,5 +107,5 @@
     int OutputHandler::getSoftDebugLevel(OutputHandler::OutputDevice device)
     {
-        return OutputHandler::getOutStream().softDebugLevel_[(unsigned int)device];
+        return OutputHandler::getOutStream().softDebugLevel_[static_cast<unsigned int>(device)];
     }
 
Index: code/trunk/src/util/SignalHandler.cc
===================================================================
--- code/trunk/src/util/SignalHandler.cc	(revision 3300)
+++ code/trunk/src/util/SignalHandler.cc	(revision 3301)
@@ -203,5 +203,5 @@
         dup2( gdbErr[1], STDERR_FILENO );
 
-        execlp( "sh", "sh", "-c", "gdb", (void*)NULL);
+        execlp( "sh", "sh", "-c", "gdb", static_cast<void*>(NULL));
       }
 
Index: code/trunk/src/util/StringUtils.cc
===================================================================
--- code/trunk/src/util/StringUtils.cc	(revision 3300)
+++ code/trunk/src/util/StringUtils.cc	(revision 3301)
@@ -125,5 +125,5 @@
 
         size_t quotecount = 0;
-        size_t quote = (size_t)-1;
+        size_t quote = static_cast<size_t>(-1);
         while ((quote = getNextQuote(str, quote + 1)) < pos)
         {
