Index: code/branches/OrxoBlox_FS19/data/levels/orxoblox.oxw
===================================================================
--- code/branches/OrxoBlox_FS19/data/levels/orxoblox.oxw	(revision 12260)
+++ code/branches/OrxoBlox_FS19/data/levels/orxoblox.oxw	(revision 12264)
@@ -1,6 +1,4 @@
-<! ------ Background & Layout for the Level------ /> 
-
 <LevelInfo
- name = "Orxoblox"
+ name = "OrxoBlox"
  description = "A clone version of the BBTAN game."
  tags = "minigame"
@@ -55,8 +53,8 @@
 
 
-<Level>
- plugins = "orxoblox"
- gametype = "Orxoblox"
-
+<Level
+  plugins = "pong"
+ gametype = "Pong"
+>
 
  <templates>
Index: code/branches/OrxoBlox_FS19/data/tcl/orxokart_highscores.txt
===================================================================
--- code/branches/OrxoBlox_FS19/data/tcl/orxokart_highscores.txt	(revision 12260)
+++ code/branches/OrxoBlox_FS19/data/tcl/orxokart_highscores.txt	(revision 12264)
@@ -20,2 +20,3 @@
 Name: 1:27:11s
 Name: 0:29:74s
+Name: 0:24:15s
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12260)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12264)
@@ -126,4 +126,5 @@
     void OrxoBlox::start()
     {
+        orxout() << "Hello" << endl;
         if (this->center_ != nullptr) // There needs to be a OrxoBloxCenterpoint, i.e. the area the game takes place.
         {
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxAI.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxAI.cc	(revision 12260)
+++ 	(revision )
@@ -1,385 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxAI.cc
-    @brief Implementation of the OrxoBloxAI class.
-*/
-
-#include "OrxoBloxAI.h"
-
-#include "core/CoreIncludes.h"
-#include "core/config/ConfigValueIncludes.h"
-#include "core/command/Executor.h"
-#include "tools/Timer.h"
-
-#include "worldentities/ControllableEntity.h"
-
-#include "OrxoBloxBall.h"
-
-namespace orxonox
-{
-    RegisterUnloadableClass(OrxoBloxAI);
-
-    const static float MAX_REACTION_TIME = 0.4f;
-
-    /**
-    @brief
-        Constructor. Registers and initializes the object.
-    */
-    OrxoBloxAI::OrxoBloxAI(Context* context) : Controller(context)
-    {
-        RegisterObject(OrxoBloxAI);
-
-        this->ball_ = nullptr;
-        this->ballDirection_ = Vector2::ZERO;
-        this->ballEndPosition_ = 0;
-        this->randomOffset_ = 0;
-        this->bChangedRandomOffset_ = false;
-        this->relHysteresisOffset_ = 0.02f;
-        this->strength_ = 0.5f;
-        this->movement_ = 0;
-        this->oldMove_ = 0;
-        this->bOscillationAvoidanceActive_ = false;
-
-        this->setConfigValues();
-    }
-
-    /**
-    @brief
-        Destructor. Cleans up the list fo reaction timers.
-    */
-    OrxoBloxAI::~OrxoBloxAI()
-    {
-        for (std::pair<Timer*, char>& pair : this->reactionTimers_)
-            delete pair.first;
-    }
-
-    /**
-    @brief
-        Sets config values.
-    */
-    void OrxoBloxAI::setConfigValues()
-    {
-        // Sets the strength of the OrxoBloxAi as a config value.
-        SetConfigValue(strength_, 0.5).description("A value from 0 to 1 where 0 is weak and 1 is strong.");
-    }
-
-    /**
-    @brief
-        Is called each tick.
-        Implements the behavior of the OrxoBloxAI (i.e. its intelligence).
-    @param dt
-        The time that has elapsed since the last tick.
-    */
-    void OrxoBloxAI::tick(float dt)
-    {
-        // If either the ball, or the controllable entity (i.e. the bat) don't exist (or aren't set).
-        if (this->ball_  == nullptr || this->getControllableEntity() == nullptr)
-            return;
-
-        Vector3 mypos = this->getControllableEntity()->getPosition();
-        Vector3 ballpos = this->ball_->getPosition();
-        Vector3 ballvel = this->ball_->getVelocity();
-        float hysteresisOffset = this->relHysteresisOffset_ * this->ball_->getFieldDimension().y;
-
-        char move = 0;
-        bool delay = false;
-
-        // Check in which direction the ball is flying
-        if ((mypos.x > 0 && ballvel.x < 0) || (mypos.x < 0 && ballvel.x > 0))
-        {
-            // The ball is flying away
-            this->ballDirection_.x = -1;
-            this->ballDirection_.y = 0;
-            this->bOscillationAvoidanceActive_ = false;
-
-            // Move to the middle
-            if (mypos.z > hysteresisOffset)
-                move = 1;
-            else if (mypos.z < -hysteresisOffset)
-                move = -1;
-        }
-        else if (ballvel.x == 0)
-        {
-            // The ball is standing still
-            this->ballDirection_.x = 0;
-            this->ballDirection_.y = 0;
-            this->bOscillationAvoidanceActive_ = false;
-        }
-        else
-        {
-            // The ball is approaching
-            if (this->ballDirection_.x != 1)
-            {
-                // The ball just started to approach, initialize all values
-                this->ballDirection_.x = 1;
-                this->ballDirection_.y = sgn(ballvel.z);
-                this->ballEndPosition_ = 0;
-                this->randomOffset_ = 0;
-                this->bChangedRandomOffset_ = false;
-
-                this->calculateRandomOffset();
-                this->calculateBallEndPosition();
-                delay = true;
-                this->bOscillationAvoidanceActive_ = false;
-            }
-
-            if (this->ballDirection_.y != sgn(ballvel.z))
-            {
-                // The ball just bounced from a bound, recalculate the predicted end position
-                this->ballDirection_.y = sgn(ballvel.z);
-
-                this->calculateBallEndPosition();
-                delay = true;
-                this->bOscillationAvoidanceActive_ = false;
-            }
-
-            // If the ball is close enough, calculate another random offset to accelerate the ball
-            if (!this->bChangedRandomOffset_)
-            {
-                float timetohit = (-ballpos.x + this->ball_->getFieldDimension().x / 2 * sgn(ballvel.x)) / ballvel.x;
-                if (timetohit < 0.05)
-                {
-                    this->bChangedRandomOffset_ = true;
-                    if (rnd() < this->strength_)
-                        this->calculateRandomOffset();
-                }
-            }
-
-            // Move to the predicted end position with an additional offset (to hit the ball with the side of the bat)
-            if (!this->bOscillationAvoidanceActive_)
-            {
-                float desiredZValue = this->ballEndPosition_ + this->randomOffset_;
-
-                if (mypos.z > desiredZValue + hysteresisOffset * (this->randomOffset_ < 0))
-                    move = 1;
-                else if (mypos.z < desiredZValue - hysteresisOffset * (this->randomOffset_ > 0))
-                    move = -1;
-            }
-
-            if (move != 0 && this->oldMove_ != 0 && move != this->oldMove_ && !delay)
-            {
-                // We had to correct our position because we moved too far
-                // (and delay is false, so we're not in the wrong place because of a new end-position prediction)
-                if (fabs(mypos.z - this->ballEndPosition_) < 0.5 * this->ball_->getBatLength() * this->ball_->getFieldDimension().y)
-                {
-                    // We're not at the right position, but we still hit the ball, so just stay there to avoid oscillation
-                    move = 0;
-                    this->bOscillationAvoidanceActive_ = true;
-                }
-            }
-        }
-
-        this->oldMove_ = move;
-        this->move(move, delay);
-        this->getControllableEntity()->moveFrontBack(this->movement_);
-    }
-
-    /**
-    @brief
-        Calculates the random offset, that accounts for random errors the AI makes in order to be beatable.
-        The higher the strength of the AI, the smaller the (expected value of the) error.
-        The result of this method is stored in this->randomOffset_.
-    */
-    void OrxoBloxAI::calculateRandomOffset()
-    {
-        // Calculate the exponent for the position-formula
-        float exp = pow(10.0f, 1.0f - 2.0f*this->strength_); // strength: 0   -> exp = 10
-                                                             // strength: 0.5 -> exp = 1
-                                                             // strength: 1   -> exp = 0.1
-
-        // Calculate the relative position where to hit the ball with the bat
-        float position = pow(rnd(), exp); // exp > 1 -> position is more likely a small Health
-                                          // exp < 1 -> position is more likely a large Health
-
-        // The position shouldn't be larger than 0.5 (50% of the bat-length from the middle is the end)
-        position *= 0.48f;
-
-        // Both sides are equally probable
-        position *= rndsgn();
-
-        // Calculate the offset in world units
-        this->randomOffset_ = position * this->ball_->getBatLength() * this->ball_->getFieldDimension().y;
-    }
-
-    /**
-    @brief
-        Calculate the end position the ball will be in.
-        The result of this calculation is stored in this->ballEndPosition_.
-    */
-    void OrxoBloxAI::calculateBallEndPosition()
-    {
-        Vector3 position = this->ball_->getPosition();
-        Vector3 velocity = this->ball_->getVelocity();
-        Vector3 acceleration = this->ball_->getAcceleration();
-        Vector2 dimension = this->ball_->getFieldDimension();
-
-        // Calculate bounces. The Health of predicted bounces is limited by the AIs strength
-        for (float limit = -0.05f; limit < this->strength_ || this->strength_ > 0.99f; limit += 0.4f)
-        {
-            // calculate the time until the ball reaches the other side
-            float totaltime = (-position.x + dimension.x / 2 * sgn(velocity.x)) / velocity.x;
-
-            // calculate wall bounce position (four possible solutions of the equation: pos.z + vel.z*t + acc.z/2*t^2 = +/- dim.z/2)
-            float bouncetime = totaltime;
-            bool bUpperWall = false;
-
-            if (acceleration.z == 0)
-            {
-                if (velocity.z > 0)
-                {
-                    bUpperWall = true;
-                    bouncetime = (dimension.y/2 - position.z) / velocity.z;
-                }
-                else if (velocity.z < 0)
-                {
-                    bUpperWall = false;
-                    bouncetime = (-dimension.y/2 - position.z) / velocity.z;
-                }
-            }
-            else
-            {
-                // upper wall
-                float temp = velocity.z*velocity.z + 2*acceleration.z*(dimension.y/2 - position.z);
-                if (temp >= 0)
-                {
-                    float t1 = (sqrt(temp) - velocity.z) / acceleration.z;
-                    float t2 = (sqrt(temp) + velocity.z) / acceleration.z * (-1);
-                    if (t1 > 0 && t1 < bouncetime)
-                    {
-                        bouncetime = t1;
-                        bUpperWall = true;
-                    }
-                    if (t2 > 0 && t2 < bouncetime)
-                    {
-                        bouncetime = t2;
-                        bUpperWall = true;
-                    }
-                }
-                // lower wall
-                temp = velocity.z*velocity.z - 2*acceleration.z*(dimension.y/2 + position.z);
-                if (temp >= 0)
-                {
-                    float t1 = (sqrt(temp) - velocity.z) / acceleration.z;
-                    float t2 = (sqrt(temp) + velocity.z) / acceleration.z * (-1);
-                    if (t1 > 0 && t1 < bouncetime)
-                    {
-                        bouncetime = t1;
-                        bUpperWall = false;
-                    }
-                    if (t2 > 0 && t2 < bouncetime)
-                    {
-                        bouncetime = t2;
-                        bUpperWall = false;
-                    }
-                }
-            }
-
-            if (bouncetime < totaltime)
-            {
-                // Calculate a random prediction error, based on the vertical speed of the ball and the strength of the AI
-                float randomErrorX = rnd(-1, 1) * dimension.y * (velocity.z / velocity.x / OrxoBloxBall::MAX_REL_Z_VELOCITY) * (1 - this->strength_);
-                float randomErrorZ = rnd(-1, 1) * dimension.y * (velocity.z / velocity.x / OrxoBloxBall::MAX_REL_Z_VELOCITY) * (1 - this->strength_);
-
-                // ball bounces after <bouncetime> seconds, update the position and continue
-                velocity.z = velocity.z + acceleration.z * bouncetime;
-
-                if (bUpperWall)
-                {
-                    position.z = dimension.y / 2;
-                    velocity.z = -fabs(velocity.z) + fabs(randomErrorZ);
-                }
-                else
-                {
-                    position.z = -dimension.y / 2;
-                    velocity.z = fabs(velocity.z) - fabs(randomErrorZ);
-                }
-
-                position.x = position.x + velocity.x * bouncetime + randomErrorX;
-                this->ballEndPosition_ = position.z;
-            }
-            else
-            {
-                // ball doesn't bounce, calculate the end position and return
-                // calculate end-height: current height + slope * distance incl. acceleration
-                this->ballEndPosition_ = position.z + velocity.z * totaltime + acceleration.z / 2 * totaltime * totaltime;
-                return;
-            }
-        }
-    }
-
-    /**
-    @brief
-        Determine the movement the AI will undertake. (Either -1, 0 or 1)
-        The result of this calculation is stored in this->movement_;
-    @param direction
-        The current direction of movement.
-    @param bUseDelay
-        The time by which this move is delayed. (Again, to make the AI less efficient)
-    */
-    void OrxoBloxAI::move(char direction, bool bUseDelay)
-    {
-        // The current direction is either what we're doing right now (movement_) or what is last in the queue
-        char currentDirection = this->movement_;
-        if (this->reactionTimers_.size() > 0)
-            currentDirection = this->reactionTimers_.back().second;
-
-        // Only add changes of direction
-        if (direction == currentDirection)
-            return;
-
-        if (bUseDelay)
-        {
-            // Calculate delay
-            float delay = MAX_REACTION_TIME * (1 - this->strength_);
-
-            // Add a new Timer
-            Timer* timer = new Timer(delay, false, createExecutor(createFunctor(&OrxoBloxAI::delayedMove, this)));
-            this->reactionTimers_.emplace_back(timer, direction);
-        }
-        else
-        {
-            this->movement_ = direction;
-        }
-    }
-
-    /**
-    @brief
-        Is called, when a delayed move takes effect.
-    */
-    void OrxoBloxAI::delayedMove()
-    {
-        // Get the new movement direction from the timer list
-        this->movement_ = this->reactionTimers_.front().second;
-
-        // Destroy the timer and remove it from the list
-        delete this->reactionTimers_.front().first;
-        this->reactionTimers_.pop_front();
-    }
-}
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxAI.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxAI.h	(revision 12260)
+++ 	(revision )
@@ -1,98 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxAI.h
-    @brief Declaration of the OrxoBloxAI class.
-    @ingroup OrxoBlox
-*/
-
-#ifndef _OrxoBloxAI_H__
-#define _OrxoBloxAI_H__
-
-#include "OrxoBlox/OrxoBloxPrereqs.h"
-
-#include <list>
-
-#include "util/Math.h"
-#include "tools/interfaces/Tickable.h"
-
-#include "controllers/Controller.h"
-#include "OrxoBloxBall.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        The OrxoBloxAI is an artificial intelligence for the @ref orxonox::OrxoBlox "OrxoBlox" gametype.
-
-    @author
-        Fabian 'x3n' Landau
-
-    @ingroup OrxoBlox
-    */
-    class _OrxoBloxExport OrxoBloxAI : public Controller, public Tickable
-    {
-        public:
-            OrxoBloxAI(Context* context); //!< Constructor. Registers and initializes the object.
-            virtual ~OrxoBloxAI();
-
-            void setConfigValues();
-
-            virtual void tick(float dt) override; //!< Implements the behavior of the OrxoBloxAI (i.e. its intelligence).
-
-            /**
-            @brief Set the ball for the AI.
-            @param ball A pointer to the ball.
-            */
-            void setOrxoBloxBall(OrxoBloxBall* ball)
-                { this->ball_ = ball; }
-
-        protected:
-            void calculateRandomOffset(); //!< Calculates the random offset, that accounts for random errors the AI makes in order to be beatable.
-            void calculateBallEndPosition(); //!< Calculate the end position the ball will be in.
-            void move(char direction, bool bUseDelay); //!< Determine the movement the AI will undertake.
-            void delayedMove(); //!< Is called, when a delayed move takes effect.
-
-            WeakPtr<OrxoBloxBall> ball_; //!< A weak pointer to the ball.
-            Vector2 ballDirection_; //!< Vector to store the (x,z) direction in which the ball is flying.
-            float ballEndPosition_; //!< The calculated end position of the ball.
-            float randomOffset_; //!< A random offset to introduce random errors (weighted by the strength of the AI) into the AI's behavior.
-            bool bChangedRandomOffset_; //!< Helper boolean, to change the random offset more often.
-            float relHysteresisOffset_; //!< A hysteresis offset.
-            float strength_; //!< The strength of the AI. Ranging from 0 to 1.
-
-            std::list<std::pair<Timer*, char>> reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires.
-            char movement_; //!< The planned movement.
-            char oldMove_; //!< The previous movement.
-            bool bOscillationAvoidanceActive_; //!< Boolean, to avoid oscillations.
-    };
-}
-
-#endif /* _OrxoBloxAI_H__ */
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBat.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBat.cc	(revision 12260)
+++ 	(revision )
@@ -1,155 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxBat.cc
-    @brief Implementation of the OrxoBloxBat class.
-*/
-
-#include "OrxoBloxBat.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-
-namespace orxonox
-{
-    RegisterClass(OrxoBloxBat);
-
-    /**
-    @brief
-        Constructor. Registers and initializes the object.
-    */
-    OrxoBloxBat::OrxoBloxBat(Context* context) : ControllableEntity(context)
-    {
-        RegisterObject(OrxoBloxBat);
-
-        this->movement_ = 0;
-        this->bMoveLocal_ = false;
-        this->speed_ = 60;
-        this->length_ = 0.25;
-        this->fieldHeight_ = 100;
-        this->bSteadiedPosition_ = false;
-
-        this->registerVariables();
-    }
-
-    /**
-    @brief
-        Registers variables to be synchronized over the network.
-    */
-    void OrxoBloxBat::registerVariables()
-    {
-        registerVariable(this->speed_);
-        registerVariable(this->fieldHeight_);
-        registerVariable(this->length_);
-    }
-
-    /**
-    @brief
-        Is called each tick.
-        Moves the bat.
-    @param dt
-        The time since last tick.
-    */
-    void OrxoBloxBat::tick(float dt)
-    {
-        // If the bat is controlled (but not over the network).
-        if (this->hasLocalController())
-        {
-            if (this->movement_ != 0)
-            {
-                // The absolute value of the movement is restricted to be lesser or equal than the speed of the bat.
-                this->movement_ = clamp(this->movement_, -1.0f, 1.0f) * this->speed_;
-
-                // If moveRightLeft() is used the movement is dependento on wehther it is the right or the left bat, so, it is i.e. dependent on the orientation of the bat.
-                if (this->bMoveLocal_)
-                    this->setVelocity(this->getOrientation() * Vector3(this->movement_, 0, 0));
-                else
-                    this->setVelocity(0, 0, this->movement_);
-
-                this->movement_ = 0;
-                this->bSteadiedPosition_ = false;
-            }
-            // If there is no movement but the position has not been steadied, the velocity is set to zero and the position is reaffirmed.
-            else if (!this->bSteadiedPosition_)
-            {
-                // To ensure network synchronicity
-                this->setVelocity(0, 0, 0);
-                this->setPosition(this->getPosition());
-                this->bSteadiedPosition_ = true;
-            }
-        }
-
-        SUPER(OrxoBloxBat, tick, dt);
-
-        // Restrict the position of the bats, for them to always be between the upper and lower delimiters. i.e. the bats stall if they reach the upper or lower boundary.
-        Vector3 position = this->getPosition();
-        if (position.z > this->fieldHeight_ / 2 - this->fieldHeight_ * this->length_ / 2)
-            position.z = this->fieldHeight_ / 2 - this->fieldHeight_ * this->length_ / 2;
-        if (position.z < -this->fieldHeight_ / 2 + this->fieldHeight_ * this->length_ / 2)
-            position.z = -this->fieldHeight_ / 2 + this->fieldHeight_ * this->length_ / 2;
-        if (position != this->getPosition())
-        {
-            this->setPosition(position);
-            this->setVelocity( Vector3::ZERO );
-        }
-    }
-
-    /**
-    @brief
-        Overloaded the function to steer the bat up and down.
-    @param value
-        A vector whose first component is the inverse direction in which we want to steer the bat.
-    */
-    void OrxoBloxBat::moveFrontBack(const Vector2& value)
-    {
-        this->bMoveLocal_ = false;
-        this->movement_ = -value.x;
-    }
-
-    /**
-    @brief
-        Overloaded the function to steer the bat up and down.
-    @param value
-        A vector whose first component is the direction in which we wnat to steer the bat.
-    */
-    void OrxoBloxBat::moveRightLeft(const Vector2& value)
-    {
-        this->bMoveLocal_ = true;
-        this->movement_ = value.x;
-    }
-
-    /**
-    @brief
-        Is called when the player changed.
-    */
-    void OrxoBloxBat::changedPlayer()
-    {
-        this->setVelocity(0, 0, 0);
-    }
-}
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBat.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBat.h	(revision 12260)
+++ 	(revision )
@@ -1,120 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxBat.h
-    @brief Declaration of the OrxoBloxBat class.
-    @ingroup OrxoBlox
-*/
-
-#ifndef _OrxoBloxBat_H__
-#define _OrxoBloxBat_H__
-
-#include "OrxoBlox/OrxoBloxPrereqs.h"
-
-#include "worldentities/ControllableEntity.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        The OrxoBloxBat class manages the bats for @ref orxonox::OrxoBlox "OrxoBlox", which are the elements controlled by the players.
-
-        It is responsible for the movement (controlled by the players) of the bat.
-
-    @author
-        Fabian 'x3n' Landau
-
-    @ingroup OrxoBlox
-    */
-    class _OrxoBloxExport OrxoBloxBat : public ControllableEntity
-    {
-        public:
-            OrxoBloxBat(Context* context); //!< Constructor. Registers and initializes the object.
-            virtual ~OrxoBloxBat() {}
-
-            virtual void tick(float dt) override;
-
-            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
-            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
-
-            virtual void changedPlayer() override; //!< Is called when the player changed.
-
-            /**
-            @brief Set the speed of the bat.
-            @param speed The speed to be set.
-            */
-            void setSpeed(float speed)
-                { this->speed_ = speed; }
-            /**
-            @brief Get the speed of the bat.
-            @return Returns the speed of the bat.
-            */
-            float getSpeed() const
-                { return this->speed_; }
-
-            /**
-            @brief Set the height of the playing field.
-            @param height The height of the playing field.
-            */
-            void setFieldHeight(float height)
-                { this->fieldHeight_ = height; }
-            /**
-            @brief Get the height of the playing field.
-            @return Returns the height of the playing field.
-            */
-            float getFieldHeight() const
-                { return this->fieldHeight_; }
-
-            /**
-            @brief Set the length of the bat.
-            @param length The length of the bat (in z-direction) as percentage of the height of the playing field.
-            */
-            void setLength(float length)
-                { this->length_ = length; }
-            /**
-            @brief Get the length of the bat.
-            @return Returns the length of the bat (in z-direction) as percentage of the height of the playing field.
-            */
-            float getLength() const
-                { return this->length_; }
-
-        private:
-            void registerVariables(); //!< Registers variables to be synchronized over the network.
-
-            float movement_; //!< The amount (and direction), in z-direction, of movement of the bat.
-            bool bMoveLocal_; //!< Helper to know whether the movement is caused by moveFrontBack() or moveRightLeft().
-            float speed_; //!< The movement speed of the bat.
-            float length_; //!< The length of the bat (in z-direction) as percentage of the height of the playing field.
-            float fieldHeight_; //!< The height of the playing field.
-            bool bSteadiedPosition_; //!< Helper boolean, to keep track of when to steady the position, to ensure network synchronicity.
-    };
-}
-
-#endif /* _OrxoBloxBat_H__ */
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBot.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBot.cc	(revision 12260)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxBot.cc
-    @brief Implementation of the OrxoBloxBot class.
-*/
-
-#include "OrxoBloxBot.h"
-
-#include "core/CoreIncludes.h"
-#include "OrxoBloxAI.h"
-
-namespace orxonox
-{
-    RegisterClass(OrxoBloxBot);
-
-    /**
-    @brief
-        Constructor. Registers the object and creates a OrxoBloxAI controller.
-    */
-    OrxoBloxBot::OrxoBloxBot(Context* context) : Bot(context)
-    {
-        RegisterObject(OrxoBloxBot);
-
-        this->defaultController_ = Class(OrxoBloxAI);
-        this->createController();
-    }
-}
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBot.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBot.h	(revision 12260)
+++ 	(revision )
@@ -1,63 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxBot.h
-    @brief Declaration of the OrxoBloxBot class.
-    @ingroup OrxoBlox
-*/
-
-#ifndef _OrxoBloxBot_H__
-#define _OrxoBloxBot_H__
-
-#include "OrxoBlox/OrxoBloxPrereqs.h"
-#include "infos/Bot.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        A bot especially for @ref orxonox::OrxoBlox "OrxoBlox".
-
-        Uses the @ref orxonox::OrxoBloxAI "OrxoBloxAI".
-
-    @author
-        Fabian 'x3n' Landau
-
-    @ingroup OrxoBlox
-    */
-    class _OrxoBloxExport OrxoBloxBot : public Bot
-    {
-        public:
-            OrxoBloxBot(Context* context);
-            virtual ~OrxoBloxBot() {}
-    };
-}
-
-#endif /* _OrxoBloxBot_H__ */
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.cc	(revision 12260)
+++ 	(revision )
@@ -1,92 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxCenterpoint.cc
-    @brief Implementation of the OrxoBloxCenterpoint class.
-*/
-
-#include "OrxoBloxCenterpoint.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-
-#include "OrxoBlox.h"
-
-namespace orxonox
-{
-    RegisterClass(OrxoBloxCenterpoint);
-
-    /**
-    @brief
-        Constructor. Registers and initializes the object and checks whether the gametype is actually OrxoBlox.
-    */
-    OrxoBloxCenterpoint::OrxoBloxCenterpoint(Context* context) : StaticEntity(context)
-    {
-        RegisterObject(OrxoBloxCenterpoint);
-
-        this->width_ = 200;
-        this->height_ = 120;
-        this->ballspeed_ = 100;
-        this->ballaccfactor_ = 1.0;
-        this->batspeed_ = 60;
-        this->batlength_ = 0.25;
-
-        this->checkGametype();
-    }
-
-    /**
-    @brief
-        Method to create a OrxoBloxCenterpoint through XML.
-    */
-    void OrxoBloxCenterpoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(OrxoBloxCenterpoint, XMLPort, xmlelement, mode);
-
-        XMLPortParam(OrxoBloxCenterpoint, "dimension", setFieldDimension, getFieldDimension, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "balltemplate", setBalltemplate, getBalltemplate, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "battemplate", setBattemplate, getBattemplate, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "ballspeed", setBallSpeed, getBallSpeed, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "ballaccfactor", setBallAccelerationFactor, getBallAccelerationFactor, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "batspeed", setBatSpeed, getBatSpeed, xmlelement, mode);
-        XMLPortParam(OrxoBloxCenterpoint, "batlength", setBatLength, getBatLength, xmlelement, mode);
-    }
-
-    /**
-    @brief
-        Checks whether the gametype is OrxoBlox and if it is, sets its centerpoint.
-    */
-    void OrxoBloxCenterpoint::checkGametype()
-    {
-        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(OrxoBlox)))
-        {
-            OrxoBlox* OrxoBloxGametype = orxonox_cast<OrxoBlox*>(this->getGametype());
-            OrxoBloxGametype->setCenterpoint(this);
-        }
-    }
-}
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.h	(revision 12260)
+++ 	(revision )
@@ -1,235 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxCenterpoint.h
-    @brief Declaration of the OrxoBloxCenterpoint class.
-    @ingroup OrxoBlox
-*/
-
-#ifndef _OrxoBloxCenterpoint_H__
-#define _OrxoBloxCenterpoint_H__
-
-#include "OrxoBlox/OrxoBloxPrereqs.h"
-
-#include <string>
-
-#include <util/Math.h>
-
-#include "worldentities/StaticEntity.h"
-
-namespace orxonox
-{
-    
-    /**
-    @brief
-        The OrxoBloxCenterpoint implements the playing field @ref orxonox::OrxoBlox "OrxoBlox" takes place in and allows for many parameters of the minigame to be set.
-        The playing field resides in the x,z-plane, with the x-axis being the horizontal axis and the z-axis being the vertical axis.
-        
-        Various parameters can be set:
-        - The <b>dimension</b> is a vector, that defines the width and height of the playing field. The default is <em>(200, 120)</em>.
-        - The <b>balltemplate</b> is a template that is applied to the @ref orxonox::OrxoBloxBall "OrxoBloxBall", it can be used to attach different things to it, e.g. its @ref orxonox::Model "Model". See below for a usage example.
-        - The <b>battemplate</b> is a template that is applied to the @ref orxonox::OrxoBloxBall "OrxoBloxBat", it can be used to attach different things to it, e.g. its @ref orxonox::Model "Model". See below for a usage example.
-        - The <b>ballspeed</b> is the speed with which the @ref orxonox::OrxoBloxBall "OrxoBloxBall" moves. The default is <em>100</em>.
-        - The <b>ballaccfactor</b> is the acceleration factor for the @ref orxonox::OrxoBloxBall "OrxoBloxBall". The default is <em>1.0</em>.
-        - The <b>batspeed</b> is the speed with which the @ref orxonox::OrxoBloxBat "OrxoBloxBats" move. The default is <em>60</em>.
-        - The <b>batlength</b> is the length of the @ref orxonox::OrxoBloxBat "OrxoBloxBats" as the percentage of the height of the playing field. The default is <em>0.25</em>.
-        
-        An example in XML of the OrxoBloxCenterpoint would be:
-        
-        First the needed templates:
-        The template for the @ref orxonox::OrxoBloxBall "OrxoBloxBall".
-        @code
-        <Template name="OrxoBloxball">
-          <OrxoBloxBall>
-            <attached>
-              <Model mesh="sphere.mesh" scale="2" />
-              <ParticleSpawner name="hiteffect" position="0,0,0" source="Orxonox/sparks2" lifetime="0.01" autostart="0" mainstate="spawn" />
-            </attached>
-            <eventlisteners>
-              <EventTarget target="hiteffect" />
-            </eventlisteners>
-          </OrxoBloxBall>
-        </Template>
-        @endcode
-        As can be seen, a sphere is attached as the @ref orxonox::Model "Model" for the @ref orxonox::OrxoBloxBall "OrxoBloxBall", and also an @ref orxonox::EventListener "EventListener" that triggers a @ref orxonox::ParticleSpawner "ParticleSpawner", whenever the ball hits the boundaries is attached.
-        
-        Additionally the template for the @ref orxonox::OrxoBloxBat "OrxoBloxBat".
-        @code
-        <Template name="OrxoBloxbatcameras" defaults="0">
-          <OrxoBloxBat>
-            <camerapositions>
-              <CameraPosition position="0,200,0" pitch="-90" absolute="true" />
-            </camerapositions>
-          </OrxoBloxBat>
-        </Template>
-
-        <Template name="OrxoBloxbat">
-          <OrxoBloxBat camerapositiontemplate=OrxoBloxbatcameras>
-            <attached>
-              <Model position="0,0,3" mesh="cube.mesh" scale3D="14,2,2" />
-            </attached>
-          </OrxoBloxBat>
-        </Template>
-        @endcode
-        As can be seen, there are actually two templates. The first template is needed to set the camera for the @ref orxonox::OrxoBloxBat "OrxoBloxBat". The second template ist the actual template for the @ref orxonox::OrxoBloxBat "OrxoBloxBat", the template for the camera position is added and a @ref orxonox::Model "Model" for the @ref orxonox::OrxoBloxBat "OrxoBloxBat" is attached.
-        
-        Finally the OrxoBloxCenterpoint is created.
-        @code
-        <OrxoBloxCenterpoint name="OrxoBloxcenter" dimension="200,120" balltemplate="OrxoBloxball" battemplate="OrxoBloxbat" ballspeed="200" ballaccfactor="1.0" batspeed="130" batlength="0.25">
-          <attached>
-            <Model position="0,0,60" mesh="cube.mesh" scale3D="105,1,1" />
-            <Model position="0,0,-60" mesh="cube.mesh" scale3D="105,1,1" />
-          </attached>
-        </OrxoBloxCenterpoint>
-        @endcode
-        All parameters are specified. And also two @ref orxonox::Model "Models" (for the upper and lower boundary) are attached.
-        
-        For a more elaborate example, have a look at the <code>OrxoBlox.oxw</code> level file.
-    
-    @author
-        Fabian 'x3n' Landau
-        
-    @ingroup OrxoBlox
-    */
-    class _OrxoBloxExport OrxoBloxCenterpoint : public StaticEntity
-    {
-        public:
-            OrxoBloxCenterpoint(Context* context); //!< Constructor. Registers and initializes the object and checks whether the gametype is actually OrxoBlox.
-            virtual ~OrxoBloxCenterpoint() {}
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a OrxoBloxCenterpoint through XML.
-
-            /**
-            @brief Set the template for the ball. (e.g. to attach the model of the ball, but also to attach an EventListener to it to detect, when it hits the boundaries, and e.g. display some ParticleEffets, when it does.)
-            @param balltemplate The name of the template to be set.
-            */
-            void setBalltemplate(const std::string& balltemplate)
-                { this->balltemplate_ = balltemplate; }
-            /**
-            @brief Get the template of the ball.
-            @return Returns the name of the template of the ball. 
-            */
-            const std::string& getBalltemplate() const
-                { return this->balltemplate_; }
-
-            /**
-            @brief Set the template for the bats. (e.g. to attach the model of the bat, but also to attach CameraPositions to it, to be able to view the game from the bats perspective)
-            @param battemplate The name of the template to be set.
-            */
-            void setBattemplate(const std::string& battemplate)
-                { this->battemplate_ = battemplate; }
-            /**
-            @brief Get the template of the bats.
-            @return Returns the name of the template of the bats.
-            */
-            const std::string& getBattemplate() const
-                { return this->battemplate_; }
-
-            /**
-            @brief Set the dimensions of the playing field.
-            @param dimension A vector with the width of the playing field as first component and the height as second.
-            */
-            void setFieldDimension(const Vector2& dimension)
-                { this->width_ = dimension.x; this->height_ = dimension.y; }
-            /**
-            @brief Get the dimensions of the playing field.
-            @return Returns a vector with the width of the playing field as first component and the height as second.
-            */
-            Vector2 getFieldDimension() const
-                { return Vector2(this->width_, this->height_); }
-
-            /**
-            @brief Set the speed of the ball.
-            @param ballspeed The speed of the ball.
-            */
-            void setBallSpeed(float ballspeed)
-                { this->ballspeed_ = ballspeed; }
-            /**
-            @brief Get the speed of the ball.
-            @return Returns the speed of the ball.
-            */
-            float getBallSpeed() const
-                { return this->ballspeed_; }
-
-            /**
-            @brief Set the ball's acceleration factor.
-            @param ballaccfactor The ball's acceleration factor.
-            */
-            void setBallAccelerationFactor(float ballaccfactor)
-                { this->ballaccfactor_ = ballaccfactor; }
-            /**
-            @brief Get the ball's acceleration factor
-            @return Returns the ball's acceleration factor.
-            */
-            float getBallAccelerationFactor() const
-                { return this->ballaccfactor_; }
-
-            /**
-            @brief Set the speed of the bats.
-            @param batspeed The speed of the bats.
-            */
-            void setBatSpeed(float batspeed)
-                { this->batspeed_ = batspeed; }
-            /**
-            @brief Get the speed of the bats.
-            @return Returns the speed of the bats.
-            */
-            float getBatSpeed() const
-                { return this->batspeed_; }
-
-            /**
-            @brief Set the length of the bats.
-            @param batlength The length of the bats (in z-direction) as a percentage of the height of the playing field.
-            */
-            void setBatLength(float batlength)
-                { this->batlength_ = batlength; }
-            /**
-            @brief Get the length of the bats.
-            @return Returns the length of the bats (in z-direction) as a percentage of the height of the playing field.
-            */
-            float getBatLength() const
-                { return this->batlength_; }
-
-        private:
-            void checkGametype(); //!< Checks whether the gametype is OrxoBlox and if it is, sets its centerpoint.
-
-            std::string balltemplate_; //!< The template for the ball.
-            std::string battemplate_; //!< The template for the bats.
-
-            float ballspeed_; //!< The speed of then ball.
-            float ballaccfactor_; //!< The acceleration factor of the ball.
-            float batspeed_; //!< The speed of the bat.
-            float batlength_; //!< The length of the bat (in z-direction) as a percentage of the height of the playing field.
-
-            float width_; //!< The height of the playing field.
-            float height_; //!< The width of the playing field.
-    };
-}
-
-#endif /* _OrxoBloxCenterpoint_H__ */
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxScore.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxScore.cc	(revision 12260)
+++ 	(revision )
@@ -1,176 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxScore.cc
-    @brief Implementation of the OrxoBloxScore class.
-*/
-
-#include "OrxoBloxScore.h"
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Convert.h"
-
-#include "infos/PlayerInfo.h"
-
-#include "OrxoBlox.h"
-#include "sound/WorldSound.h" /////////////////////////////
-
-namespace orxonox
-{
-    RegisterClass(OrxoBloxScore);
-
-    /**
-    @brief
-        Constructor. Registers and initializes the object.
-    */
-    OrxoBloxScore::OrxoBloxScore(Context* context) : OverlayText(context)
-    {
-        RegisterObject(OrxoBloxScore);
-
-        this->owner_ = nullptr;
-
-        this->bShowName_ = false;
-        this->bShowScore_ = false;
-        this->bShowLeftPlayer_ = false;
-        this->bShowRightPlayer_ = false;
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    OrxoBloxScore::~OrxoBloxScore()
-    {
-    }
-
-    /**
-    @brief
-        Method to create a OrxoBloxScore through XML.
-    */
-    void OrxoBloxScore::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(OrxoBloxScore, XMLPort, xmlelement, mode);
-
-        XMLPortParam(OrxoBloxScore, "showname",        setShowName,        getShowName,        xmlelement, mode).defaultValues(false);
-        XMLPortParam(OrxoBloxScore, "showscore",       setShowScore,       getShowScore,       xmlelement, mode).defaultValues(false);
-        XMLPortParam(OrxoBloxScore, "showleftplayer",  setShowLeftPlayer,  getShowLeftPlayer,  xmlelement, mode).defaultValues(false);
-        XMLPortParam(OrxoBloxScore, "showrightplayer", setShowRightPlayer, getShowRightPlayer, xmlelement, mode).defaultValues(false);
-    }
-
-    /**
-    @brief
-        Is called each tick.
-        Creates and sets the caption to be displayed by the OrxoBloxScore.
-    @param dt
-        The time that has elapsed since the last tick.
-    */
-    void OrxoBloxScore::tick(float dt)
-    {
-        SUPER(OrxoBloxScore, tick, dt);
-
-        // If the owner is set. The owner being a OrxoBlox game.
-        if (this->owner_ != nullptr)
-        {
-            if (!this->owner_->hasEnded())
-            {
-                // Get the two players.
-                player1_ = this->owner_->getLeftPlayer();
-                player2_ = this->owner_->getRightPlayer();
-            }
-
-            std::string name1;
-            std::string name2;
-
-            std::string score1("0");
-            std::string score2("0");
-
-            // Save the name and score of each player as a string.
-            if (player1_ != nullptr)
-            {
-                name1 = player1_->getName();
-                score1 = multi_cast<std::string>(this->owner_->getScore(player1_));
-            }
-            if (player2_ != nullptr)
-            {
-                name2 = player2_->getName();
-                score2 = multi_cast<std::string>(this->owner_->getScore(player2_));
-            }
-
-            // Assemble the strings, depending on what should all be displayed.
-            std::string output1;
-            if (this->bShowLeftPlayer_)
-            {
-                if (this->bShowName_ && this->bShowScore_ && player1_ != nullptr)
-                    output1 = name1 + " - " + score1;
-                else if (this->bShowScore_)
-                    output1 = score1;
-                else if (this->bShowName_)
-                    output1 = name1;
-            }
-
-            std::string output2;
-            if (this->bShowRightPlayer_)
-            {
-                if (this->bShowName_ && this->bShowScore_ && player2_ != nullptr)
-                    output2 = score2 + " - " + name2;
-                else if (this->bShowScore_)
-                    output2 = score2;
-                else if (this->bShowName_)
-                    output2 = name2;
-            }
-
-            std::string output("OrxoBlox");
-            if (this->bShowName_ || this->bShowScore_)
-            {
-                if (this->bShowLeftPlayer_ && this->bShowRightPlayer_)
-                    output = output1 + ':' + output2;
-                else if (this->bShowLeftPlayer_ || this->bShowRightPlayer_)
-                    output = output1 + output2;
-            }
-
-            this->setCaption(output);
-        }
-    }
-
-    /**
-    @brief
-        Is called when the owner changes.
-        Sets the owner to nullptr, if it is not a pointer to a OrxoBlox game.
-    */
-    void OrxoBloxScore::changedOwner()
-    {
-        SUPER(OrxoBloxScore, changedOwner);
-
-        if (this->getOwner() != nullptr && this->getOwner()->getGametype())
-            this->owner_ = orxonox_cast<OrxoBlox*>(this->getOwner()->getGametype());
-        else
-            this->owner_ = nullptr;
-    }
-}
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxScore.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxScore.h	(revision 12260)
+++ 	(revision )
@@ -1,130 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-    @file OrxoBloxScore.h
-    @brief Declaration of the OrxoBloxScore class.
-    @ingroup OrxoBlox
-*/
-
-#ifndef _OrxoBloxScore_H__
-#define _OrxoBloxScore_H__
-
-#include "OrxoBlox/OrxoBloxPrereqs.h"
-
-#include "tools/interfaces/Tickable.h"
-
-#include "overlays/OverlayText.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        The OrxoBloxScore class displays the score for a game of @ref orxonox::OrxoBlox "OrxoBlox".
-
-    @author
-        Fabian 'x3n' Landau
-
-    @ingroup OrxoBlox
-    */
-    class _OrxoBloxExport OrxoBloxScore : public OverlayText, public Tickable
-    {
-        public:
-            OrxoBloxScore(Context* context);
-            virtual ~OrxoBloxScore();
-
-            virtual void tick(float dt) override; //!< Creates and sets the caption to be displayed by the OrxoBloxScore.
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
-            virtual void changedOwner() override; //!< Is called when the owner changes.
-
-            /**
-            @brief Set whether the OrxoBloxScore displays the players' names.
-            @param value If true the players' names are displayed.
-            */
-            inline void setShowName(bool value)
-                { this->bShowName_ = value; }
-            /**
-            @brief Get whether the OrxoBloxScore displays the players' names.
-            @return Returns true if the players' names are displayed, false otherwise.
-            */
-            inline bool getShowName() const
-                { return this->bShowName_; }
-
-            /**
-            @brief Set whether the OrxoBloxScore displays the players' scores.
-            @param value If true the players' scores are displayed.
-            */
-            inline void setShowScore(bool value)
-                { this->bShowScore_ = value; }
-            /**
-            @brief Get whether the OrxoBloxScore displays the players' scores.
-            @return Returns true if the players' scores are displayed, false otherwise.
-            */
-            inline bool getShowScore() const
-                { return this->bShowScore_; }
-
-            /**
-            @brief Set whether the OrxoBloxScore displays the left player.
-            @param value If true the left player is displayed.
-            */
-            inline void setShowLeftPlayer(bool value)
-                { this->bShowLeftPlayer_ = value; }
-            /**
-            @brief Get whether the OrxoBloxScore displays the left player.
-            @return Returns true if the left player is displayed, false otherwise.
-            */
-            inline bool getShowLeftPlayer() const
-                { return this->bShowLeftPlayer_; }
-
-            /**
-            @brief Set whether the OrxoBloxScore displays the right player.
-            @param value If true the right player is displayed.
-            */
-            inline void setShowRightPlayer(bool value)
-                { this->bShowRightPlayer_ = value; }
-            /**
-            @brief Get whether the OrxoBloxScore displays the right player.
-            @return Returns true if the right player is displayed, false otherwise.
-            */
-            inline bool getShowRightPlayer() const
-                { return this->bShowRightPlayer_; }
-
-        private:
-            OrxoBlox* owner_; //!< The OrxoBlox game that owns this OrxoBloxScore.
-            bool bShowName_; //!< Whether the names of the players are shown.
-            bool bShowScore_; //!< Whether the score of the players is shown.
-            bool bShowLeftPlayer_; //!< Whether the left player is shown.
-            bool bShowRightPlayer_; //!< Whether the right player is shown.
-            WeakPtr<PlayerInfo> player1_; //!< Store information about left player permanently.
-            WeakPtr<PlayerInfo> player2_; //!< Same for the right player. To end the game properly.
-            WorldSound* scoreSound_;
-
-    };
-}
-#endif /* _OrxoBloxScore_H__ */
Index: code/branches/OrxoBlox_FS19/src/modules/pong/Pong.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/pong/Pong.cc	(revision 12260)
+++ code/branches/OrxoBlox_FS19/src/modules/pong/Pong.cc	(revision 12264)
@@ -127,4 +127,5 @@
     void Pong::start()
     {
+        orxout() << "Hello" << endl;
         if (this->center_ != nullptr) // There needs to be a PongCenterpoint, i.e. the area the game takes place.
         {
