Index: code/branches/gui/src/orxonox/GraphicsEngine.cc
===================================================================
--- code/branches/gui/src/orxonox/GraphicsEngine.cc	(revision 1652)
+++ code/branches/gui/src/orxonox/GraphicsEngine.cc	(revision 1653)
@@ -64,4 +64,6 @@
 namespace orxonox
 {
+    SetConsoleCommand(GraphicsEngine, printScreen, true).setKeybindMode(KeybindMode::OnPress);
+
     GraphicsEngine* GraphicsEngine::singletonRef_s = 0;
 
@@ -72,5 +74,5 @@
         The only instance of GraphicsEngine.
     */
-    /*static*/ GraphicsEngine& GraphicsEngine::getSingleton()
+    /*static*/ GraphicsEngine& GraphicsEngine::getInstance()
     {
         assert(singletonRef_s);
@@ -128,7 +130,4 @@
         if (this->root_)
             delete this->root_;
-        this->root_ = 0;
-        this->levelSceneManager_ = 0;
-        this->renderWindow_ = 0;
 
 #if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
@@ -154,5 +153,5 @@
         CCOUT(3) << "Setting up..." << std::endl;
 
-        // TODO: LogManager doesn't work on linux platform. The why is yet unknown.
+        // TODO: LogManager doesn't work on oli platform. The why is yet unknown.
 #if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
         // create a new logManager
@@ -193,11 +192,12 @@
         root_ = new Ogre::Root(ogrePluginsFile_, ogreConfigFile_, ogreLogFile_);
 
-        if (!root_->getInstalledPlugins().size())
-        {
-            ThrowException(PluginsNotFound, "No Ogre plugins declared. Cannot load Ogre.");
-        }
-
-#if 0 // Ogre 1.4.3 doesn't support setDebugOutputEnabled(.)
-//#if ORXONOX_PLATFORM != ORXONOX_PLATFORM_WIN32
+        // We don't need plugins for the dedicated..
+        //if (!root_->getInstalledPlugins().size() > 0)
+        //{
+        //    ThrowException(PluginsNotFound, "No Ogre plugins declared. Cannot load Ogre.");
+        //}
+
+#if 0 // Ogre 1.4.3 doesn't yet support setDebugOutputEnabled(.)
+#if ORXONOX_PLATFORM != ORXONOX_PLATFORM_WIN32
         // tame the ogre ouput so we don't get all the mess in the console
         Ogre::Log* defaultLog = Ogre::LogManager::getSingleton().getDefaultLog();
@@ -206,4 +206,5 @@
         defaultLog->addListener(this);
 #endif
+#endif
 
         CCOUT(4) << "Creating Ogre Root done" << std::endl;
@@ -233,7 +234,7 @@
             cf.load(Settings::getDataPath() + resourceFile_);
         }
-        catch (Ogre::Exception& ex)
-        {
-            COUT(1) << ex.getFullDescription() << std::endl;
+        catch (...)
+        {
+            //COUT(1) << ex.getFullDescription() << std::endl;
             COUT(0) << "Have you forgotten to set the data path in orxnox.ini?" << std::endl;
             throw;
@@ -300,5 +301,5 @@
     }
 
-    bool GraphicsEngine::initialiseResources()
+    void GraphicsEngine::initialiseResources()
     {
         CCOUT(4) << "Initialising resources" << std::endl;
@@ -313,11 +314,9 @@
             }*/
         }
-        catch (Ogre::Exception& e)
-        {
-            CCOUT(2) << "Error: There was an Error when initialising the resources." << std::endl;
-            CCOUT(2) << "ErrorMessage: " << e.getFullDescription() << std::endl;
-            return false;
-        }
-        return true;
+        catch (...)
+        {
+            CCOUT(2) << "Error: There was a serious error when initialising the resources." << std::endl;
+            throw;
+        }
     }
 
@@ -326,5 +325,5 @@
         Creates the SceneManager
     */
-    bool GraphicsEngine::createNewScene()
+    void GraphicsEngine::createNewScene()
     {
         CCOUT(4) << "Creating new SceneManager..." << std::endl;
@@ -332,9 +331,7 @@
         {
             CCOUT(2) << "SceneManager already exists! Skipping." << std::endl;
-            return false;
         }
         this->levelSceneManager_ = this->root_->createSceneManager(Ogre::ST_GENERIC, "LevelSceneManager");
-        CCOUT(3) << "Created SceneManager: " << levelSceneManager_ << std::endl;
-        return true;
+        CCOUT(3) << "Created SceneManager: " << levelSceneManager_->getName() << std::endl;
     }
 
@@ -487,3 +484,11 @@
     }
 
+
+    /*static*/ void GraphicsEngine::printScreen()
+    {
+        if (getInstance().renderWindow_)
+        {
+            getInstance().renderWindow_->writeContentsToTimestampedFile("shot_", ".jpg");
+        }
+    }
 }
