Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt	(revision 10118)
@@ -2,6 +2,6 @@
 DodgeRace.cc
 DodgeRaceCenterPoint.cc
+DodgeRaceShip.cc
 DodgeRaceHUDinfo.cc
-DodgeRaceShip.cc
 )
 
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc	(revision 10118)
@@ -33,35 +33,18 @@
 
 #include "DodgeRace.h"
-
-#include "core/CoreIncludes.h"
-#include "core/EventIncludes.h"
-#include "core/command/Executor.h"
-#include "core/config/ConfigValueIncludes.h"
-
-#include "gamestates/GSLevel.h"
-#include "chat/ChatManager.h"
-
-// ! HACK
-#include "infos/PlayerInfo.h"
-
-/*#include "DodgeRaceCenterPoint.h"
-#include "DodgeRaceShip.h"
-#include "DodgeRaceEnemy.h"
-#include "DodgeRaceEnemyShooter.h"
-*/
-#include "core/command/ConsoleCommand.h"
-#include "worldentities/BigExplosion.h"
+#include "DodgeRaceShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
 
 namespace orxonox
 {
-    RegisterClass(DodgeRace);
+    RegisterUnloadableClass(DodgeRace);
 
     DodgeRace::DodgeRace(Context* context) : Deathmatch(context)
     {
         RegisterObject(DodgeRace);
+        init();
         this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
-        this->center_ = NULL;
-        init();
-        this->setHUDTemplate("DodgeRaceHUD"); // !!!!!!!!!!!!!!!	change later
+        this->center_ = 0;
+        /*
+        this->setHUDTemplate("DodgeRaceHUD"); // !!!!!!!!!!!!!!!	change later*/
     }
 
@@ -75,7 +58,8 @@
         multiplier = 1;
         b_combo = false;
+
         // spawn enemy every 3.5 seconds
         //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&DodgeRace::spawnEnemy, this)));
-        //comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&DodgeRace::comboControll, this)));
+        comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&DodgeRace::comboControll, this)));
     }
 
@@ -83,5 +67,5 @@
     {
         level++;
-        if (getPlayer() != NULL)
+       /* if (getPlayer() != NULL)
         {
             for (int i = 0; i < 7; i++)
@@ -92,5 +76,5 @@
                 chunk->setScale(20);
             }
-        }
+        }*/
         addPoints(multiplier * 42);
         multiplier *= 2;
@@ -110,6 +94,6 @@
         return player;
     }
-
-    /*void DodgeRace::spawnEnemy()
+/*
+    void DodgeRace::spawnEnemy()
     {
         if (getPlayer() == NULL)
@@ -134,5 +118,5 @@
             newPawn->setPosition(player->getPosition() + Vector3(500.f + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
         }
-    }*/
+    }
 
     void DodgeRace::costLife()
@@ -144,5 +128,5 @@
          //   enemySpawnTimer.setTimer(30.0f, false, createExecutor(createFunctor(&DodgeRace::end, this)));
     };
-
+*/
     void DodgeRace::comboControll()
     {
@@ -161,10 +145,10 @@
         this->bForceSpawn_ = true;
 
-        if (this->center_ == NULL)  // abandon mission!
+        /*if (this->center_ == NULL)  // abandon mission!
         {
             orxout(internal_error) << "DodgeRace: No Centerpoint specified." << endl;
             GSLevel::startMainMenu();
             return;
-        }
+        }*/
         // Call start for the parent class.
         Deathmatch::start();
@@ -178,5 +162,5 @@
         }
     }
-
+/*
     void DodgeRace::end()
     {
@@ -186,4 +170,4 @@
         // Instead startMainMenu, this won't crash.
         GSLevel::startMainMenu();
-    }
+    }*/
 }
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h	(revision 10118)
@@ -38,7 +38,23 @@
 #include "dodgerace2/DodgeRacePrereqs.h"
 
-//#include "DodgeRaceCenterPoint.h"
+#include "DodgeRaceCenterPoint.h" // Necessary for WeakPointer??
+//#include "DodgeRaceShip.h" // DO NOT include in Header. Will cause forward declaration issues
+
 //#include "DodgeRaceHUDinfo.h"
-//#include "DodgeRaceShip.h"
+
+
+#include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+
+#include "gamestates/GSLevel.h"
+#include "chat/ChatManager.h"
+
+// ! HACK
+#include "infos/PlayerInfo.h"
+
+#include "core/command/ConsoleCommand.h"
+#include "worldentities/BigExplosion.h"
 
 #include "gametypes/Deathmatch.h"
@@ -48,17 +64,15 @@
 {
 
-    class DodgeRace : public Deathmatch
+    class _DodgeRaceExport DodgeRace : public Deathmatch
     {
-        public:
+       public:
             DodgeRace(Context* context);
 
+            void init();
+
             virtual void start();
-            virtual void end();
-            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+            //virtual void end();
 
-            //void spawnEnemy();
-
-            void setCenterpoint(DodgeRaceCenterPoint* center)
-            { this->center_ = center; }
+            void levelUp();
 
             int getLives(){return this->lives;}
@@ -67,28 +81,53 @@
             int getMultiplier(){return this->multiplier;}
 
-            void costLife();
-            void levelUp();
-            void addPoints(int numPoints);
+            void setCenterpoint(DodgeRaceCenterPoint* center)
+                       { this->center_ = center; }
 
             // checks if multiplier should be reset.
             void comboControll();
-            void init();
+
+            bool bEndGame;
+            bool bShowLevel;
             int lives;
             int multiplier;
-            bool bEndGame;
-            bool bShowLevel;
-        private:
+
+       private:
+            WeakPtr<DodgeRaceShip> getPlayer();
+            WeakPtr<DodgeRaceShip> player;
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
-            WeakPtr<DodgeRaceShip> getPlayer();
+            void addPoints(int numPoints);
+
             WeakPtr<DodgeRaceCenterPoint> center_;
-            WeakPtr<DodgeRaceShip> player;
-
-            Timer enemySpawnTimer;
-            Timer comboTimer;
-            Timer showLevelTimer;
-            //Context* context;
             int level;
             int point;
             bool b_combo;
+
+            Timer enemySpawnTimer;
+			Timer comboTimer;
+			Timer showLevelTimer;
+
+
+         /* virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+
+            //void spawnEnemy();
+
+
+
+
+
+            void costLife();
+
+
+
+
+
+
+        private:
+
+
+
+
+            //Context* context;
+            */
     };
 }
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h	(revision 10118)
@@ -45,5 +45,5 @@
 namespace orxonox
 {
-    class DodgeRaceCenterPoint : public StaticEntity
+    class _DodgeRaceExport DodgeRaceCenterPoint : public StaticEntity
     {
         public:
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc	(revision 10118)
@@ -39,12 +39,12 @@
     {
         RegisterObject(DodgeRaceHUDinfo);
-
+/*
         this->DodgeRaceGame = 0;
         this->bShowLives_ = false;
         this->bShowLevel_ = false;
         this->bShowPoints_ = false;
-        this->bShowMultiplier_ = false;
+        this->bShowMultiplier_ = false;*/
     }
-
+/*
     void DodgeRaceHUDinfo::XMLPort(Element& xmlelement, XMLPort::Mode mode)
     {
@@ -134,4 +134,4 @@
             this->DodgeRaceGame = 0;
         }
-    }
+    }*/
 }
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h	(revision 10118)
@@ -39,9 +39,9 @@
 namespace orxonox
 {
-    class DodgeRaceHUDinfo : public OverlayText, public Tickable
+    class _DodgeRaceExport DodgeRaceHUDinfo : public OverlayText, public Tickable
     {
-        public:
+     public:
             DodgeRaceHUDinfo(Context* context);
-
+  /*
             virtual void tick(float dt);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
@@ -74,5 +74,5 @@
             bool bShowLevel_;
             bool bShowPoints_;
-            bool bShowMultiplier_;
+            bool bShowMultiplier_;*/
     };
 }
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h	(revision 10118)
@@ -75,5 +75,5 @@
     //class DodgeRaceWeapon;
     //class DodgeRaceWeaponEnemy;
-    class DodgeRaceHUDinfo;
+    //class DodgeRaceHUDinfo;
 }
 
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc	(revision 10118)
@@ -34,8 +34,4 @@
 #include "DodgeRaceShip.h"
 
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-//#include "DodgeRace.h"
-
 namespace orxonox
 {
@@ -49,4 +45,8 @@
         isFireing = false;
         damping = 10;
+
+        lastTimeFront = 0;
+        lastTimeLeft = 0;
+        lastTime = 0;
     }
 
@@ -106,5 +106,5 @@
         setPosition(pos);
         setOrientation(Vector3::UNIT_Y, Degree(270));
-
+/*
         // Level up!
         if (pos.x > 42000)
@@ -113,5 +113,5 @@
             setPosition(Vector3(0, 0, pos.z)); // pos - Vector3(30000, 0, 0)
         }
-
+*/
         SUPER(DodgeRaceShip, tick, dt);
     }
@@ -139,5 +139,6 @@
         isFireing = bBoost;
     }
-   /* inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    /*
+    inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
         // orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
@@ -169,6 +170,6 @@
         return false;
         // SUPER(DodgeRaceShip, collidesAgainst, otherObject, contactPoint);
-    }*/
-
+    }
+*/
     WeakPtr<DodgeRace> DodgeRaceShip::getGame()
     {
@@ -176,13 +177,15 @@
         {
             for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
-                game = *it;
+            {
+            	game = *it;
+            }
         }
         return game;
     }
-
+/*
     void DodgeRaceShip::death()
     {
         getGame()->costLife();
         SpaceShip::death();
-    }
+    }*/
 }
Index: /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h
===================================================================
--- /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h	(revision 10117)
+++ /code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h	(revision 10118)
@@ -38,13 +38,16 @@
 #include "dodgerace2/DodgeRacePrereqs.h"
 
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
 #include "worldentities/pawns/SpaceShip.h"
 #include "graphics/Camera.h"
 #include "weapons/projectiles/Projectile.h"
-//#include "DodgeRace.h"
+
+#include "DodgeRace.h" // Is necessary for getGame function
 //#include "DodgeRaceCenterPoint.h"
 
 namespace orxonox
 {
-    class DodgeRaceShip : public SpaceShip
+    class _DodgeRaceExport DodgeRaceShip : public SpaceShip
     {
         public:
@@ -54,17 +57,38 @@
 
             // overwrite for 2d movement
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
+		    virtual void moveFrontBack(const Vector2& value);
+		    virtual void moveRightLeft(const Vector2& value);
 
-            // Starts or stops fireing
-            virtual void boost(bool bBoost);
+	 	    // Starts or stops fireing
+		    virtual void boost(bool bBoost);
 
-            //no rotation!
-            virtual void rotateYaw(const Vector2& value){};
-            virtual void rotatePitch(const Vector2& value){};
-            //return to main menu if game has ended.
-            virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+		    //no rotation!
+		    virtual void rotateYaw(const Vector2& value){};
+		    virtual void rotatePitch(const Vector2& value){};
 
-            virtual void updateLevel();
+		    //return to main menu if game has ended.
+		    virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+
+		    virtual void updateLevel();
+
+            float speed, damping, posforeward;
+            bool isFireing;
+
+        private:
+            WeakPtr<DodgeRace> getGame();
+            WeakPtr<DodgeRace> game;
+            Camera* camera;
+            float lastTimeFront, lastTimeLeft, lastTime;
+            struct Velocity
+            {
+			   float x;
+			   float y;
+            } velocity, desiredVelocity;
+
+
+
+
+/*
+
 
             //virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
@@ -74,18 +98,13 @@
 
         private:
-            WeakPtr<DodgeRace> getGame();
-            WeakPtr<DodgeRace> game;
-            Camera* camera;
-            bool isFireing;
-            float speed, damping, posforeward;
-            float lastTimeFront, lastTimeLeft, lastTime;
-            struct Velocity
-            {
-                float x;
-                float y;
-            } velocity, desiredVelocity;
+
+
+
+
+
+
 
            // WeakPtr<DodgeRaceEnemy> lastEnemy;
-            WeakPtr<Projectile> lastShot;
+            WeakPtr<Projectile> lastShot;*/
 
     };
