Index: code/branches/presentation3/data/levels/test_stars.oxw
===================================================================
--- code/branches/presentation3/data/levels/test_stars.oxw	(revision 6994)
+++ code/branches/presentation3/data/levels/test_stars.oxw	(revision 6994)
@@ -0,0 +1,43 @@
+<?lua
+  include("stats.oxo")
+  include("hudtemplates3.oxo")
+?>
+
+<?lua
+  include("templates/spaceship_assff.oxt")
+  include("templates/spaceship_pirate.oxt")
+?>
+
+<Level
+ name         = "Sample"
+ description  = "Just a few tests"
+>
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+  >
+
+<!--Rocket position="-10, 3.5,800" velocity="0,0,-100">
+      <attached>
+        <Model pitch=180 position="0,0,0" scale=1.5 mesh="rocket_test.mesh" >
+	  <attached>
+           <ParticleEmitter pitch=0 roll=0 position="0,5,0" source="Orxonox/laser" lifetime=2.0 loop=1 startdelay=3.0/>
+           <ParticleEmitter pitch=-90 roll=0 position="0,-5,0" source="Orxonox/particlecanon" lifetime=2.0 loop=1 startdelay=3.0/>
+           <ParticleEmitter pitch=-90 roll=0 position="0,0,-2" source="Orxonox/rocketfire" lifetime=2.0 loop=1 startdelay=3.0 />
+	   <ParticleEmitter pitch=-90 roll=0 position="0,0,-2" source="Orxonox/smoke" lifetime=2.0 loop=1 startdelay=3.0 />
+          </attached>
+	  </Model>
+	</attached>
+    </Rocket-->
+    
+    <CreateStars numStars="6000" material="Examples/Flare" colour="1,1,1" radius=10000 colourDiff=0.1/>
+
+    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+    <SpawnPoint position="0,0,100" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
+
+    <ParticleEmitter position="0,10000,0" source="Orxonox/fog" />
+    <ParticleEmitter position="6000,7000,0" source="Orxonox/fog2" />
+    <ParticleEmitter position="-6000,-7000,0" source="Orxonox/fog3" />
+    <ParticleEmitter position="-6000,0,9000" source="Orxonox/fog4" />
+    <ParticleEmitter position="2000,-7000,-5963" source="Orxonox/fog3" />
+  </Scene>
+</Level>
Index: code/branches/presentation3/data/particle/fog.particle
===================================================================
--- code/branches/presentation3/data/particle/fog.particle	(revision 6994)
+++ code/branches/presentation3/data/particle/fog.particle	(revision 6994)
@@ -0,0 +1,241 @@
+
+particle_system Orxonox/fog
+{
+	quota	1000
+	material	PE/smoke4
+	particle_width	2000
+	particle_height	1500
+	cull_each	false
+	renderer	billboard
+	sorted	false
+	local_space	false
+	iteration_interval	0
+	nonvisible_update_timeout	0
+	billboard_type	point
+	billboard_origin	center
+	billboard_rotation_type	vertex
+	common_up_vector	0 1 0
+	point_rendering	false
+	accurate_facing	false
+
+	emitter Ellipsoid
+	{
+		angle	180
+		colour	0.3 0.3 0.3 0.25
+		colour_range_start	0.3 0.3 0.3 0.1
+		colour_range_end	0.3 0.3 0.3 0.25
+		direction	0 1 0
+		emission_rate	16
+		position	0 0 0
+		velocity	2
+		velocity_min	2
+		velocity_max	2
+		time_to_live	100000
+		time_to_live_min	100000
+		time_to_live_max	100000
+		duration	5
+		duration_min	4
+		duration_max	7
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	6000
+		height	1800
+		depth	100
+	}
+
+	affector Scaler
+	{
+		rate	3
+	}
+
+    affector Rotator
+    {
+        rotation_range_start 0
+        rotation_range_end 360
+        rotation_speed_range_start 0
+        rotation_speed_range_end 0
+    }
+
+}
+
+
+particle_system Orxonox/fog2
+{
+	quota	1000
+	material	PE/smoke4
+	particle_width	2000
+	particle_height	1500
+	cull_each	false
+	renderer	billboard
+	sorted	false
+	local_space	false
+	iteration_interval	0
+	nonvisible_update_timeout	0
+	billboard_type	point
+	billboard_origin	center
+	billboard_rotation_type	vertex
+	common_up_vector	0 1 0
+	point_rendering	false
+	accurate_facing	false
+
+	emitter Ellipsoid
+	{
+		angle	180
+		colour	0.3 0.3 0.3 0.3
+		colour_range_start	0.3 0.3 0.3 0.1
+		colour_range_end	0.3 0.3 0.3 0.3
+		direction	0 1 0
+		emission_rate	16
+		position	0 0 0
+		velocity	2
+		velocity_min	2
+		velocity_max	2
+		time_to_live	100000
+		time_to_live_min	100000
+		time_to_live_max	100000
+		duration	5
+		duration_min	4
+		duration_max	7
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	10000
+		height	4000
+		depth	100
+	}
+
+	affector Scaler
+	{
+		rate	3
+	}
+
+    affector Rotator
+    {
+        rotation_range_start 0
+        rotation_range_end 360
+        rotation_speed_range_start 0
+        rotation_speed_range_end 0
+    }
+
+}
+
+particle_system Orxonox/fog3
+{
+	quota	1000
+	material	PE/smoke4
+	particle_width	2000
+	particle_height	1500
+	cull_each	false
+	renderer	billboard
+	sorted	false
+	local_space	false
+	iteration_interval	0
+	nonvisible_update_timeout	0
+	billboard_type	point
+	billboard_origin	center
+	billboard_rotation_type	vertex
+	common_up_vector	0 1 0
+	point_rendering	false
+	accurate_facing	false
+
+	emitter Ellipsoid
+	{
+		angle	180
+		colour	0.3 0.3 0.3 0.3
+		colour_range_start	0.3 0.3 0.3 0.1
+		colour_range_end	0.3 0.3 0.3 0.25
+		direction	0 1 0
+		emission_rate	22
+		position	0 0 0
+		velocity	2
+		velocity_min	2
+		velocity_max	2
+		time_to_live	100000
+		time_to_live_min	100000
+		time_to_live_max	100000
+		duration	5
+		duration_min	4
+		duration_max	7
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	8000
+		height	10000
+		depth	6000
+	}
+
+	affector Scaler
+	{
+		rate	3
+	}
+
+    affector Rotator
+    {
+        rotation_range_start 0
+        rotation_range_end 360
+        rotation_speed_range_start 0
+        rotation_speed_range_end 0
+    }
+
+}
+
+particle_system Orxonox/fog4
+{
+	quota	1000
+	material	PE/smoke4
+	particle_width	2000
+	particle_height	1500
+	cull_each	false
+	renderer	billboard
+	sorted	false
+	local_space	false
+	iteration_interval	0
+	nonvisible_update_timeout	0
+	billboard_type	point
+	billboard_origin	center
+	billboard_rotation_type	vertex
+	common_up_vector	0 1 0
+	point_rendering	false
+	accurate_facing	false
+
+	emitter Ellipsoid
+	{
+		angle	180
+		colour	0.3 0.3 0.3 0.3
+		colour_range_start	0.3 0.3 0.3 0.1
+		colour_range_end	0.3 0.3 0.3 0.25
+		direction	0 1 0
+		emission_rate	22
+		position	0 0 0
+		velocity	2
+		velocity_min	2
+		velocity_max	2
+		time_to_live	100000
+		time_to_live_min	100000
+		time_to_live_max	100000
+		duration	5
+		duration_min	4
+		duration_max	7
+		repeat_delay	0
+		repeat_delay_min	0
+		repeat_delay_max	0
+		width	10000
+		height	10000
+		depth	10000
+	}
+
+	affector Scaler
+	{
+		rate	3
+	}
+
+    affector Rotator
+    {
+        rotation_range_start 0
+        rotation_range_end 360
+        rotation_speed_range_start 0
+        rotation_speed_range_end 0
+    }
+
+}
Index: code/branches/presentation3/src/libraries/core/Core.cc
===================================================================
--- code/branches/presentation3/src/libraries/core/Core.cc	(revision 6991)
+++ code/branches/presentation3/src/libraries/core/Core.cc	(revision 6994)
@@ -79,4 +79,5 @@
     SetCommandLineArgument(settingsFile, "orxonox.ini").information("THE configuration file");
     SetCommandLineSwitch(noIOConsole).information("Use this if you don't want to use the IOConsole (for instance for Lua debugging)");
+
 #ifdef ORXONOX_PLATFORM_WINDOWS
     SetCommandLineArgument(limitToCPU, 1).information("Limits the program to one CPU/core (1, 2, 3, etc.). Default is the first core (faster than off)");
Index: code/branches/presentation3/src/modules/CMakeLists.txt
===================================================================
--- code/branches/presentation3/src/modules/CMakeLists.txt	(revision 6991)
+++ code/branches/presentation3/src/modules/CMakeLists.txt	(revision 6994)
@@ -33,2 +33,3 @@
 ADD_SUBDIRECTORY(questsystem)
 ADD_SUBDIRECTORY(weapons)
+ADD_SUBDIRECTORY(designtools)
Index: code/branches/presentation3/src/modules/designtools/CMakeLists.txt
===================================================================
--- code/branches/presentation3/src/modules/designtools/CMakeLists.txt	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/CMakeLists.txt	(revision 6994)
@@ -0,0 +1,14 @@
+SET_SOURCE_FILES(DESIGNTOOLS_SRC_FILES
+  SkyboxGenerator.cc
+  CreateStars.cc
+)
+
+ORXONOX_ADD_LIBRARY(designtools
+  MODULE
+  FIND_HEADER_FILES
+  DEFINE_SYMBOL
+    "DESIGNTOOLS_SHARED_BUILD"
+  LINK_LIBRARIES
+    orxonox
+  SOURCE_FILES ${DESIGNTOOLS_SRC_FILES}
+)
Index: code/branches/presentation3/src/modules/designtools/CreateStars.cc
===================================================================
--- code/branches/presentation3/src/modules/designtools/CreateStars.cc	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/CreateStars.cc	(revision 6994)
@@ -0,0 +1,133 @@
+/*
+ *   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:
+ *      Gion-Andri Cantieni
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "CreateStars.h"
+
+#include "core/ConsoleCommand.h"
+#include "core/CoreIncludes.h"
+#include "core/ConfigValueIncludes.h"
+#include "core/ScopedSingletonManager.h"
+#include "core/BaseObject.h"
+
+
+#include "core/XMLPort.h"
+
+#include "graphics/Billboard.h"
+
+#include <OgreVector3.h>
+#include <math.h>
+ 
+namespace orxonox
+{
+
+    CreateFactory(CreateStars);
+
+    CreateStars::CreateStars(BaseObject* creator) : BaseObject(creator)
+
+    {
+        RegisterObject(CreateStars);
+        this->material_ = "Examples/Flare";
+        this->alpha_ = 0.7;
+        this->alphaDiff_ = 0.5;
+        this->radiusDiff_ = 0.9;
+        this->colour_.r = 1;
+        this->colour_.g = 1;
+        this->colour_.b = 1;
+        this->colourDiff_ = 0.1;
+    }
+
+    CreateStars::~CreateStars()
+    {
+        while( billboards_.size()!=0 ) 
+        {
+            delete(billboards_.back());
+            billboards_.pop_back();
+
+        }
+
+        billboards_.clear();
+    }
+
+    void CreateStars::createBillboards()
+    {
+
+        for(int i=0; i < numStars_; i++) 
+        {
+            Billboard* bb = new Billboard(this);
+
+            float r = rnd(-colourDiff_,colourDiff_);
+            float g = rnd(-colourDiff_,colourDiff_);
+            float b = rnd(-colourDiff_,colourDiff_);
+            orxonox::ColourValue thisColour = colour_;
+            float alpha = alpha_+rnd(-alphaDiff_,alphaDiff_);
+            thisColour.r=clamp((thisColour.r+r)*alpha, 0.0f, 1.0f);
+            thisColour.g=clamp((thisColour.g+g)*alpha, 0.0f, 1.0f);
+            thisColour.b=clamp((thisColour.b+b)*alpha, 0.0f, 1.0f);
+
+            bb->setMaterial(material_);
+            bb->setColour(thisColour);
+
+            float phi;
+            float teta;
+
+            while(1) 
+            {
+                phi = rnd(2*M_PI);
+                teta = rnd(M_PI);
+                float random = rnd(1);
+                if(sin(teta)>random) break;
+            }
+            float radius = rnd(radiusDiff_,1)*radius_;
+            bb->setPosition( PolarToCartesian(phi, teta, radius) );
+            billboards_.push_back(bb);
+        }
+    }
+
+    Vector3 CreateStars::PolarToCartesian(float phi, float teta, float radius) 
+    {
+        float x = radius * cos(phi) * sin(teta);
+        float y = radius * sin(phi) * sin(teta);
+        float z = radius * cos(teta);
+        return Vector3(x,y,z);
+    }
+
+    void CreateStars::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(CreateStars, XMLPort, xmlelement, mode);
+
+        XMLPortParam(CreateStars, "numStars", setNumStars, getNumStars, xmlelement, mode);
+        XMLPortParam(CreateStars, "material", setMaterial, getMaterial, xmlelement, mode);
+        XMLPortParam(CreateStars, "colour", setColour, getColour, xmlelement, mode);
+        XMLPortParam(CreateStars, "alpha", setAlpha, getAlpha, xmlelement, mode);
+        XMLPortParam(CreateStars, "colourDiff", setColourDiff, getColourDiff, xmlelement, mode);
+        XMLPortParam(CreateStars, "alphaDiff", setAlphaDiff, getAlphaDiff, xmlelement, mode);
+        XMLPortParam(CreateStars, "radiusDiff", setRadiusDiff, getRadiusDiff, xmlelement, mode);
+        XMLPortParam(CreateStars, "radius", setRadius, getRadius, xmlelement, mode);
+	}
+
+}
Index: code/branches/presentation3/src/modules/designtools/CreateStars.h
===================================================================
--- code/branches/presentation3/src/modules/designtools/CreateStars.h	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/CreateStars.h	(revision 6994)
@@ -0,0 +1,126 @@
+/*
+ *   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:
+ *      Gion-Andri Cantieni
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+
+#include "core/BaseObject.h"
+
+#include "graphics/Billboard.h"
+
+ 
+namespace orxonox
+{
+    class CreateStars : public BaseObject
+    {
+        public:
+            CreateStars(orxonox::BaseObject* creator);
+            virtual ~CreateStars();
+
+            void createBillboards();
+
+            void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+            void setNumStars(int num) {
+                this->numStars_ = num;
+            }
+
+            int getNumStars(){
+                return this->numStars_;
+            }
+
+            void setMaterial(const std::string& material) {
+                this->material_ = material;
+            }
+
+            std::string& getMaterial(){
+                return this->material_;
+            }
+
+            void setColour(const orxonox::ColourValue& colour) { 
+                this->colour_ = colour;
+            }
+
+            ColourValue& getColour() { 
+                return this->colour_;
+            }
+
+            void setAlpha(float alpha) {
+                this->alpha_ = alpha;
+            }
+
+            float getAlpha() {
+                return this->alpha_;
+            }
+
+            void setColourDiff(float colourDiff) {
+                this->colourDiff_ = colourDiff;
+            }
+
+            float getColourDiff() {
+                return this->colourDiff_;
+            }
+
+            void setAlphaDiff(float alphaDiff) {
+                this->alphaDiff_ = alphaDiff;
+            }
+
+            float getAlphaDiff() {
+                return this->alphaDiff_;
+            }
+
+            void setRadiusDiff(float radiusDiff) {
+                this->radiusDiff_ = radiusDiff;
+            }
+
+            float getRadiusDiff() {
+                return this->radiusDiff_;
+            }
+
+            void setRadius(unsigned int dist) {
+                this->radius_ = dist;
+                this->createBillboards();
+            }
+
+            unsigned int getRadius(){
+                return this->radius_;
+            }
+            
+            Vector3 PolarToCartesian(float alpha, float beta, float radius);
+
+        private:
+            int numStars_;
+            std::string material_;
+            orxonox::ColourValue colour_;
+            std::vector<Billboard*> billboards_;
+            float radius_;
+            float alpha_;
+            float colourDiff_; 
+            float alphaDiff_;
+            float radiusDiff_;
+            
+    };
+}
Index: code/branches/presentation3/src/modules/designtools/DesignToolsPrereqs.h
===================================================================
--- code/branches/presentation3/src/modules/designtools/DesignToolsPrereqs.h	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/DesignToolsPrereqs.h	(revision 6994)
@@ -0,0 +1,69 @@
+/*
+ *   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:
+ *      Oliver Scheuss
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the pong module
+*/
+
+#ifndef _DesignToolsPrereqs_H__
+#define _DesignToolsPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(ORXONOX_STATIC_BUILD)
+#  ifdef DESIGNTOOLS_SHARED_BUILD
+#    define _DesignToolsExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _DesignToolsExport
+#    else
+#      define _DesignToolsExport __declspec(dllimport)
+#    endif
+#  endif
+#elif defined ( ORXONOX_GCC_VISIBILITY )
+#  define _DesignToolsExport  __attribute__ ((visibility("default")))
+#else
+#  define _DesignToolsExport
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+}
+
+#endif /* _DesignToolsPrereqs_H__ */
Index: code/branches/presentation3/src/modules/designtools/SkyboxGenerator.cc
===================================================================
--- code/branches/presentation3/src/modules/designtools/SkyboxGenerator.cc	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/SkyboxGenerator.cc	(revision 6994)
@@ -0,0 +1,159 @@
+/*
+ *   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:
+ *      Gion-Andri Cantieni
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "SkyboxGenerator.h"
+
+#include <string>
+#include <cassert>
+#include <OgreRenderWindow.h>
+#include <OgreCamera.h>
+
+#include "core/ConsoleCommand.h"
+#include "core/CoreIncludes.h"
+#include "core/ConfigValueIncludes.h"
+#include "core/ScopedSingletonManager.h"
+#include "controllers/HumanController.h"
+#include "worldentities/CameraPosition.h"
+#include "worldentities/ControllableEntity.h"
+#include "core/GraphicsManager.h"
+#include "core/CommandExecutor.h"
+#include "graphics/Camera.h"
+
+
+ 
+namespace orxonox
+{
+
+    SetConsoleCommand(SkyboxGenerator, createSkybox, true);
+
+    ManageScopedSingleton(SkyboxGenerator, ScopeID::Graphics, false);
+
+    SkyboxGenerator::SkyboxGenerator() : iterateOverDirections_(0)
+    {
+        RegisterRootObject(SkyboxGenerator);
+
+        this->setConfigValues();
+        takeScreenshot_ = false;
+        this->captionsRemoved_ = false;
+    }
+
+    SkyboxGenerator::~SkyboxGenerator()
+    {
+
+    }
+
+    void SkyboxGenerator::setConfigValues( ) 
+    {
+        SetConfigValue(skyboxPrefix_, "SkyboxFile_");
+    }
+
+    void SkyboxGenerator::tick(float dt)
+    {
+        if( takeScreenshot_ == true )
+        {
+            if(!this->captionsRemoved_)
+            {
+                CommandExecutor::execute("setGametypeStatus false");
+                this->captionsRemoved_ = true;
+                return;
+            }
+            
+            ControllableEntity* ce = HumanController::getLocalControllerSingleton()->getControllableEntity();
+            Camera* camera = ce->getCamera();
+            assert(ce);
+        
+            Ogre::RenderWindow* w = GraphicsManager::getInstance().getRenderWindow();
+
+
+            switch (iterateOverDirections_) 
+            {
+            case 0 :
+                fovy_ = camera->getOgreCamera()->getFOVy();
+                camera->getOgreCamera()->setFOVy(Degree(90));
+                aspectRatio_ = camera->getOgreCamera()->getAspectRatio();
+                camera->getOgreCamera()->setAspectRatio(1);
+                iterateOverDirections_++;
+                break;
+            case 1 :
+                w->writeContentsToFile(skyboxPrefix_+"fr.png");
+                ce->yaw(Degree(90));
+                iterateOverDirections_++;
+                break;
+                
+            case 2 :
+                w->writeContentsToFile(skyboxPrefix_+"lf.png");
+                ce->yaw(Degree(90)); 
+                iterateOverDirections_++;
+                break;
+
+            case 3 :
+                w->writeContentsToFile(skyboxPrefix_+"bk.png");
+                ce->yaw(Degree(90)); 
+                iterateOverDirections_++;
+                break;
+
+            case 4 :
+                w->writeContentsToFile(skyboxPrefix_+"rt.png");
+                ce->yaw(Degree(90)); 
+                ce->pitch(Degree(90)); 
+                iterateOverDirections_++;
+                break;
+
+            case 5 :
+                w->writeContentsToFile(skyboxPrefix_+"up.png");
+                ce->pitch(Degree(180)); 
+                iterateOverDirections_++;
+                break;
+
+            case 6 :
+                w->writeContentsToFile(skyboxPrefix_+"dn.png");
+                ce->pitch(Degree(90));
+                iterateOverDirections_++;
+                break;
+                
+            case 7 :
+                camera->getOgreCamera()->setAspectRatio(aspectRatio_);
+                camera->getOgreCamera()->setFOVy(fovy_);
+                iterateOverDirections_++;
+            case 8 :
+                iterateOverDirections_ =0;
+                takeScreenshot_ = false;
+                CommandExecutor::execute("pause");
+                CommandExecutor::execute("setGametypeStatus true");
+                this->captionsRemoved_ = false;
+            }
+
+        }
+    }
+	
+	void SkyboxGenerator::createSkybox( ) 
+	{
+        SkyboxGenerator::getInstance().takeScreenshot_ = true;
+        CommandExecutor::execute("pause");
+	}
+}
Index: code/branches/presentation3/src/modules/designtools/SkyboxGenerator.h
===================================================================
--- code/branches/presentation3/src/modules/designtools/SkyboxGenerator.h	(revision 6994)
+++ code/branches/presentation3/src/modules/designtools/SkyboxGenerator.h	(revision 6994)
@@ -0,0 +1,58 @@
+/*
+ *   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:
+ *      Gion-Andri Cantieni
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+
+#include "core/OrxonoxClass.h"
+#include "util/Singleton.h"
+#include "tools/interfaces/Tickable.h"
+#include <OgreMath.h>
+ 
+ 
+namespace orxonox
+{
+    class SkyboxGenerator : public virtual OrxonoxClass, public Singleton<SkyboxGenerator>, public Tickable
+    {
+        friend class Singleton<SkyboxGenerator>;
+    
+        public:
+            SkyboxGenerator();
+            virtual ~SkyboxGenerator();
+            static void createSkybox( );
+            void setConfigValues( );
+            void tick(float dt);
+
+        private:
+            static SkyboxGenerator* singletonPtr_s;
+            std::string skyboxPrefix_; 
+            bool takeScreenshot_;
+            int iterateOverDirections_;
+            float aspectRatio_;
+            Ogre::Radian fovy_;
+            bool captionsRemoved_;
+    };
+}
Index: code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.cc
===================================================================
--- code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.cc	(revision 6991)
+++ code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.cc	(revision 6994)
@@ -30,4 +30,5 @@
 
 #include "util/Convert.h"
+#include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
 #include "infos/GametypeInfo.h"
@@ -38,5 +39,8 @@
 namespace orxonox
 {
-    CreateFactory(GametypeStatus);
+    CreateFactory(GametypeStatus);  
+
+    /*static*/ bool GametypeStatus::noCaption_s = false; 
+    SetConsoleCommand(GametypeStatus, setGametypeStatus, true);
 
     GametypeStatus::GametypeStatus(BaseObject* creator) : OverlayText(creator)
@@ -59,4 +63,10 @@
             const GametypeInfo* gtinfo = this->owner_->getGametypeInfo();
             ControllableEntity* ce = this->owner_->getControllableEntity();
+
+            if(GametypeStatus::noCaption_s) // No captions are displayed.
+            {
+                this->setCaption("");
+                return;
+            }
 
             if (!gtinfo->hasStarted() && !gtinfo->isStartCountdownRunning())
@@ -88,3 +98,15 @@
         this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
     }
+
+    /**
+    @brief
+        Sets whether the gametype status is displayed.
+    @param bValue
+        If true captions are displayed, if false, not.
+    */
+    /*static*/ void GametypeStatus::setGametypeStatus(bool bValue)
+    {
+        GametypeStatus::noCaption_s = !bValue;
+    }
+    
 }
Index: code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.h
===================================================================
--- code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.h	(revision 6991)
+++ code/branches/presentation3/src/modules/overlays/hud/GametypeStatus.h	(revision 6994)
@@ -46,6 +46,10 @@
             virtual void changedOwner();
 
+            static void setGametypeStatus(bool bValue); //!< Toggles whether the gametype status is displayed.
+
         private:
             PlayerInfo* owner_;
+            static bool noCaption_s;
+            
     };
 }
Index: code/branches/presentation3/src/orxonox/worldentities/ControllableEntity.h
===================================================================
--- code/branches/presentation3/src/orxonox/worldentities/ControllableEntity.h	(revision 6991)
+++ code/branches/presentation3/src/orxonox/worldentities/ControllableEntity.h	(revision 6994)
@@ -137,4 +137,6 @@
             inline float getMouseLookSpeed() const
                 { return this->mouseLookSpeed_; }
+            inline CameraPosition* getCurrentCameraPosition()
+                { return this->currentCameraPosition_; }
 
             inline Controller* getXMLController() const
