Index: code/branches/hoverHS15/src/modules/hover/Hover.cc
===================================================================
--- code/branches/hoverHS15/src/modules/hover/Hover.cc	(revision 10658)
+++ code/branches/hoverHS15/src/modules/hover/Hover.cc	(revision 10659)
@@ -1,2 +1,3 @@
+<<<<<<< .mine
 /*
  *   ORXONOX - the hottest 3D action shooter ever to exist
@@ -21,5 +22,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Cyrill Burgener
  *   Co-authors:
  *      ...
@@ -33,5 +34,5 @@
 
 #include "Hover.h"
-#include "HoverShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
+#include "HoverShip.h"
 #include "core/CoreIncludes.h"
 
@@ -40,28 +41,176 @@
     RegisterUnloadableClass(Hover);
 
-    Hover::Hover(Context* context) : GameType(context)
+    Hover::Hover(Context* context) : Deathmatch(context)
     {
         RegisterObject(Hover);
 
-        //this->setHUDTemplate("HoverHUD");
-    }
-
-
+        bEndGame = false;
+        lives = 1;
+        level = 1;
+        point = 0;
+        bShowLevel = false;
+        multiplier = 1;
+        b_combo = false;
+        counter = 5000;
+        pattern = 1;
+        lastPosition = 0;
+        // spawn enemy every 3.5 seconds
+        //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Hover::spawnEnemy, this)));
+        comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Hover::comboControll, this)));
+        this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
+        this->center_ = 0;
+
+        this->setHUDTemplate("HoverHUD");
+    }
+
+    void Hover::levelUp()
+    {
+        level++;
+        if (getPlayer() != NULL)
+        {
+            for (int i = 0; i < 7; i++)
+            {
+                BigExplosion* chunk = new BigExplosion(this->center_->getContext());
+                chunk->setPosition(Vector3(600, 0, 100.f * i - 300));
+                chunk->setVelocity(Vector3(1000, 0, 0));  //player->getVelocity()
+                chunk->setScale(20);
+            }
+        }
+        addPoints(multiplier * 42);
+        multiplier *= 2;
+        toggleShowLevel();
+        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
+    }
 
     void Hover::tick(float dt)
     {
-
+        if (getPlayer() != NULL)
+        {
+            currentPosition = getPlayer()->getWorldPosition().x;
+            counter = counter + (currentPosition - lastPosition);
+            lastPosition = currentPosition;
+            point = (int) currentPosition;
+            getPlayer()->speed = 830.0f - (point / 1000);
+
+            for(unsigned int i=0; i < cubeList.size();i++)
+            {
+                if(cubeList.at(i)->getPosition().x < currentPosition-3000)
+                {
+                    cubeList.at(i)->destroy();
+                    cubeList.erase(cubeList.begin()+i);
+                }
+            }
+
+            if(counter >= 3000)
+            {
+                counter = 0;
+                for(int i = 0; i<6; i++)
+                {
+                    HoverCube* cube = new HoverCube(this->center_->getContext());
+                    cubeList.push_back(cube);
+                    switch(pattern)
+                    {
+                    case 1: cube->addTemplate("HoverCube01");
+                    break;
+                    case 2: cube->addTemplate("HoverCube02");
+                    break;
+
+                    }
+
+                    cube->setPosition(getPlayer()->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
+                    //stEntity->setScale3D(50,50,50);
+                }
+
+
+                pattern %= 2;
+                pattern ++;
+
+            }
+
+        }
         SUPER(Hover, tick, dt);
     }
 
-    
+    HoverShip* Hover::getPlayer()
+    {
+        if (player == NULL)
+        {
+            for (ObjectList<HoverShip>::iterator it = ObjectList<HoverShip>::begin(); it != ObjectList<HoverShip>::end(); ++it)
+            {
+                player = *it;
+            }
+        }
+        return player;
+    }
+
+    void Hover::costLife()
+    {
+        //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Hover::end, this)));
+        lives = 0;
+    };
+
+    void Hover::comboControll()
+    {
+        if (b_combo)
+            multiplier++;
+        // if no combo was performed before, reset multiplier
+        else
+            multiplier = 1;
+        b_combo = false;
+    }
 
     void Hover::start()
     {
-
+        orxout() << "start" << endl;
+        for(unsigned int i=0; i< cubeList.size();i++)
+        {
+            cubeList.at(i)->destroy();
+            cubeList.erase(cubeList.begin()+i);
+
+        }
+        cubeList.clear();
+        // Set variable to temporarily force the player to spawn.
+        this->bForceSpawn_ = false;
+
+        if (this->center_ == NULL)  // abandon mission!
+        {
+            orxout(internal_error) << "Hover: No Centerpoint specified." << endl;
+            GSLevel::startMainMenu();
+            return;
+        }
         // Call start for the parent class.
-        GameType::start();
-    }
-
+        Deathmatch::start();
+    }
+
+    void Hover::playerPreSpawn(PlayerInfo* player)
+    {
+        if(lives <= 0)
+        {
+            this->end();
+        }
+
+        // Reset all the cubes
+        /*
+        orxout() << "prespawn" << endl;
+        for(int i=0; i< cubeList.size();i++)
+        {
+            cubeList.at(i)->destroy();
+            cubeList.erase(cubeList.begin()+i);
+        }
+        cubeList.clear();
+        lives = 1;
+        point = 0;
+        lastPosition = 0;
+        */
+    }
+
+    void Hover::addPoints(int numPoints)
+    {
+        if (!bEndGame)
+        {
+            point += numPoints * multiplier;
+            b_combo = true;
+        }
+    }
 
     void Hover::end()
@@ -74,2 +223,79 @@
     }
 }
+=======
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file Hover.cc
+    @brief Implementation of the Hover class.
+*/
+
+#include "Hover.h"
+#include "HoverShip.h" // Necessary for getPlayer function. Do NOT include this in Header!
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+    RegisterUnloadableClass(Hover);
+
+    Hover::Hover(Context* context) : GameType(context)
+    {
+        RegisterObject(Hover);
+
+        //this->setHUDTemplate("HoverHUD");
+    }
+
+
+
+    void Hover::tick(float dt)
+    {
+
+        SUPER(Hover, tick, dt);
+    }
+
+    
+
+    void Hover::start()
+    {
+
+        // Call start for the parent class.
+        GameType::start();
+    }
+
+
+    void Hover::end()
+    {
+        // DON'T CALL THIS!
+        //      Deathmatch::end();
+        // It will misteriously crash the game!
+        // Instead startMainMenu, this won't crash.
+        GSLevel::startMainMenu();
+    }
+}
+>>>>>>> .r10658
Index: code/branches/hoverHS15/src/modules/hover/Hover.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/Hover.h	(revision 10658)
+++ code/branches/hoverHS15/src/modules/hover/Hover.h	(revision 10659)
@@ -1,2 +1,3 @@
+<<<<<<< .mine
 /*
  *   ORXONOX - the hottest 3D action shooter ever to exist
@@ -21,5 +22,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Cyrill Burgener
  *   Co-authors:
  *      ...
@@ -33,4 +34,146 @@
 */
 
+#ifndef _DodgeRace_H__
+#define _DodgeRace_H__
+
+#include "hover/HoverPrereqs.h"
+
+
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+
+#include "gamestates/GSLevel.h"
+#include "chat/ChatManager.h"
+#include <vector>
+
+// ! HACK
+#include "infos/PlayerInfo.h"
+
+#include "core/command/ConsoleCommand.h"
+#include "worldentities/BigExplosion.h"
+
+#include "gametypes/Deathmatch.h"
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+
+    class _HoverExport Hover : public Deathmatch
+    {
+       public:
+            Hover(Context* context);
+
+            virtual void start();
+            virtual void end();
+
+            virtual void tick(float dt);
+
+            virtual void playerPreSpawn(PlayerInfo* player);
+
+            void levelUp();
+
+            int getLives(){return this->lives;}
+            int getLevel(){return this->level;}
+            int getPoints(){return this->point;}
+            int getMultiplier(){return this->multiplier;}
+
+            void setCenterpoint(DodgeRaceCenterPoint* center)
+                       { this->center_ = center; }
+            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+
+            // checks if multiplier should be reset.
+            void comboControll();
+            void costLife();
+
+            bool bEndGame;
+            bool bShowLevel;
+            int lives;
+            int multiplier;
+            float counter;
+            int pattern;
+            float currentPosition;
+            float lastPosition;
+
+       private:
+            Timer endGameTimer;
+
+            DodgeRaceShip* getPlayer();
+            WeakPtr<DodgeRaceShip> player;
+            std::vector<DodgeRaceCube*> cubeList;
+            void toggleShowLevel(){bShowLevel = !bShowLevel;}
+            void addPoints(int numPoints);
+
+            WeakPtr<DodgeRaceCenterPoint> center_;
+            int level;
+            int point;
+            bool b_combo;
+
+            Timer enemySpawnTimer;
+            Timer comboTimer;
+            Timer showLevelTimer;
+
+
+         /*
+
+            //void spawnEnemy();
+
+
+
+
+
+
+
+
+
+
+
+
+        private:
+
+
+
+
+            //Context* context;
+            */
+    };
+}
+
+#endif /* _DodgeRace_H__ */
+=======
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file Hover.h
+    @brief Gametype.
+    @ingroup Hover
+*/
+
 #ifndef _Hover_H__
 #define _Hover_H__
@@ -82,2 +225,3 @@
 
 #endif /* _Hover_H__ */
+>>>>>>> .r10658
Index: code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h	(revision 10659)
+++ code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h	(revision 10659)
@@ -0,0 +1,74 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Cyrill Burgener
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the Hover module
+*/
+
+#ifndef _HoverPrereqs_H__
+#define _HoverPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(HOVER_STATIC_BUILD)
+#  ifdef HOVER_SHARED_BUILD
+#    define _HoverExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _HoverExport
+#    else
+#      define _HoverExport __declspec(dllimport)
+#    endif
+#  endif
+#  define _HoverPrivate
+#elif defined (ORXONOX_GCC_VISIBILITY)
+#  define _HoverExport  __attribute__ ((visibility("default")))
+#  define _HoverPrivate __attribute__ ((visibility("hidden")))
+#else
+#  define _HoverExport
+#  define _HoverPrivate
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+    class Hover:
+    class HoverShip;
+}
+
+#endif /* _HoverPrereqs_H__*/
Index: code/branches/hoverHS15/src/modules/hover/HoverShip.cc
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverShip.cc	(revision 10658)
+++ code/branches/hoverHS15/src/modules/hover/HoverShip.cc	(revision 10659)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Cyrill Burgener
  *   Co-authors:
  *      ...
@@ -28,18 +28,18 @@
 
 /**
-    @file DodgeRaceShip.cc
-    @brief Implementation of the DodgeRaceShip class.
+    @file HoverShip.cc
+    @brief Implementation of the HoverShip class.
 */
 
-#include "DodgeRaceShip.h"
+#include "HoverShip.h"
 #include "core/CoreIncludes.h"
 
 namespace orxonox
 {
-    RegisterClass(DodgeRaceShip);
+    RegisterClass(HoverShip);
 
-    DodgeRaceShip::DodgeRaceShip(Context* context) : SpaceShip(context)
+    HoverShip::HoverShip(Context* context) : SpaceShip(context)
     {
-        RegisterObject(DodgeRaceShip);
+        RegisterObject(HoverShip);
 
         speed = 830;
@@ -53,5 +53,5 @@
     }
 
-    void DodgeRaceShip::tick(float dt)
+    void HoverShip::tick(float dt)
     {
         Vector3 pos = getPosition();
@@ -115,8 +115,8 @@
         }
 
-        SUPER(DodgeRaceShip, tick, dt);
+        SUPER(HoverShip, tick, dt);
     }
 
-    void DodgeRaceShip::updateLevel()
+    void HoverShip::updateLevel()
     {
         lastTime = 0;
@@ -125,5 +125,5 @@
     }
 
-    void DodgeRaceShip::moveFrontBack(const Vector2& value)
+    void HoverShip::moveFrontBack(const Vector2& value)
     {
         //lastTimeFront = 0;
@@ -132,15 +132,15 @@
     }
 
-    void DodgeRaceShip::moveRightLeft(const Vector2& value)
+    void HoverShip::moveRightLeft(const Vector2& value)
     {
         lastTimeLeft = 0;
         desiredVelocity.x = value.x * speed;
     }
-    void DodgeRaceShip::boost(bool bBoost)
+    void HoverShip::boost(bool bBoost)
     {
         //getGame()->bEndGame = bBoost;
     }
 
-    inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    inline bool HoverShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
 
@@ -150,9 +150,9 @@
     }
 
-    DodgeRace* DodgeRaceShip::getGame()
+    Hover* HoverShip::getGame()
     {
         if (game == NULL)
         {
-            for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
+            for (ObjectList<Hover>::iterator it = ObjectList<Hover>::begin(); it != ObjectList<Hover>::end(); ++it)
             {
                 game = *it;
@@ -162,5 +162,5 @@
     }
 
-    void DodgeRaceShip::death()
+    void HoverShip::death()
     {
         getGame()->costLife();
Index: code/branches/hoverHS15/src/modules/hover/HoverShip.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverShip.h	(revision 10658)
+++ code/branches/hoverHS15/src/modules/hover/HoverShip.h	(revision 10659)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Cyrill Burgener
  *   Co-authors:
  *      ...
@@ -28,13 +28,13 @@
 
 /**
-    @file DodgeRaceShip.h
-    @brief Declaration of the DodgeRaceShip class.
+    @file HoverShip.h
+    @brief Declaration of the HoverShip class.
 */
 
-#ifndef _DodgeRaceShip_H__
-#define _DodgeRaceShip_H__
+#ifndef _HoverShip_H__
+#define _HoverShip_H__
 
 
-#include "dodgerace/DodgeRacePrereqs.h"
+#include "hover/HoverPrereqs.h"
 
 #include "core/XMLPort.h"
@@ -42,5 +42,5 @@
 #include "graphics/Camera.h"
 
-#include "DodgeRace.h" // Is necessary for getGame function
+#include "Hover.h" // Is necessary for getGame function
 //#include "DodgeRaceCenterPoint.h"
 
