Index: code/branches/core3/src/orxonox/Orxonox.cc
===================================================================
--- code/branches/core3/src/orxonox/Orxonox.cc	(revision 1780)
+++ code/branches/core3/src/orxonox/Orxonox.cc	(revision 2014)
@@ -231,40 +231,54 @@
     Factory::createClassHierarchy();
 
-    std::string nmbr;
-    char res('a');
-    //const char* nmbr;
-    //const char* str;
-    convertValue(&nmbr, res);
-    //const unsigned int blah = 4;
-    //convertValue(nmbr, blah);
-    //convertValue(&str, 4.0f);
-
-    //using ::operator<<;
-    using std::string;
-    int a = 3;
-    FooBar asdf;
-    std::string asdf2;
-    std::ostringstream oss;
-    char blah(' ');
-    oss << blah;
-    std::cout << asdf2;
-    ConvertValue(&asdf2, asdf);
-    //if (conversionTests::OStreamOperator<FooBar>::exists)
-    //    int asdfasdfasdf = 7;
-    //COUT(3) << asdf;
-
-    TestConv(1, int, (3), float, 3.0);
-    TestConv(2, int, (3), string, "3");
-    TestConv(3, string, ("3.0"), float, 3.0f);
-    TestConv(4, char, ('a'), string, "a");
-    TestConv(5, string, ("df"), char, 'd');
-    TestConv(6, Vector2, (3,4), string, "3,4");
-    TestConv(7, const char*, ("4.3"), float, 4.3f);
-    TestConv(8, const char*, ("4,3"), Vector2, Vector2(4,3));
-    //TestConv(9, const char*, ("4.4"), Radian, Radian(4.4));
-    TestConv(100, int, (3), const char*, "3");
-    TestConv(101, Vector3, (1, 2, 3), float, 3.0);
-
-    std::ostringstream out;
+#include "convert_test.cc"
+
+    // some special string conversions
+    const char* myCString = "84.0";
+    COUT(0) << conversion_cast<std::string>(myCString) << std::endl;
+    COUT(0) << conversion_cast<float>(myCString) << std::endl;
+    COUT(0) << conversion_cast<Vector2>(myCString) << std::endl;
+    COUT(0) << conversion_cast<std::string>(conversion_cast<Radian>(myCString)) << std::endl;
+    COUT(0) << std::endl;
+
+    std::string myString = "3,4,1";
+    COUT(0) << conversion_cast<Vector3>(myString) << std::endl;
+    
+
+    //std::string nmbr;
+    //char res('a');
+    ////const char* nmbr;
+    ////const char* str;
+    //convertValue(&nmbr, res);
+    ////const unsigned int blah = 4;
+    ////convertValue(nmbr, blah);
+    ////convertValue(&str, 4.0f);
+
+    ////using ::operator<<;
+    //using std::string;
+    //int a = 3;
+    //FooBar asdf;
+    //std::string asdf2;
+    //std::ostringstream oss;
+    //char blah(' ');
+    //oss << blah;
+    //std::cout << asdf2;
+    //ConvertValue(&asdf2, asdf);
+    ////if (conversionTests::OStreamOperator<FooBar>::exists)
+    ////    int asdfasdfasdf = 7;
+    ////COUT(3) << asdf;
+
+    //TestConv(1, int, (3), float, 3.0);
+    //TestConv(2, int, (3), string, "3");
+    //TestConv(3, string, ("3.0"), float, 3.0f);
+    //TestConv(4, char, ('a'), string, "a");
+    //TestConv(5, string, ("df"), char, 'd');
+    //TestConv(6, Vector2, (3,4), string, "3,4");
+    //TestConv(7, const char*, ("4.3"), float, 4.3f);
+    //TestConv(8, const char*, ("4,3"), Vector2, Vector2(4,3));
+    ////TestConv(9, const char*, ("4.4"), Radian, Radian(4.4));
+    //TestConv(100, int, (3), const char*, "3");
+    //TestConv(101, Vector3, (1, 2, 3), float, 3.0);
+
+    //std::ostringstream out;
 
     std::string mode;
Index: code/branches/core3/src/orxonox/convert_test.cc
===================================================================
--- code/branches/core3/src/orxonox/convert_test.cc	(revision 2014)
+++ code/branches/core3/src/orxonox/convert_test.cc	(revision 2014)
@@ -0,0 +1,598 @@
+char                 var0('a');
+COUT(0) << "Creating variable of type 'char                '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var0)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var0)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var0)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var0)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var0)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var0)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var0)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var0)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var0)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var0)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var0)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var0)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var0)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var0)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var0)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var0)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var0)) << std::endl;
+
+unsigned char        var1(42);
+COUT(0) << "Creating variable of type 'unsigned char       '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var1)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var1)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var1)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var1)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var1)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var1)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var1)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var1)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var1)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var1)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var1)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var1)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var1)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var1)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var1)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var1)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var1)) << std::endl;
+
+short                var2(-42);
+COUT(0) << "Creating variable of type 'short               '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var2)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var2)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var2)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var2)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var2)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var2)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var2)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var2)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var2)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var2)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var2)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var2)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var2)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var2)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var2)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var2)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var2)) << std::endl;
+
+unsigned short       var3(42);
+COUT(0) << "Creating variable of type 'unsigned short      '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var3)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var3)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var3)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var3)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var3)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var3)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var3)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var3)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var3)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var3)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var3)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var3)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var3)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var3)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var3)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var3)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var3)) << std::endl;
+
+int                  var4(-42);
+COUT(0) << "Creating variable of type 'int                 '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var4)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var4)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var4)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var4)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var4)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var4)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var4)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var4)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var4)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var4)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var4)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var4)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var4)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var4)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var4)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var4)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var4)) << std::endl;
+
+unsigned int         var5(42);
+COUT(0) << "Creating variable of type 'unsigned int        '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var5)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var5)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var5)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var5)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var5)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var5)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var5)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var5)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var5)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var5)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var5)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var5)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var5)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var5)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var5)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var5)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var5)) << std::endl;
+
+long                 var6(-42);
+COUT(0) << "Creating variable of type 'long                '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var6)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var6)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var6)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var6)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var6)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var6)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var6)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var6)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var6)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var6)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var6)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var6)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var6)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var6)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var6)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var6)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var6)) << std::endl;
+
+unsigned long        var7(42);
+COUT(0) << "Creating variable of type 'unsigned long       '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var7)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var7)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var7)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var7)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var7)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var7)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var7)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var7)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var7)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var7)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var7)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var7)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var7)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var7)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var7)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var7)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var7)) << std::endl;
+
+long long            var8(-42);
+COUT(0) << "Creating variable of type 'long long           '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var8)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var8)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var8)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var8)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var8)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var8)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var8)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var8)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var8)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var8)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var8)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var8)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var8)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var8)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var8)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var8)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var8)) << std::endl;
+
+unsigned long long   var9(42);
+COUT(0) << "Creating variable of type 'unsigned long long  '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var9)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var9)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var9)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var9)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var9)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var9)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var9)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var9)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var9)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var9)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var9)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var9)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var9)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var9)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var9)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var9)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var9)) << std::endl;
+
+float                var10(-42.0f);
+COUT(0) << "Creating variable of type 'float               '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var10)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var10)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var10)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var10)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var10)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var10)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var10)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var10)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var10)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var10)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var10)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var10)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var10)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var10)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var10)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var10)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var10)) << std::endl;
+
+double               var11(-42.0);
+COUT(0) << "Creating variable of type 'double              '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var11)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var11)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var11)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var11)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var11)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var11)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var11)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var11)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var11)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var11)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var11)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var11)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var11)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var11)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var11)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var11)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var11)) << std::endl;
+
+long double          var12(-42.0);
+COUT(0) << "Creating variable of type 'long double         '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var12)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var12)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var12)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var12)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var12)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var12)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var12)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var12)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var12)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var12)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var12)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var12)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var12)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var12)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var12)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var12)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var12)) << std::endl;
+
+bool                 var13(true);
+COUT(0) << "Creating variable of type 'bool                '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var13)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var13)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var13)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var13)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var13)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var13)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var13)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var13)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var13)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var13)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var13)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var13)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var13)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var13)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var13)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var13)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var13)) << std::endl;
+
+void*                var14(0);
+COUT(0) << "Creating variable of type 'void*               '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var14)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var14)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var14)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var14)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var14)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var14)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var14)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var14)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var14)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var14)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var14)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var14)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var14)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var14)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var14)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var14)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var14)) << std::endl;
+
+std::string          var15("aString");
+COUT(0) << "Creating variable of type 'std::string         '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var15)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var15)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var15)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var15)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var15)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var15)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var15)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var15)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var15)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var15)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var15)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var15)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var15)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var15)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var15)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var15)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var15)) << std::endl;
+
+orxonox::Vector2     var16(1,2);
+COUT(0) << "Creating variable of type 'orxonox::Vector2    '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var16)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var16)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var16)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var16)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var16)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var16)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var16)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var16)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var16)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var16)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var16)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var16)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var16)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var16)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var16)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var16)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var16)) << std::endl;
+
+orxonox::Vector3     var17(1,2,3);
+COUT(0) << "Creating variable of type 'orxonox::Vector3    '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var17)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var17)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var17)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var17)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var17)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var17)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var17)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var17)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var17)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var17)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var17)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var17)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var17)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var17)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var17)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var17)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var17)) << std::endl;
+
+orxonox::Vector4     var18(1,2,3,4);
+COUT(0) << "Creating variable of type 'orxonox::Vector4    '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var18)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var18)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var18)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var18)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var18)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var18)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var18)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var18)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var18)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var18)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var18)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var18)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var18)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var18)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var18)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var18)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var18)) << std::endl;
+
+orxonox::ColourValue var19(0,1,0,1);
+COUT(0) << "Creating variable of type 'orxonox::ColourValue'." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var19)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var19)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var19)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var19)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var19)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var19)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var19)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var19)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var19)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var19)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var19)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var19)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var19)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var19)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var19)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var19)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var19)) << std::endl;
+
+orxonox::Quaternion  var20(1,1,1,1);
+COUT(0) << "Creating variable of type 'orxonox::Quaternion '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var20)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var20)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var20)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var20)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var20)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var20)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var20)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var20)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var20)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var20)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var20)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var20)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var20)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var20)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var20)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var20)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var20)) << std::endl;
+
+orxonox::Radian      var21(-1.2);
+COUT(0) << "Creating variable of type 'orxonox::Radian     '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var21)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var21)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var21)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var21)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var21)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var21)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var21)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var21)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var21)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var21)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var21)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var21)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var21)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var21)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var21)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var21)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var21)) << std::endl;
+
+orxonox::Degree      var22(-42.0);
+COUT(0) << "Creating variable of type 'orxonox::Degree     '." << std::endl;
+COUT(0) << "To 'char                ': " << conversion_cast<std::string>(conversion_cast<char                >(var22)) << std::endl;
+COUT(0) << "To 'unsigned char       ': " << conversion_cast<std::string>(conversion_cast<unsigned char       >(var22)) << std::endl;
+COUT(0) << "To 'short               ': " << conversion_cast<std::string>(conversion_cast<short               >(var22)) << std::endl;
+COUT(0) << "To 'unsigned short      ': " << conversion_cast<std::string>(conversion_cast<unsigned short      >(var22)) << std::endl;
+COUT(0) << "To 'int                 ': " << conversion_cast<std::string>(conversion_cast<int                 >(var22)) << std::endl;
+COUT(0) << "To 'unsigned int        ': " << conversion_cast<std::string>(conversion_cast<unsigned int        >(var22)) << std::endl;
+COUT(0) << "To 'long                ': " << conversion_cast<std::string>(conversion_cast<long                >(var22)) << std::endl;
+COUT(0) << "To 'unsigned long       ': " << conversion_cast<std::string>(conversion_cast<unsigned long       >(var22)) << std::endl;
+COUT(0) << "To 'long long           ': " << conversion_cast<std::string>(conversion_cast<long long           >(var22)) << std::endl;
+COUT(0) << "To 'unsigned long long  ': " << conversion_cast<std::string>(conversion_cast<unsigned long long  >(var22)) << std::endl;
+COUT(0) << "To 'float               ': " << conversion_cast<std::string>(conversion_cast<float               >(var22)) << std::endl;
+COUT(0) << "To 'double              ': " << conversion_cast<std::string>(conversion_cast<double              >(var22)) << std::endl;
+COUT(0) << "To 'long double         ': " << conversion_cast<std::string>(conversion_cast<long double         >(var22)) << std::endl;
+COUT(0) << "To 'bool                ': " << conversion_cast<std::string>(conversion_cast<bool                >(var22)) << std::endl;
+COUT(0) << "To 'void*               ': " << conversion_cast<std::string>(conversion_cast<void*               >(var22)) << std::endl;
+COUT(0) << "To 'std::string         ': " << conversion_cast<std::string>(conversion_cast<std::string         >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Vector2    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector2    >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Vector3    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector3    >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Vector4    ': " << conversion_cast<std::string>(conversion_cast<orxonox::Vector4    >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::ColourValue': " << conversion_cast<std::string>(conversion_cast<orxonox::ColourValue>(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Quaternion ': " << conversion_cast<std::string>(conversion_cast<orxonox::Quaternion >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Radian     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Radian     >(var22)) << std::endl;
+COUT(0) << "To 'orxonox::Degree     ': " << conversion_cast<std::string>(conversion_cast<orxonox::Degree     >(var22)) << std::endl;
+
Index: code/branches/core3/src/util/Convert.h
===================================================================
--- code/branches/core3/src/util/Convert.h	(revision 1780)
+++ code/branches/core3/src/util/Convert.h	(revision 2014)
@@ -23,5 +23,5 @@
  *      Benjamin Grauer
  *      Fabian 'x3n' Landau
- *      Reto Grieder (direct conversion tests)
+ *      Reto Grieder
  *   Co-authors:
  *      ...
@@ -45,16 +45,18 @@
 #include "Debug.h"
 
-// Gcc generates warnings when implicitely casting from float to int for instance.
-// This is however exactly what convertValue does, so we need to suppress the warnings.
-// They only occur in when using the ImplicitConversion template.
+// GCC generates warnings when implicitely casting from float to int for instance.
+// This is however exactly what convertValue does, so we need to suppress these warnings.
+// They only occur when using the ImplicitConversion template.
 #if ORXONOX_COMPILER == ORXONOX_COMPILER_GNUC
 #  pragma GCC system_header
 #endif
 
+
 ///////////////////////////////////////////////
 // Static detection for conversion functions //
 ///////////////////////////////////////////////
+
 /* The idea to use the sizeof() operator on return functions to determine function existance
-   is described in 'Moder C++ design' by Alexandrescu (2001). */
+   is described in 'Modern C++ design' by Alexandrescu (2001). */
 
 // disable warnings about possible loss of data
@@ -64,31 +66,20 @@
 #endif
 
-namespace conversionTests
-{
-    // A struct that is guaranteed to be larger than any return type of our conversion functions.
-    // So we simply add all the sizes of the return types plus a little bit more.
-    struct VeryBigStruct
-    {
-        char intSize[sizeof(int)];
-        char addingMore[4096]; // just to be sure ;)
-    };
-
-    template <class FromType, class ToType>
-    class ImplicitConversion
-    {
-    private:
-        ImplicitConversion(); ImplicitConversion(const ImplicitConversion&); ~ImplicitConversion();
-        // Gets chosen only if there is an implicit conversion from FromType to ToType.
-        static int test(ToType);
-        // Accepts any argument. Why do we not use a template? The reason is that with templates,
-        // the function above is only taken iff it is an exact type match. But since we want to
-        // check for implicit conversion, we have to use the ellipsis.
-        static VeryBigStruct   test(...);
-        static FromType object; // helper object to handle private c'tor and d'tor
-    public:
-        // test(object) only has 'VerySmallStruct' return type iff the compiler doesn't choose test(...)
-        enum { exists = !(sizeof(test(object)) == sizeof(VeryBigStruct)) };
-    };
-}
+template <class FromType, class ToType>
+class ImplicitConversion
+{
+private:
+    ImplicitConversion(); ImplicitConversion(const ImplicitConversion&); ~ImplicitConversion();
+    // Gets chosen only if there is an implicit conversion from FromType to ToType.
+    static char test(ToType);
+    // Accepts any argument. Why do we not use a template? The reason is that with templates,
+    // the function above is only taken iff it is an exact type match. But since we want to
+    // check for implicit conversion, we have to use the ellipsis.
+    static long long test(...);
+    static FromType object; // helper object to handle private c'tor and d'tor
+public:
+    // test(object) only has 'long long' return type iff the compiler doesn't choose test(...)
+    enum { exists = (sizeof(test(object)) == sizeof(char)) };
+};
 
 #if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
@@ -102,28 +93,30 @@
 /*
     There is a distinct priority when choosing the right conversion function:
-    Overwrites:
-    1. (Partial) template specialisation of ConverterExplicit::convert
-    2. Global functions convertValue(ToType* output, const FromType input)
+    Overwrite:
+    1. (Partial) template specialisation of ConverterExplicit::convert()
     Fallbacks:
-    3. Any possible implicit conversion. This includes FooBar --> int if FooBar defines operator float().
-    4. Global or member operators for stringstream when converting from or to std::string (or FROM const char*)
-    5. Function that simply displays "Could not convert value" with information obtained from typeid().
-
-    A note: There has to be an exact type match (or according to the rules of template spec.) except for 3.
-
-    There are obviously a lot of ways to specifiy a user defined conversion. What should I use?
-    When using any non-template function based conversion (implicit conversion, convertValue, << or >>)
-    then you should consider that this function has to be defined prior to including this file.
-    If you do not whish do do that, you will have to spcecialsize the ConverterExplicit template.
-    There is a not so obvious advantage of the other way (non-template): You could declare each conversion function
-    in the Prereqs file of the corresponding library. Then you can use the conversion everywhere.
-    This is not possible with template specialisations even when defining them in this file (You would create
-    a circular dependency when using a class from Core for instance, because complete template specialisations
-    get compiled anyway (there is no template parameter)).
+    2. Any possible implicit conversion. This includes 'FooBar' --> 'int' if FooBar defines operator float().
+    3. Global or member operators for stringstream when converting from or to std::string (or FROM const char*)
+    4. (Partial) template specialisation of ConverterFallback::convert()
+    5. Function that simply displays "Could not convert value" with type information obtained from typeid().
+
+    Notes:
+    There has to be an exact type match when using template specialisations.
+    Template specialisations can be defined after including this file. Any implicit cast function or iostream
+    operator has to be declared BEFORE this file gets parsed.
+
+    Defining your own functions:
+    There are obviously 4 ways to specifiy a user defined conversion. What should I use?
+
+    Usually, ConverterFallback fits quite well. You won't have to deal with the conversion from
+    'MyClass' to 'MyClass' by using another explicit template specialisation to avoid ambiguities.
+
+    However if you want to overwrite an implicit conversion or an iostream operator, you really need to
+    make use of ConverterExplicit.
 */
 
 namespace
 {
-    // little template that maps to ints to entire types (Alexandrescu 2001)
+    //! Little template that maps integers to entire types (Alexandrescu 2001)
     template <int I>
     struct Int2Type { };
@@ -141,6 +134,6 @@
     static bool convert(ToType* output, const FromType& input)
     {
-        COUT(2) << "Could not convert value of type " << typeid(FromType).name()
-                << " to type " << typeid(ToType).name() << std::endl;
+        //COUT(2) << "Could not convert value of type " << typeid(FromType).name()
+        //        << " to type " << typeid(ToType).name() << std::endl;
         return false;
     }
@@ -183,5 +176,5 @@
 }
 
-// template that evaluates whether OStringStream is possible for conversions to std::string
+// template that evaluates whether we can convert to std::string via ostringstream
 template <class FromType>
 struct ConverterStringStream<std::string, FromType>
@@ -190,4 +183,5 @@
     {
         using namespace fallbackTemplates;
+        // this operator call only chooses fallbackTemplates::operator<< if there's no other fitting function
         std::ostringstream oss;
         if (oss << input)
@@ -216,5 +210,5 @@
 }
 
-// template that evaluates whether IStringStream is possible for conversions from std::string
+// template that evaluates whether we can convert from std::string via ostringstream
 template <class ToType>
 struct ConverterStringStream<ToType, std::string>
@@ -224,4 +218,5 @@
         using namespace fallbackTemplates;
         std::istringstream iss(input);
+        // this operator call only chooses fallbackTemplates::operator>> if there's no other fitting function
         if (iss >> (*output))
         {
@@ -238,5 +233,5 @@
 ///////////////////
 
-// static cast no possible, try stringstream conversion next
+// implicit cast not possible, try stringstream conversion next
 template <class ToType, class FromType>
 inline bool convertImplicitely(ToType* output, const FromType& input, ::Int2Type<false>)
@@ -254,7 +249,7 @@
 
 
-///////////////////////
-// Explicit Fallback //
-///////////////////////
+////////////////////////////////
+// ConverterExplicit Fallback //
+////////////////////////////////
 
 // Default template if no specialisation is available
@@ -264,6 +259,7 @@
     static bool convert(ToType* output, const FromType& input)
     {
-        // try implict conversion by probing first because we use '...' instead of a template
-        const bool probe = conversionTests::ImplicitConversion<FromType, ToType>::exists;
+        // Try implict cast and probe first. If a simple cast is not possible, it will not compile
+        // We therefore have to out source it into another template function
+        const bool probe = ImplicitConversion<FromType, ToType>::exists;
         return convertImplicitely(output, input, ::Int2Type<probe>());
     }
@@ -278,9 +274,7 @@
 @brief
     Converts any value to any other as long as there exists a conversion.
-    Otherwise, the conversion will generate a runtime warning.
+    Otherwise, the conversion will generate a runtime warning and return false.
     For information about the different conversion methods (user defined too), see the section
     'Actual conversion sequence' in this file above.
-@note
-    This function is only a fallback if there is no appropriate 'convertValue' function.
 */
 template <class ToType, class FromType>
@@ -299,12 +293,31 @@
 // Calls convertValue and returns true if the conversion was successful.
 // Otherwise the fallback is used.
+/**
+@brief
+    Converts any value to any other as long as there exists a conversion.
+    Otherwise, the conversion will generate a runtime warning and return false.
+    For information about the different conversion methods (user defined too), see the section
+    'Actual conversion sequence' in this file above.
+    If the conversion doesn't succeed, 'fallback' is written to '*output'.
+@param fallback
+    A default value that gets written to '*output' if there is no conversion.
+*/
+template<class FromType, class ToType>
+inline bool convertValue(ToType* output, const FromType& input, const ToType& fallback)
+{
+    if (convertValue(output, input))
+        return true;
+    else
+    {
+        (*output) = fallback;
+        return false;
+    }
+}
+
+// for compatibility reason. (capital 'c' in ConvertValue)
 template<class FromType, class ToType>
 inline bool ConvertValue(ToType* output, const FromType& input, const ToType& fallback)
 {
-    if (convertValue(output, input))
-        return true;
-
-    (*output) = fallback;
-    return false;
+    return convertValue(output, input, fallback);
 }
 
@@ -314,5 +327,5 @@
 {
     ToType output;
-    ConvertValue(&output, input);
+    convertValue(&output, input);
     return output;
 }
@@ -323,5 +336,5 @@
 {
     ToType output;
-    ConvertValue(&output, input, fallback);
+    convertValue(&output, input, fallback);
     return output;
 }
@@ -333,14 +346,5 @@
 {
     ToType output;
-    ConvertValue(&output, input);
-    return output;
-}
-
-// Like conversion_cast above, but uses a fallback on failure.
-template<class ToType, class FromType>
-inline ToType conversion_cast(const FromType& input, const ToType& fallback)
-{
-    ToType output;
-    ConvertValue(&output, input, fallback);
+    convertValue(&output, input);
     return output;
 }
@@ -351,5 +355,5 @@
 ////////////////////////////////
 
-// delegate conversion from const char* to std::string
+// Delegate conversion from const char* to std::string
 template <class ToType>
 struct ConverterExplicit<ToType, const char*>
Index: code/branches/core3/src/util/MathConvert.h
===================================================================
--- code/branches/core3/src/util/MathConvert.h	(revision 1780)
+++ code/branches/core3/src/util/MathConvert.h	(revision 2014)
@@ -37,6 +37,6 @@
 
 #include "UtilPrereqs.h"
+#include "Math.h"
 #include "Convert.h"
-#include "Math.h"
 
 
@@ -153,43 +153,55 @@
 // From Radian
 template <class ToType>
-inline bool fallbackConversion(ToType* output, const orxonox::Radian input)
-{
-    return convertValue<ToType, Ogre::Real>(output, input.valueRadians()); 
-}
+struct ConverterFallback<ToType, orxonox::Radian>
+{
+    static bool convert(ToType* output, const orxonox::Radian& input)
+    {
+        return convertValue<ToType, Ogre::Real>(output, input.valueRadians());
+    }
+};
 
 // From Degree
 template <class ToType>
-inline bool fallbackConversion(ToType* output, const orxonox::Degree input)
-{
-    return convertValue<ToType, Ogre::Real>(output, input.valueDegrees()); 
-}
+struct ConverterFallback<ToType, orxonox::Degree>
+{
+    static bool convert(ToType* output, const orxonox::Degree& input)
+    {
+        return convertValue<ToType, Ogre::Real>(output, input.valueDegrees());
+    }
+};
 
 // To Radian
 template <class FromType>
-inline bool fallbackConversion(orxonox::Radian* output, const FromType input)
-{
-    float temp;
-    if (convertValue(&temp, input))
-    {
-        *output = temp;
-        return true;
-    }
-    else
-        return false;
-}
+struct ConverterFallback<orxonox::Radian, FromType>
+{
+    static bool convert(orxonox::Radian* output, const FromType& input)
+    {
+        float temp;
+        if (convertValue(&temp, input))
+        {
+            *output = temp;
+            return true;
+        }
+        else
+            return false;
+    }
+};
 
 // To Degree
 template <class FromType>
-inline bool fallbackConversion(orxonox::Degree* output, const FromType input)
-{
-    float temp;
-    if (convertValue(&temp, input))
-    {
-        *output = temp;
-        return true;
-    }
-    else
-        return false;
-}
+struct ConverterFallback<orxonox::Degree, FromType>
+{
+    static bool convert(orxonox::Degree* output, const FromType& input)
+    {
+        float temp;
+        if (convertValue(&temp, input))
+        {
+            *output = temp;
+            return true;
+        }
+        else
+            return false;
+    }
+};
 
 #endif /* _MathConvert_H__ */
Index: code/branches/core3/visual_studio/audio_properties.vsprops
===================================================================
--- code/branches/core3/visual_studio/audio_properties.vsprops	(revision 1780)
+++ code/branches/core3/visual_studio/audio_properties.vsprops	(revision 2014)
@@ -13,5 +13,5 @@
 	<Tool
 		Name="VCLinkerTool"
-		AdditionalDependencies="libvorbisfile-1.2.0$(CSS).lib alut$(CS).lib OpenAL32$(CS).lib"
+		AdditionalDependencies="vorbisfile$(CSS).lib alut$(CS).lib OpenAL32$(CS).lib"
 	/>
 </VisualStudioPropertySheet>
Index: code/branches/core3/visual_studio/base_properties.vsprops
===================================================================
--- code/branches/core3/visual_studio/base_properties.vsprops	(revision 1780)
+++ code/branches/core3/visual_studio/base_properties.vsprops	(revision 2014)
@@ -8,5 +8,5 @@
 	<Tool
 		Name="VCCLCompilerTool"
-		AdditionalIncludeDirectories="&quot;$(RootDir)&quot;;&quot;$(RootDir)src&quot;;&quot;$(RootDir)src\orxonox&quot;;&quot;$(RootDir)src\tolua&quot;;&quot;$(RootDir)src\ois&quot;;&quot;$(LibDir)ogre-1.4.9\OgreMain\include&quot;;&quot;$(LibDir)boost-1.35.0&quot;;&quot;$(LibDir)enet-1.2\include&quot;;&quot;$(LibDir)libogg-1.1.3\include&quot;;&quot;$(LibDir)libvorbis-1.2.0\include&quot;;&quot;$(LibDir)lua-5.1.3\src&quot;;&quot;$(LibDir)openal-1.1\include&quot;;&quot;$(LibDir)openal-1.1\alut\include&quot;;&quot;$(LibDir)tcl-8.5.\generic&quot;;&quot;$(LibDir)zlib-1.2.3&quot;"
+		AdditionalIncludeDirectories="&quot;$(RootDir)&quot;;&quot;$(RootDir)src&quot;;&quot;$(RootDir)src\orxonox&quot;;&quot;$(RootDir)src\ceguilua-0.6.1&quot;;&quot;$(LibDir)ogre-1.4.9\include&quot;;&quot;$(LibDir)boost-1.35.0\include&quot;;&quot;$(LibDir)cegui-0.6.1\include&quot;;&quot;$(LibDir)enet-1.2\include&quot;;&quot;$(LibDir)libogg-1.1.3\include&quot;;&quot;$(LibDir)libvorbis-1.2.0\include&quot;;&quot;$(LibDir)openal-1.1\include&quot;;&quot;$(LibDir)freealut-1.1.0\include&quot;;&quot;$(LibDir)tcl-8.5.2\include&quot;;&quot;$(LibDir)zlib-1.2.3\include&quot;;&quot;$(LibDir)lua-5.1.3\include&quot;"
 		PreprocessorDefinitions="WIN32;__WIN32__;_WIN32;BOOST_ALL_DYN_LINK;OIS_DYNAMIC_LIB; ZLIB_WINAPI"
 		WarningLevel="3"
@@ -22,5 +22,5 @@
 		Name="VCLinkerTool"
 		OutputFile="$(OutDir)$(ProjectName)$(CS).dll"
-		AdditionalLibraryDirectories="$(DependencyDir)lib"
+		AdditionalLibraryDirectories="&quot;$(LibDir)boost-1.35.0\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)cegui-0.6.1\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)enet-1.2\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)freealut-1.1.0\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)libogg-1.1.3\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)libvorbis-1.2.0\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)ogre-1.4.9\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)openal-1.1\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)tcl-8.5.2\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)zlib-1.2.3\lib\$(ConfigurationName)&quot;;&quot;$(LibDir)lua-5.1.3\lib\$(ConfigurationName)&quot;"
 		SubSystem="1"
 		ImportLibrary="$(LibOutDir)$(TargetName).lib"
@@ -45,5 +45,5 @@
 	<UserMacro
 		Name="LibDir"
-		Value="$(RootDir)..\lib_src\"
+		Value="$(RootDir)..\lib_dist\vc8\dependencies\$(SolutionName)\"
 	/>
 	<UserMacro
Index: code/branches/core3/visual_studio/core_properties.vsprops
===================================================================
--- code/branches/core3/visual_studio/core_properties.vsprops	(revision 1780)
+++ code/branches/core3/visual_studio/core_properties.vsprops	(revision 2014)
@@ -13,5 +13,5 @@
 	<Tool
 		Name="VCLinkerTool"
-		AdditionalDependencies="OgreMain$(CSS).lib lua-5.1.3$(CS).lib tcl85t.lib"
+		AdditionalDependencies="OgreMain$(CSS).lib lua$(CS).lib tcl85t.lib"
 	/>
 </VisualStudioPropertySheet>
Index: code/branches/core3/visual_studio/orxonox_properties.vsprops
===================================================================
--- code/branches/core3/visual_studio/orxonox_properties.vsprops	(revision 1780)
+++ code/branches/core3/visual_studio/orxonox_properties.vsprops	(revision 2014)
@@ -15,5 +15,5 @@
 	<Tool
 		Name="VCLinkerTool"
-		AdditionalDependencies="OgreMain$(CSS).lib tcl85t.lib enet-1.2$(CS).lib zlib-1.2.3$(CS).lib"
+		AdditionalDependencies="OgreMain$(CSS).lib tcl85t.lib enet$(CS).lib zlib$(CS).lib"
 		OutputFile="$(OutDir)$(ProjectName)$(CS).exe"
 		IgnoreDefaultLibraryNames="LIBCMT;LIBCMTD"
