Index: code/trunk/src/asylum/network/NetworkFrameListener.h
===================================================================
--- code/trunk/src/asylum/network/NetworkFrameListener.h	(revision 1064)
+++ code/trunk/src/asylum/network/NetworkFrameListener.h	(revision 1064)
@@ -0,0 +1,78 @@
+/*
+ *   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:
+ *      ...
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+//
+// C++ Interface: NetworkFrameListener
+//
+// Description:
+//
+//
+// Author:  <>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef _NetworkFrameListener_H__
+#define _NetworkFrameListener_H__
+
+#include "NetworkPrereqs.h"
+
+#include <OgreFrameListener.h>
+
+#include "Server.h"
+#include "Client.h"
+
+network::Server *server_g;
+network::Client *client_g;
+
+namespace network
+{
+  class ServerFrameListener : public Ogre::FrameListener{
+  private:
+    bool frameStarted(const Ogre::FrameEvent &evt){
+      server_g->tick(evt.timeSinceLastFrame);
+      return FrameListener::frameStarted(evt);
+    }
+  };
+
+  class ClientFrameListener : public Ogre::FrameListener{
+  private:
+    bool frameStarted(const Ogre::FrameEvent &evt){
+      //std::cout << "framelistener" << std::endl;
+      client_g->tick(evt.timeSinceLastFrame);
+      return FrameListener::frameStarted(evt);
+    }
+  };
+
+
+
+
+}
+
+#endif /* _NetworkFrameListener_H__ */
Index: code/trunk/src/asylum/util/String2Number.h
===================================================================
--- code/trunk/src/asylum/util/String2Number.h	(revision 1064)
+++ code/trunk/src/asylum/util/String2Number.h	(revision 1064)
@@ -0,0 +1,81 @@
+/*
+ *   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:
+ *      Nicolas Perrenoud <nicolape_at_ee.ethz.ch>
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _String2Number_H__
+#define _String2Number_H__
+
+#include "UtilPrereqs.h"
+
+#include <string>
+#include <sstream>
+#include <iostream>
+
+#include "core/Debug.h"
+
+/**
+ * String to number conversion
+ *
+ * This class converts a number inside a std::string
+ * into a numeric type number (int,float,double)
+ * Number in string can be decimal, hexadecimal or octal
+ *
+ * @author Nicolas Perrenoud<nicolape_at_ee.ethz.ch>
+ *
+ * @example
+ * float f;
+ * String2Number<float>(f, std::string(" 123.45 "));
+ */
+
+template <class T>
+class String2Number
+{
+  private:
+  bool success_;
+
+  public:
+  /**
+   * Constructor
+   *
+   * First value is the target variable, the second vector is the
+   * string where the number is taken from, the third parameter
+   * should be one of std::hex, std::dec or std::oct (dec is default value)
+   */
+  inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) =  std::dec, int haltOnError=1)
+  {
+    std::istringstream iss(s);
+    success_ = !(iss >> f >> t).fail();
+
+    if (!success_ && haltOnError==1)
+    {
+      COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl;
+      exit(1);
+    }
+  }
+};
+
+#endif /* _String2Number_H__ */
Index: code/trunk/src/asylum/util/Tokenizer.h
===================================================================
--- code/trunk/src/asylum/util/Tokenizer.h	(revision 1064)
+++ code/trunk/src/asylum/util/Tokenizer.h	(revision 1064)
@@ -0,0 +1,68 @@
+/*
+ *   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:
+ *      Nicolas Perrenoud <nicolape_at_ee.ethz.ch>
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _Tokenizer_H__
+#define _Tokenizer_H__
+
+#include <string>
+#include <iostream>
+#include <vector>
+
+/**
+ * String tokenizer
+ *
+ * Splits a given string into several smaller strings
+ * using a delmiter (default is the comma).
+ * Returns the result as a vector<string> object
+ *
+ * @author Nicolas Perrenoud<nicolape_at_ee.ethz.ch>
+ */
+
+inline std::vector<std::string> tokenize(const std::string& str, const std::string& delimiters = ",")
+{
+  std::vector<std::string> tokens;
+
+  // Skip delimiters at beginning.
+  std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
+  // Find first "non-delimiter".
+  std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
+
+  while (std::string::npos != pos || std::string::npos != lastPos)
+  {
+      // Found a token, add it to the vector.
+      tokens.push_back(str.substr(lastPos, pos - lastPos));
+      // Skip delimiters.  Note the "not_of"
+      lastPos = str.find_first_not_of(delimiters, pos);
+      // Find next "non-delimiter"
+      pos = str.find_first_of(delimiters, lastPos);
+  }
+  return tokens;
+}
+
+
+#endif /* _Tokenizer_H__ */
Index: code/trunk/src/audio/AudioManager.cc
===================================================================
--- code/trunk/src/audio/AudioManager.cc	(revision 1063)
+++ code/trunk/src/audio/AudioManager.cc	(revision 1064)
@@ -31,4 +31,7 @@
 #include <AL/alut.h>
 
+#include "AudioBuffer.h"
+#include "AudioSource.h"
+#include "AudioStream.h"
 #include "core/Error.h"
 #include "core/Debug.h"
@@ -49,5 +52,5 @@
 		for (unsigned int i=0;i<bgSounds.size();i++)
 		{
-			bgSounds[i].release();
+			bgSounds[i]->release();
 		}
 		alutExit();
@@ -60,5 +63,5 @@
 		if (bgSounds.size() > 0)
 		{
-			if(!bgSounds[currentBgSound].playback())
+			if(!bgSounds[currentBgSound]->playback())
 			{
     		orxonox::Error("Ogg refused to play.");
@@ -80,7 +83,7 @@
 	{
     std::string path = ambientPath + "/" + file + ".ogg";
-		AudioStream tmp(path);
-		tmp.open();
-		if (tmp.isLoaded())
+		AudioStream* tmp = new AudioStream(path);
+		tmp->open();
+		if (tmp->isLoaded())
 		{
 			bgSounds.push_back(tmp);
@@ -93,10 +96,10 @@
 		if (bgSounds.size() > 0)
 		{
-			if (bgSounds[currentBgSound].isLoaded())
+			if (bgSounds[currentBgSound]->isLoaded())
 			{
-				bool playing = bgSounds[currentBgSound].update();
-		    if(!bgSounds[currentBgSound].playing() && playing)
+				bool playing = bgSounds[currentBgSound]->update();
+		    if(!bgSounds[currentBgSound]->playing() && playing)
 		    {
-		        if(!bgSounds[currentBgSound].playback())
+		        if(!bgSounds[currentBgSound]->playback())
 		            orxonox::Error("Ogg abruptly stopped.");
 		        else
@@ -117,10 +120,10 @@
           currentBgSound = ++currentBgSound % bgSounds.size();
 
-					if (!bgSounds[currentBgSound].isLoaded())
+					if (!bgSounds[currentBgSound]->isLoaded())
 					{
-						bgSounds[currentBgSound].release();
-						bgSounds[currentBgSound].open();
+						bgSounds[currentBgSound]->release();
+						bgSounds[currentBgSound]->open();
 					}
-					bgSounds[currentBgSound].playback();
+					bgSounds[currentBgSound]->playback();
 					COUT(3) << "Info: Playing next background sound" << std::endl;
 				}
Index: code/trunk/src/audio/AudioManager.h
===================================================================
--- code/trunk/src/audio/AudioManager.h	(revision 1063)
+++ code/trunk/src/audio/AudioManager.h	(revision 1064)
@@ -36,7 +36,4 @@
 
 #include "core/Tickable.h"
-#include "AudioBuffer.h"
-#include "AudioSource.h"
-#include "AudioStream.h"
 
 namespace audio
@@ -76,5 +73,5 @@
 
 		// Background sound
-    std::vector<AudioStream> bgSounds;
+    std::vector<AudioStream*> bgSounds;
 		int currentBgSound;
 
@@ -84,9 +81,9 @@
 
 		// Vector containing all audio files
-		std::vector<AudioBuffer> buffers;
+		std::vector<AudioBuffer*> buffers;
 		// Vector containing all audio sources which referer to one buffer
-		std::vector<AudioSource> sources;
+		std::vector<AudioSource*> sources;
 		// The ambient background sound
-		AudioSource ambient;
+		AudioSource* ambient;
 
 		std::vector<float> listenerPosition;
Index: code/trunk/src/audio/AudioPrereqs.h
===================================================================
--- code/trunk/src/audio/AudioPrereqs.h	(revision 1063)
+++ code/trunk/src/audio/AudioPrereqs.h	(revision 1064)
@@ -68,3 +68,10 @@
 }
 
+//-----------------------------------------------------------------------
+// Warnings
+//-----------------------------------------------------------------------
+// set to 4: conversion from 'ogg_int64_t' to 'long', possible loss of data
+# pragma warning (4 : 4244)
+
+
 #endif /* _AudioPrereqs_H__ */
Index: code/trunk/src/audio/AudioStream.cc
===================================================================
--- code/trunk/src/audio/AudioStream.cc	(revision 1063)
+++ code/trunk/src/audio/AudioStream.cc	(revision 1064)
@@ -43,6 +43,6 @@
 	    int result;
 
-
-	    if(!(oggFile = fopen(path.c_str(), "rb")))
+      oggFile = fopen(path.c_str(), "rb");
+	    if(!oggFile)
 			{
 	    	orxonox::Error("Could not open Ogg file "+path);
Index: code/trunk/src/core/CommandExecutor.h
===================================================================
--- code/trunk/src/core/CommandExecutor.h	(revision 1063)
+++ code/trunk/src/core/CommandExecutor.h	(revision 1064)
@@ -161,5 +161,5 @@
         private:
             CommandExecutor() {}
-            CommandExecutor(const CommandExecutor& other) {}
+            CommandExecutor(const CommandExecutor& other);
             ~CommandExecutor() {}
 
Index: code/trunk/src/core/ConfigFileManager.h
===================================================================
--- code/trunk/src/core/ConfigFileManager.h	(revision 1063)
+++ code/trunk/src/core/ConfigFileManager.h	(revision 1064)
@@ -286,5 +286,5 @@
         private:
             ConfigFileManager();
-            ConfigFileManager(const ConfigFileManager& other) {}
+            ConfigFileManager(const ConfigFileManager& other);
             ~ConfigFileManager();
 
Index: code/trunk/src/core/CoreSettings.h
===================================================================
--- code/trunk/src/core/CoreSettings.h	(revision 1063)
+++ code/trunk/src/core/CoreSettings.h	(revision 1064)
@@ -61,5 +61,5 @@
 
             CoreSettings();
-            CoreSettings(const CoreSettings& other) {}
+            CoreSettings(const CoreSettings& other);
             virtual ~CoreSettings();
 
Index: code/trunk/src/core/Factory.h
===================================================================
--- code/trunk/src/core/Factory.h	(revision 1063)
+++ code/trunk/src/core/Factory.h	(revision 1064)
@@ -71,5 +71,5 @@
         private:
             Factory() {}                            // don't create
-            Factory(const Factory& factory) {}      // don't copy
+            Factory(const Factory& factory);        // don't copy
             ~Factory() {}                           // don't delete
 
Index: code/trunk/src/core/Functor.h
===================================================================
--- code/trunk/src/core/Functor.h	(revision 1063)
+++ code/trunk/src/core/Functor.h	(revision 1064)
@@ -429,5 +429,9 @@
 
 
-
+// disable annoying warning about forcing value to boolean
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(push)
+#pragma warning(disable:4100 4800)
+#endif
 
 #define CREATE_ALL_STATIC_FUNCTORS() \
@@ -465,3 +469,7 @@
 }
 
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(pop)
+#endif
+
 #endif /* _Functor_H__ */
Index: code/trunk/src/core/Identifier.h
===================================================================
--- code/trunk/src/core/Identifier.h	(revision 1063)
+++ code/trunk/src/core/Identifier.h	(revision 1064)
@@ -225,5 +225,5 @@
         private:
             Identifier();
-            Identifier(const Identifier& identifier) {} // don't copy
+            Identifier(const Identifier& identifier); // don't copy
             virtual ~Identifier();
             void initialize(std::set<const Identifier*>* parents);
Index: code/trunk/src/core/IdentifierDistributor.h
===================================================================
--- code/trunk/src/core/IdentifierDistributor.h	(revision 1063)
+++ code/trunk/src/core/IdentifierDistributor.h	(revision 1064)
@@ -53,5 +53,5 @@
         private:
             IdentifierDistributor() {};                                         // Don't create
-            IdentifierDistributor(const IdentifierDistributor& distributor) {}  // Don't copy
+            IdentifierDistributor(const IdentifierDistributor& distributor);    // Don't copy
             ~IdentifierDistributor() {}                                         // Don't delete
 
Index: code/trunk/src/core/Language.h
===================================================================
--- code/trunk/src/core/Language.h	(revision 1063)
+++ code/trunk/src/core/Language.h	(revision 1064)
@@ -123,5 +123,5 @@
         private:
             Language();
-            Language(const Language& language) {}   // don't copy
+            Language(const Language& language);     // don't copy
             virtual ~Language() {};                 // don't delete
 
Index: code/trunk/src/core/OutputHandler.h
===================================================================
--- code/trunk/src/core/OutputHandler.h	(revision 1063)
+++ code/trunk/src/core/OutputHandler.h	(revision 1064)
@@ -114,5 +114,5 @@
         private:
             explicit OutputHandler(const std::string& logfilename);
-            OutputHandler(const OutputHandler& oh) {}; // don't copy
+            OutputHandler(const OutputHandler& oh);  // don't copy
             virtual ~OutputHandler();
             std::ofstream logfile_;     //!< The logfile where the output is logged
Index: code/trunk/src/network/ConnectionManager.cc
===================================================================
--- code/trunk/src/network/ConnectionManager.cc	(revision 1063)
+++ code/trunk/src/network/ConnectionManager.cc	(revision 1064)
@@ -114,5 +114,5 @@
 
   bool ConnectionManager::addPacket(ENetPacket *packet, ENetPeer *peer) {
-    if(enet_peer_send(peer, head_->findClient(&(peer->address))->getID() , packet)!=0)
+    if(enet_peer_send(peer, (enet_uint8)head_->findClient(&(peer->address))->getID() , packet)!=0)
       return false;
     return true;
@@ -120,5 +120,5 @@
 
   bool ConnectionManager::addPacket(ENetPacket *packet, int clientID) {
-    if(enet_peer_send(head_->findClient(clientID)->getPeer(), clientID, packet)!=0)
+    if(enet_peer_send(head_->findClient(clientID)->getPeer(), (enet_uint8)clientID, packet)!=0)
       return false;
     return true;
@@ -127,5 +127,5 @@
   bool ConnectionManager::addPacketAll(ENetPacket *packet) {
     for(ClientInformation *i=head_->next(); i!=0; i=i->next()){
-      if(enet_peer_send(i->getPeer(), i->getID(), packet)!=0)
+      if(enet_peer_send(i->getPeer(), (enet_uint8)i->getID(), packet)!=0)
         return false;
     }
Index: code/trunk/src/network/GameStateManager.cc
===================================================================
--- code/trunk/src/network/GameStateManager.cc	(revision 1063)
+++ code/trunk/src/network/GameStateManager.cc	(revision 1064)
@@ -133,7 +133,7 @@
       // run Synchronisable::getData with offset and additional place for 3 ints in between (for ids and length)
       sync=it->getData((retval->data)+offset+3*sizeof(int));
-      *(retval->data+offset)=sync.length;
-      *(retval->data+offset+sizeof(int))=sync.objectID;
-      *(retval->data+offset+2*sizeof(int))=sync.classID;
+      *(retval->data+offset)=(unsigned char)sync.length;
+      *(retval->data+offset+sizeof(int))=(unsigned char)sync.objectID;
+      *(retval->data+offset+2*sizeof(int))=(unsigned char)sync.classID;
       // increase data pointer
       offset+=tempsize+3*sizeof(int);
Index: code/trunk/src/network/NetworkFrameListener.h
===================================================================
--- code/trunk/src/network/NetworkFrameListener.h	(revision 1063)
+++ 	(revision )
@@ -1,78 +1,0 @@
-/*
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-//
-// C++ Interface: NetworkFrameListener
-//
-// Description:
-//
-//
-// Author:  <>, (C) 2007
-//
-// Copyright: See COPYING file that comes with this distribution
-//
-//
-
-#ifndef _NetworkFrameListener_H__
-#define _NetworkFrameListener_H__
-
-#include "NetworkPrereqs.h"
-
-#include <OgreFrameListener.h>
-
-#include "Server.h"
-#include "Client.h"
-
-network::Server *server_g;
-network::Client *client_g;
-
-namespace network
-{
-  class ServerFrameListener : public Ogre::FrameListener{
-  private:
-    bool frameStarted(const Ogre::FrameEvent &evt){
-      server_g->tick(evt.timeSinceLastFrame);
-      return FrameListener::frameStarted(evt);
-    }
-  };
-
-  class ClientFrameListener : public Ogre::FrameListener{
-  private:
-    bool frameStarted(const Ogre::FrameEvent &evt){
-      //std::cout << "framelistener" << std::endl;
-      client_g->tick(evt.timeSinceLastFrame);
-      return FrameListener::frameStarted(evt);
-    }
-  };
-
-
-
-
-}
-
-#endif /* _NetworkFrameListener_H__ */
Index: code/trunk/src/network/PacketDecoder.cc
===================================================================
--- code/trunk/src/network/PacketDecoder.cc	(revision 1063)
+++ code/trunk/src/network/PacketDecoder.cc	(revision 1064)
@@ -153,4 +153,5 @@
     }
     //since it's not alowed to use void* for pointer arithmetic
+    //FIXME: variable never used
     unsigned char* data = (unsigned char *)(packet->data);
     //copy the GameStateCompressed id into the struct, which is located at second place data+sizeof( int )
Index: code/trunk/src/orxonox/OrxonoxPlatform.h
===================================================================
--- code/trunk/src/orxonox/OrxonoxPlatform.h	(revision 1063)
+++ code/trunk/src/orxonox/OrxonoxPlatform.h	(revision 1064)
@@ -226,10 +226,7 @@
 //#   pragma warning (disable : 4305)
 
-// disable: "<type> needs to have dll-interface to be used by clients'
+// set to level 4: "<type> needs to have dll-interface to be used by clients'
 // Happens on STL member variables which are not public therefore is ok
-// This has been dealt with in base_properties of the solution since the
-// warning primarily occurs in library header files (which are mostly
-// included before OrxonoxPlatform.h is)
-//#   pragma warning (disable : 4251)
+#   pragma warning (disable : 4251)
 
 // disable: 'MultiTypeString' : multiple assignment operators specified
Index: code/trunk/src/orxonox/OrxonoxStableHeaders.h
===================================================================
--- code/trunk/src/orxonox/OrxonoxStableHeaders.h	(revision 1063)
+++ code/trunk/src/orxonox/OrxonoxStableHeaders.h	(revision 1064)
@@ -55,4 +55,6 @@
 #include <OgreFrameListener.h>
 #include <OgreLight.h>
+#include <OgreLog.h>
+#include <OgreLogManager.h>
 #include <OgreMath.h>
 #include <OgreMatrix3.h>
@@ -62,6 +64,4 @@
 #include <OgreParticleEmitter.h>
 #include <OgreParticleSystem.h>
-#include <OgrePlatform.h>
-#include <OgrePrerequisites.h>
 #include <OgreQuaternion.h>
 #include <OgreResourceGroupManager.h>
@@ -81,34 +81,35 @@
 #include <OIS/OIS.h>
 
-/**
-* Some of the not so stable header files.
-* It's not very useful to include them anyway..
-**/
+//-----------------------------------------------------------------------
+// ORXONOX HEADERS
+//-----------------------------------------------------------------------
 
-#include "core/CoreIncludes.h"
-#include "core/BaseObject.h"
-#include "core/Tickable.h"
-#include "core/Error.h"
-#include "core/Loader.h"
-#include "core/XMLPort.h"
-
-#include "network/Synchronisable.h"
-//#include "network/Server.h"
-//#include "network/Client.h"
-
+#include "util/Convert.h"
 #include "util/Math.h"
-#include "util/Sleep.h"
-#include "util/String2Number.h"
-#include "util/Tokenizer.h"
 #include "util/Multitype.h"
 #include "util/MultiTypeMath.h"
 #include "util/MultiTypePrimitive.h"
 #include "util/MultiTypeString.h"
-#include "util/substring.h"
+#include "util/Sleep.h"
+#include "util/String.h"
+#include "util/SubString.h"
 #include "util/XMLIncludes.h"
-
 #include "util/tinyxml/ticpp.h"
 #include "util/tinyxml/tinyxml.h"
 
+#include "core/BaseObject.h"
+#include "core/CommandExecutor.h"
+#include "core/CoreIncludes.h"
+#include "core/ConfigValueIncludes.h"
+#include "core/Debug.h"
+#include "core/Executor.h"
+#include "core/Tickable.h"
+#include "core/XMLPort.h"
+
+#include "network/Synchronisable.h"
+
+#include "OrxonoxPlatform.h"
+#include "OrxonoxPrereqs.h"
+#include "tools/Timer.h"
 #include "objects/Model.h"
 #include "objects/WorldEntity.h"
Index: code/trunk/src/orxonox/objects/Ambient.cc
===================================================================
--- code/trunk/src/orxonox/objects/Ambient.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/Ambient.cc	(revision 1064)
@@ -36,6 +36,6 @@
 
 #include "util/tinyxml/tinyxml.h"
-#include "util/Tokenizer.h"
-#include "util/String2Number.h"
+#include "util/SubString.h"
+#include "util/Convert.h"
 #include "util/Math.h"
 #include "core/Debug.h"
@@ -67,10 +67,10 @@
     	if (xmlElem->Attribute("colourvalue"))
     	{
+        SubString colourvalues(xmlElem->Attribute("colourvalue"), ',');
 
-	    	std::vector<std::string> colourvalues = tokenize(xmlElem->Attribute("colourvalue"),",");
 	    	float r, g, b;
-    	 	String2Number<float>(r, colourvalues[0]);
-	    	String2Number<float>(g, colourvalues[1]);
-	    	String2Number<float>(b, colourvalues[2]);
+        convertValue<std::string, float>(&r, colourvalues[0]);
+        convertValue<std::string, float>(&g, colourvalues[1]);
+        convertValue<std::string, float>(&b, colourvalues[2]);
 
 	    	this->setAmbientLight(ColourValue(r, g, b));
Index: code/trunk/src/orxonox/objects/Camera.cc
===================================================================
--- code/trunk/src/orxonox/objects/Camera.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/Camera.cc	(revision 1064)
@@ -38,6 +38,6 @@
 
 #include "util/tinyxml/tinyxml.h"
-#include "util/Tokenizer.h"
-#include "util/String2Number.h"
+#include "util/Substring.h"
+#include "util/Convert.h"
 #include "util/Math.h"
 #include "core/Debug.h"
@@ -73,15 +73,15 @@
 
         float x, y, z;
-        std::vector<std::string> posVec = tokenize(xmlElem->Attribute("pos"),",");
-        String2Number<float>(x, posVec[0]);
-        String2Number<float>(y, posVec[1]);
-        String2Number<float>(z, posVec[2]);
+        SubString posVec(xmlElem->Attribute("pos"), ',');
+        convertValue<std::string, float>(&x, posVec[0]);
+        convertValue<std::string, float>(&y, posVec[1]);
+        convertValue<std::string, float>(&z, posVec[2]);
 
         cam->setPosition(Vector3(x,y,z));
 
-        posVec = tokenize(xmlElem->Attribute("lookat"),",");
-        String2Number<float>(x, posVec[0]);
-        String2Number<float>(y, posVec[1]);
-        String2Number<float>(z, posVec[2]);
+        posVec = SubString(xmlElem->Attribute("lookat"), ',');
+        convertValue<std::string, float>(&x, posVec[0]);
+        convertValue<std::string, float>(&y, posVec[1]);
+        convertValue<std::string, float>(&z, posVec[2]);
 
         cam->lookAt(Vector3(x,y,z));
@@ -93,5 +93,6 @@
 
         // FIXME: unused var
-        Ogre::Viewport* vp = GraphicsEngine::getSingleton().getRenderWindow()->addViewport(cam);
+        //Ogre::Viewport* vp = 
+        GraphicsEngine::getSingleton().getRenderWindow()->addViewport(cam);
 
 
Index: code/trunk/src/orxonox/objects/Model.cc
===================================================================
--- code/trunk/src/orxonox/objects/Model.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/Model.cc	(revision 1064)
@@ -31,6 +31,4 @@
 
 #include "util/tinyxml/tinyxml.h"
-#include "util/Tokenizer.h"
-#include "util/String2Number.h"
 #include "core/CoreIncludes.h"
 #include "GraphicsEngine.h"
Index: code/trunk/src/orxonox/objects/Skybox.cc
===================================================================
--- code/trunk/src/orxonox/objects/Skybox.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/Skybox.cc	(revision 1064)
@@ -35,6 +35,4 @@
 
 #include "util/tinyxml/tinyxml.h"
-//#include "util/Tokenizer.h"
-//#include "util/String2Number.h"
 #include "GraphicsEngine.h"
 #include "core/CoreIncludes.h"
Index: code/trunk/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1064)
@@ -39,5 +39,5 @@
 
 #include "util/tinyxml/tinyxml.h"
-#include "util/String2Number.h"
+#include "util/Convert.h"
 #include "util/Math.h"
 #include "core/CoreIncludes.h"
@@ -259,11 +259,11 @@
             std::string rdStr = xmlElem->Attribute("rotDamp");
 
-            String2Number<float>(this->maxSpeed_, msStr);
-            String2Number<float>(this->maxSideAndBackSpeed_, msabsStr);
-            String2Number<float>(this->maxRotation_, mrStr);
-            String2Number<float>(this->translationAcceleration_, taStr);
-            String2Number<float>(this->rotationAcceleration_, raStr);
-            String2Number<float>(this->translationDamping_, tdStr);
-            String2Number<float>(this->rotationDamping_, rdStr);
+            convertValue<std::string, float>(&this->maxSpeed_, msStr);
+            convertValue<std::string, float>(&this->maxSideAndBackSpeed_, msabsStr);
+            convertValue<std::string, float>(&this->maxRotation_, mrStr);
+            convertValue<std::string, float>(&this->translationAcceleration_, taStr);
+            convertValue<std::string, float>(&this->rotationAcceleration_, raStr);
+            convertValue<std::string, float>(&this->translationDamping_, tdStr);
+            convertValue<std::string, float>(&this->rotationDamping_, rdStr);
 
             this->maxRotationRadian_ = Radian(this->maxRotation_);
@@ -458,5 +458,6 @@
 
         OIS::Keyboard* mKeyboard = InputManager::getSingleton().getKeyboard();
-        OIS::Mouse* mMouse = InputManager::getSingleton().getMouse();
+        //FIXME: variable never used
+        //OIS::Mouse* mMouse = InputManager::getSingleton().getMouse();
 
 
Index: code/trunk/src/orxonox/objects/WorldEntity.cc
===================================================================
--- code/trunk/src/orxonox/objects/WorldEntity.cc	(revision 1063)
+++ code/trunk/src/orxonox/objects/WorldEntity.cc	(revision 1064)
@@ -34,6 +34,5 @@
 
 #include "util/tinyxml/tinyxml.h"
-#include "util/Tokenizer.h"
-#include "util/String2Number.h"
+#include "util/SubString.h"
 #include "core/CoreIncludes.h"
 #include "GraphicsEngine.h"
Index: code/trunk/src/util/Convert.h
===================================================================
--- code/trunk/src/util/Convert.h	(revision 1063)
+++ code/trunk/src/util/Convert.h	(revision 1064)
@@ -43,4 +43,10 @@
 #include "SubString.h"
 #include "MultiTypeMath.h"
+
+// disable annoying warning about forcing value to boolean
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(push)
+#pragma warning(disable:4100 4800)
+#endif
 
 
@@ -620,3 +626,7 @@
 };
 
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(pop)
+#endif
+
 #endif /* _Convert_H__ */
Index: code/trunk/src/util/MultiTypeMath.h
===================================================================
--- code/trunk/src/util/MultiTypeMath.h	(revision 1063)
+++ code/trunk/src/util/MultiTypeMath.h	(revision 1064)
@@ -35,4 +35,10 @@
 #include "MultiTypeString.h"
 #include "Math.h"
+
+// disable annoying warning about multiple assignment operators
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(push)
+#pragma warning(disable:4522)
+#endif
 
 class _UtilExport MultiTypeMath : public MultiTypeString
@@ -160,3 +166,7 @@
 _UtilExport std::ostream& operator<<(std::ostream& out, MultiTypeMath& mtm);
 
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(pop)
+#endif
+
 #endif /* _MultiTypeMath_H__ */
Index: code/trunk/src/util/MultiTypeString.cc
===================================================================
--- code/trunk/src/util/MultiTypeString.cc	(revision 1063)
+++ code/trunk/src/util/MultiTypeString.cc	(revision 1064)
@@ -120,5 +120,6 @@
         return MultiTypePrimitive::toString();
 
-    return output;
+    // FIXME: unreachable code
+    // return output;
 }
 
Index: code/trunk/src/util/MultiTypeString.h
===================================================================
--- code/trunk/src/util/MultiTypeString.h	(revision 1063)
+++ code/trunk/src/util/MultiTypeString.h	(revision 1064)
@@ -37,4 +37,10 @@
 
 #include "MultiTypePrimitive.h"
+
+// disable annoying warning about multiple assignment operators
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(push)
+#pragma warning(disable:4522)
+#endif
 
 class _UtilExport MultiTypeString : public MultiTypePrimitive
@@ -117,3 +123,7 @@
 _UtilExport std::ostream& operator<<(std::ostream& out, MultiTypeString& mts);
 
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#pragma warning(pop)
+#endif
+
 #endif /* _MultiTypeString_H__ */
Index: code/trunk/src/util/String.cc
===================================================================
--- code/trunk/src/util/String.cc	(revision 1063)
+++ code/trunk/src/util/String.cc	(revision 1064)
@@ -308,5 +308,5 @@
     for (unsigned int i = 0; i < str->size(); ++i)
     {
-        (*str)[i] = tolower((*str)[i]);
+        (*str)[i] = (char)tolower((*str)[i]);
     }
 }
@@ -332,5 +332,5 @@
     for (unsigned int i = 0; i < str->size(); ++i)
     {
-        (*str)[i] = toupper((*str)[i]);
+        (*str)[i] = (char)toupper((*str)[i]);
     }
 }
Index: code/trunk/src/util/String2Number.h
===================================================================
--- code/trunk/src/util/String2Number.h	(revision 1063)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/*
- *   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:
- *      Nicolas Perrenoud <nicolape_at_ee.ethz.ch>
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _String2Number_H__
-#define _String2Number_H__
-
-#include "UtilPrereqs.h"
-
-#include <string>
-#include <sstream>
-#include <iostream>
-
-#include "core/Debug.h"
-
-/**
- * String to number conversion
- *
- * This class converts a number inside a std::string
- * into a numeric type number (int,float,double)
- * Number in string can be decimal, hexadecimal or octal
- *
- * @author Nicolas Perrenoud<nicolape_at_ee.ethz.ch>
- *
- * @example
- * float f;
- * String2Number<float>(f, std::string(" 123.45 "));
- */
-
-template <class T>
-class String2Number
-{
-  private:
-  bool success_;
-
-  public:
-  /**
-   * Constructor
-   *
-   * First value is the target variable, the second vector is the
-   * string where the number is taken from, the third parameter
-   * should be one of std::hex, std::dec or std::oct (dec is default value)
-   */
-  inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) =  std::dec, int haltOnError=1)
-  {
-    std::istringstream iss(s);
-    success_ = !(iss >> f >> t).fail();
-
-    if (!success_ && haltOnError==1)
-    {
-      COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl;
-      exit(1);
-    }
-  }
-};
-
-#endif /* _String2Number_H__ */
Index: code/trunk/src/util/Tokenizer.h
===================================================================
--- code/trunk/src/util/Tokenizer.h	(revision 1063)
+++ 	(revision )
@@ -1,68 +1,0 @@
-/*
- *   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:
- *      Nicolas Perrenoud <nicolape_at_ee.ethz.ch>
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Tokenizer_H__
-#define _Tokenizer_H__
-
-#include <string>
-#include <iostream>
-#include <vector>
-
-/**
- * String tokenizer
- *
- * Splits a given string into several smaller strings
- * using a delmiter (default is the comma).
- * Returns the result as a vector<string> object
- *
- * @author Nicolas Perrenoud<nicolape_at_ee.ethz.ch>
- */
-
-inline std::vector<std::string> tokenize(const std::string& str, const std::string& delimiters = ",")
-{
-  std::vector<std::string> tokens;
-
-  // Skip delimiters at beginning.
-  std::string::size_type lastPos = str.find_first_not_of(delimiters, 0);
-  // Find first "non-delimiter".
-  std::string::size_type pos     = str.find_first_of(delimiters, lastPos);
-
-  while (std::string::npos != pos || std::string::npos != lastPos)
-  {
-      // Found a token, add it to the vector.
-      tokens.push_back(str.substr(lastPos, pos - lastPos));
-      // Skip delimiters.  Note the "not_of"
-      lastPos = str.find_first_not_of(delimiters, pos);
-      // Find next "non-delimiter"
-      pos = str.find_first_of(delimiters, lastPos);
-  }
-  return tokens;
-}
-
-
-#endif /* _Tokenizer_H__ */
Index: code/trunk/visual_studio/orxonox_vc8.sln
===================================================================
--- code/trunk/visual_studio/orxonox_vc8.sln	(revision 1063)
+++ code/trunk/visual_studio/orxonox_vc8.sln	(revision 1064)
@@ -38,9 +38,9 @@
 	EndProjectSection
 	ProjectSection(ProjectDependencies) = postProject
+		{35575B59-E1AE-40E8-89C4-2862B5B09B68} = {35575B59-E1AE-40E8-89C4-2862B5B09B68}
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F} = {F101C2F0-1CB9-4A57-827B-6C399A99B28F}
 		{4733BD1A-E04C-458D-8BFB-5010250EA497} = {4733BD1A-E04C-458D-8BFB-5010250EA497}
-		{F101C2F0-1CB9-4A57-827B-6C399A99B28F} = {F101C2F0-1CB9-4A57-827B-6C399A99B28F}
 		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
-		{35575B59-E1AE-40E8-89C4-2862B5B09B68} = {35575B59-E1AE-40E8-89C4-2862B5B09B68}
 	EndProjectSection
 EndProject
@@ -67,4 +67,6 @@
 		Debug|Win32 = Debug|Win32
 		Release|Win32 = Release|Win32
+		static_libs_debug|Win32 = static_libs_debug|Win32
+		static_libs_release|Win32 = static_libs_release|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
@@ -73,24 +75,42 @@
 		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Release|Win32.ActiveCfg = Release|Win32
 		{4733BD1A-E04C-458D-8BFB-5010250EA497}.Release|Win32.Build.0 = Release|Win32
+		{4733BD1A-E04C-458D-8BFB-5010250EA497}.static_libs_debug|Win32.ActiveCfg = Release|Win32
+		{4733BD1A-E04C-458D-8BFB-5010250EA497}.static_libs_release|Win32.ActiveCfg = Release|Win32
 		{271715F3-5B90-4110-A552-70C788084A86}.Debug|Win32.ActiveCfg = Debug|Win32
 		{271715F3-5B90-4110-A552-70C788084A86}.Debug|Win32.Build.0 = Debug|Win32
 		{271715F3-5B90-4110-A552-70C788084A86}.Release|Win32.ActiveCfg = Release|Win32
 		{271715F3-5B90-4110-A552-70C788084A86}.Release|Win32.Build.0 = Release|Win32
+		{271715F3-5B90-4110-A552-70C788084A86}.static_libs_debug|Win32.ActiveCfg = Release|Win32
+		{271715F3-5B90-4110-A552-70C788084A86}.static_libs_release|Win32.ActiveCfg = Release|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.ActiveCfg = Debug|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.Build.0 = Debug|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Release|Win32.ActiveCfg = Release|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Release|Win32.Build.0 = Release|Win32
+		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.static_libs_debug|Win32.ActiveCfg = Release|Win32
+		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.static_libs_release|Win32.ActiveCfg = Release|Win32
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Debug|Win32.Build.0 = Debug|Win32
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Release|Win32.ActiveCfg = Release|Win32
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Release|Win32.Build.0 = Release|Win32
+		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.static_libs_debug|Win32.ActiveCfg = Release|Win32
+		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.static_libs_release|Win32.ActiveCfg = Release|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Debug|Win32.ActiveCfg = Debug|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Debug|Win32.Build.0 = Debug|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.ActiveCfg = Release|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.Build.0 = Release|Win32
+		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.static_libs_debug|Win32.ActiveCfg = Release|Win32
+		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.static_libs_release|Win32.ActiveCfg = Release|Win32
 		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Debug|Win32.ActiveCfg = Debug|Win32
 		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release|Win32.ActiveCfg = Release|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.static_libs_debug|Win32.ActiveCfg = Debug|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.static_libs_debug|Win32.Build.0 = Debug|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.static_libs_release|Win32.ActiveCfg = Release|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.static_libs_release|Win32.Build.0 = Release|Win32
 		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.Debug|Win32.ActiveCfg = Debug|Win32
 		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.Release|Win32.ActiveCfg = Release|Win32
+		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.static_libs_debug|Win32.ActiveCfg = Debug|Win32
+		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.static_libs_debug|Win32.Build.0 = Debug|Win32
+		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.static_libs_release|Win32.ActiveCfg = Release|Win32
+		{35E36A06-0A5C-4A0D-9AB6-5A05EAA87626}.static_libs_release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: code/trunk/visual_studio/vc8/network.vcproj
===================================================================
--- code/trunk/visual_studio/vc8/network.vcproj	(revision 1063)
+++ code/trunk/visual_studio/vc8/network.vcproj	(revision 1064)
@@ -323,8 +323,4 @@
 			</File>
 			<File
-				RelativePath="..\..\src\network\NetworkFrameListener.h"
-				>
-			</File>
-			<File
 				RelativePath="..\..\src\network\NetworkPrereqs.h"
 				>
Index: code/trunk/visual_studio/vc8/tolua++.vcproj
===================================================================
--- code/trunk/visual_studio/vc8/tolua++.vcproj	(revision 1063)
+++ code/trunk/visual_studio/vc8/tolua++.vcproj	(revision 1064)
@@ -71,5 +71,5 @@
 			Name="Release|Win32"
 			ConfigurationType="4"
-			InheritedPropertySheets="$(SolutionDir)base_properties_release.vsprops;..\tixml_properties.vsprops"
+			InheritedPropertySheets="$(SolutionDir)base_properties_release.vsprops;..\tolua++_properties.vsprops"
 			CharacterSet="1"
 			WholeProgramOptimization="1"
Index: code/trunk/visual_studio/vc8/util.vcproj
===================================================================
--- code/trunk/visual_studio/vc8/util.vcproj	(revision 1063)
+++ code/trunk/visual_studio/vc8/util.vcproj	(revision 1064)
@@ -227,13 +227,5 @@
 			</File>
 			<File
-				RelativePath="..\..\src\util\String2Number.h"
-				>
-			</File>
-			<File
 				RelativePath="..\..\src\util\SubString.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\src\util\Tokenizer.h"
 				>
 			</File>
