Index: code/branches/HUD_HS16/data/gui/layouts/CampaignMenu.layout
===================================================================
--- code/branches/HUD_HS16/data/gui/layouts/CampaignMenu.layout	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/layouts/CampaignMenu.layout	(revision 11502)
@@ -8,81 +8,161 @@
         <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1.0,0},{1.0,0}}" />
         <Property Name="BackgroundEnabled" Value="False" />
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission1Button" >
+
+        <!-- Misson 1************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission1Text" >
             <Property Name="Text" Value="Mission One" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.1,0},{0.65,0},{0.15,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.6,0},{0.3,0},{0.65,0}}" />
             <Event Name="Clicked" Function="CampaignMenu.Mission1Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission2Button" >
+
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission1Button" >
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.75,0},{0.25,0},{0.95,0}}" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission1Button_clicked"/>
+        </Window>
+
+        <!-- Misson 2************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission2Text" >
             <Property Name="Text" Value="Fight in our Back" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.18,0},{0.65,0},{0.23,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.6,0},{0.55,0},{0.65,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission2Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission3Button" >
+
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission2Button" >
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.7,0},{0.5,0},{0.85,0}}" />
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission2Button_clicked"/>
+        </Window>
+
+        <!-- Misson 3************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission3Text" >
             <Property Name="Text" Value="Pirate Attack" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.26,0},{0.65,0},{0.31,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.6,0},{0.75,0},{0.8,0},{0.8,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission3Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission4Button" >
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission3Button" >
+
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.685,0},{0.605,0},{0.75,0},{0.71,0}}" />
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission3Button_clicked"/>
+        </Window>
+
+        <!-- Misson 4************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission4Text" >
             <Property Name="Text" Value="Trip to Area 51" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.34,0},{0.65,0},{0.39,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.575,0},{0.5,0},{0.775,0},{0.55,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission4Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission5Button" >
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission4Button" >
+
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.78,0},{0.48,0},{0.87,0},{0.59,0}}" />
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission4Button_clicked"/>
+        </Window>
+
+        <!-- Misson 5************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission5Text" >
             <Property Name="Text" Value="Area 51 under Fire" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.42,0},{0.65,0},{0.47,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.625,0},{0.4,0},{0.825,0},{0.45,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission5Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission6Button" >
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission5Button" >
+
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.725,0},{0.27,0},{0.775,0},{0.37,0}}" />
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission5Button_clicked"/>
+        </Window>
+
+        <!-- Misson 6************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission6Text" >
             <Property Name="Text" Value="Escape the Bastards" />
             <Property Name="Visible" Value="False"/>
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.50,0},{0.65,0},{0.55,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.525,0},{0.1,0},{0.725,0},{0.15,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission6Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission7Button" >
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission6Button" >
+
+            <Property Name="Visible" Value="False"/>
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.6,0},{0.17,0},{0.65,0},{0.27,0}}" />
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission6Button_clicked"/>
+        </Window>
+
+        <!-- Misson 7************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission7Text" >
             <Property Name="Text" Value="Expedition to Sector 5C" />
             <Property Name="Visible" Value="False"/>
+            <Property Name="Disabled" Value="True" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission7Button_clicked"/>
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.025,0},{0.6,0},{0.075,0}}" />
+        </Window>
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission7Button" >
+
+            <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.58,0},{0.65,0},{0.63,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.47,0},{0.13,0},{0.525,0},{0.23,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission7Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission8Button" >
+
+        <!-- Misson 8************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission8Text" >
             <Property Name="Text" Value="Shuttle under Attack" />
             <Property Name="Visible" Value="False"/>
+            <Property Name="Disabled" Value="True" />
+            <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2,0},{0.45,0},{0.25,0}}" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission8Button_clicked"/>
+        </Window>
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission8Button" >
+
+            <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.66,0},{0.65,0},{0.71,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.33,0},{0.1,0},{0.38,0},{0.18,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission8Button_clicked"/>
         </Window>
-        <Window Type="MenuWidgets/Button" Name="orxonox/Mission9Button" >
+
+        <!-- Misson 9************************************* -->
+        <Window Type="MenuWidgets/Button" Name="orxonox/Mission9Text" >
             <Property Name="Text" Value="Retaliation" />
             <Property Name="Visible" Value="False"/>
+            <Property Name="Disabled" Value="True" />
+            <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.145,0},{0.3,0},{0.195,0}}" />
+            <Event Name="Clicked" Function="CampaignMenu.Mission9Button_clicked"/>
+        </Window>
+        <Window Type="MenuWidgets/JuuButton" Name="orxonox/Mission9Button" >
+
+            <Property Name="Visible" Value="False"/>
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.74,0},{0.65,0},{0.79,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.18,0},{0.07,0},{0.24,0},{0.145,0}}" />
             <Property Name="Disabled" Value="True" />
             <Event Name="Clicked" Function="CampaignMenu.Mission9Button_clicked"/>
         </Window>
 
-
+        <!-- Back Button************************************* -->
         <Window Type="MenuWidgets/Button" Name="orxonox/CampaignMenuBackButton" >
             <Property Name="Text" Value="Back" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.35,0},{0.85,0},{0.65,0},{0.9,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.75,0},{0.9,0},{0.95,0},{0.95,0}}" />
             <Event Name="Clicked" Function="CampaignMenu.CampaignMenuBackButton_clicked"/> 
         </Window>
Index: code/branches/HUD_HS16/data/gui/layouts/Dialogue.layout
===================================================================
--- code/branches/HUD_HS16/data/gui/layouts/Dialogue.layout	(revision 11502)
+++ code/branches/HUD_HS16/data/gui/layouts/Dialogue.layout	(revision 11502)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+    <Window Type="DefaultWindow" Name="orxonox/Dialogue/Background" > 
+    	<Property Name="InheritsAlpha" Value="False" />
+        <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+        <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
+        <Window Type="MenuWidgets/StaticText" Name="orxonox/Dialogue/Inventory" >
+            <Property Name="Alpha" Value="0.8" />
+            <Property Name="InheritsAlpha" Value="False" />
+            <Property Name="HorzFormatting" Value="HorzCentred" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="VertFormatting" Value="TopAligned" />
+            <Property Name="UnifiedAreaRect" Value="{{0.15,0},{0.15,0},{0.85,0},{0.8,0}}" />
+            <Window Type="MenuWidgets/StaticText" Name="orxonox/Dialogue/Wrapper" >
+                <Property Name="TextColours" Value="FF4444FF" />
+                <Property Name="InheritsAlpha" Value="False" />
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="HorzFormatting" Value="HorzCentred" />
+                <Property Name="VertFormatting" Value="TopAligned" />
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.92,0}}" />
+            </Window>
+        </Window>
+         
+    </Window>
+</GUILayout>
Index: code/branches/HUD_HS16/data/gui/layouts/HighscoreMenu.layout
===================================================================
--- code/branches/HUD_HS16/data/gui/layouts/HighscoreMenu.layout	(revision 11502)
+++ code/branches/HUD_HS16/data/gui/layouts/HighscoreMenu.layout	(revision 11502)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+    <Window Type="DefaultWindow" Name="orxonox/HighscoreMenu/Background" >
+        <Property Name="InheritsAlpha" Value="False" />
+        <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+        <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
+        <Window Type="MenuWidgets/StaticText" Name="orxonox/HighscoreWindow" >
+            <Property Name="Text" Value="Highscore" />
+            <Property Name="Alpha" Value="0.8" />
+            <Property Name="InheritsAlpha" Value="False" />
+            <Property Name="HorzFormatting" Value="HorzCentred" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="VertFormatting" Value="TopAligned" />
+            <Property Name="UnifiedAreaRect" Value="{{0.15,0},{0.1,0},{0.85,0},{0.85,0}}" />
+            <Window Type="MenuWidgets/TabControl" Name="orxonox/HighscoreTabControl" >
+                <Property Name="TabHeight" Value="{0,30}" />
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="TabPanePosition" Value="Top" />
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.105,0},{0.95,0},{0.99,0}}" />
+            </Window>
+            <!--<Window Type="MenuWidgets/StaticText" Name="orxonox/HighscoreMenuWrapper" >
+                <Property Name="InheritsAlpha" Value="False" />
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="HorzFormatting" Value="HorzCentred" />
+                <Property Name="VertFormatting" Value="TopAligned" />
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.92,0}}" />
+                <Window Type="MenuWidgets/ScrollablePane" Name="orxonox/HighscoreMenuPane" >
+                    <Property Name="ContentArea" Value="l:0 t:0 r:0 b:0" />
+                    <Property Name="HorzStepSize" Value="0.005" />
+                    <Property Name="VertStepSize" Value="0.005" />
+                    <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                    <Property Name="HorzOverlapSize" Value="0.01" />
+                    <Property Name="UnifiedAreaRect" Value="{{0.005,0},{0.01,0},{0.995,0},{0.99,0}}" />
+                    <Property Name="VertOverlapSize" Value="0.01" />
+                    <Property Name="HorzScrollPosition" Value="0" />
+                    <Property Name="VertScrollPosition" Value="0" />
+                </Window>
+            
+            </Window>
+            -->
+        </Window>
+        <Window Type="MenuWidgets/Button" Name="orxonox/HighscoreBackButton" >
+            <Property Name="Text" Value="Back" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.8625,0},{0.6,0},{0.9125,0}}" />
+            <Event Name="Clicked" Function="HighscoreMenu.HighscoreBackButton_clicked"/>
+        </Window>
+    </Window>
+</GUILayout>
Index: code/branches/HUD_HS16/data/gui/layouts/MainMenu.layout
===================================================================
--- code/branches/HUD_HS16/data/gui/layouts/MainMenu.layout	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/layouts/MainMenu.layout	(revision 11502)
@@ -11,5 +11,5 @@
             <Property Name="Text" Value="Quickstart" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.2875,0},{0.6,0},{0.3375,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.25,0},{0.6,0},{0.3,0}}" />
             <Event Name="Clicked" Function="MainMenu.QuickGameTestButton_clicked"/>
         </Window>
@@ -17,5 +17,5 @@
             <Property Name="Text" Value="Singleplayer" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.3625,0},{0.6,0},{0.4125,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.325,0},{0.6,0},{0.375,0}}" />
             <Event Name="Clicked" Function="MainMenu.SingleplayerButton_clicked"/>
         </Window>
@@ -23,11 +23,17 @@
             <Property Name="Text" Value="Multiplayer" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.4375,0},{0.6,0},{0.4875,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.4,0},{0.6,0},{0.45,0}}" />
             <Event Name="Clicked" Function="MainMenu.MultiplayerButton_clicked"/>
+        </Window>
+        <Window Type="MenuWidgets/Button" Name="orxonox/HighscoreButton" >
+            <Property Name="Text" Value="Highscore" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.475,0},{0.6,0},{0.525,0}}" />
+            <Event Name="Clicked" Function="MainMenu.HighscoreButton_clicked"/>
         </Window>
         <Window Type="MenuWidgets/Button" Name="orxonox/SettingsButton" >
             <Property Name="Text" Value="Settings" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.5125,0},{0.6,0},{0.5625,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.55,0},{0.6,0},{0.6,0}}" />
             <Event Name="Clicked" Function="MainMenu.SettingsButton_clicked"/>
         </Window>
@@ -35,5 +41,5 @@
             <Property Name="Text" Value="Credits" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.5875,0},{0.6,0},{0.6375,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.625,0},{0.6,0},{0.675,0}}" />
             <Event Name="Clicked" Function="MainMenu.CreditsButton_clicked"/>
         </Window>
@@ -41,5 +47,5 @@
             <Property Name="Text" Value="Exit" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.6625,0},{0.6,0},{0.7125,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.7,0},{0.6,0},{0.75,0}}" />
             <Event Name="Clicked" Function="MainMenu.ExitButton_clicked"/>
         </Window>
Index: code/branches/HUD_HS16/data/gui/schemes/OrxonoxHUDWidgets.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/OrxonoxHUDWidgets.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/OrxonoxHUDWidgets.scheme	(revision 11502)
@@ -40,3 +40,5 @@
     <WindowAlias Alias="HUDWidgets/Tooltip"                  Target="OrxonoxLook/Tooltip" />
     <WindowAlias Alias="HUDWidgets/Tree"                     Target="OrxonoxLook/Tree" />
+
+    <WindowAlias Alias="HUDWidgets/ImageButton"              Target="OrxonoxLook/JuuButton" />
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/OrxonoxLook.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/OrxonoxLook.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/OrxonoxLook.scheme	(revision 11502)
@@ -50,4 +50,8 @@
     <FalagardMapping WindowType="OrxonoxLook/VUMeter"                     TargetType="CEGUI/ProgressBar"       Renderer="Falagard/ProgressBar"       LookNFeel="OrxonoxLook/VUMeter" />
     <FalagardMapping WindowType="OrxonoxLook/LargeVerticalScrollbar"      TargetType="CEGUI/Scrollbar"         Renderer="Falagard/Scrollbar"         LookNFeel="OrxonoxLook/LargeVerticalScrollbar" />
-    <FalagardMapping WindowType="OrxonoxLook/LargeVerticalScrollbarThumb" TargetType="CEGUI/Thumb"             Renderer="Falagard/Button"            LookNFeel="OrxonoxLook/LargeVerticalScrollbarThumb" />
+    <FalagardMapping WindowType="OrxonoxLook/LargeVerticalScrollbarThumb" TargetType="CEGUI/Thumb"             Renderer="Falagard/Button"         LookNFeel="OrxonoxLook/LargeVerticalScrollbarThumb" />
+
+    <!-- Special Button for CampaignMenu -->
+    <FalagardMapping WindowType="OrxonoxLook/JuuButton"              TargetType="CEGUI/PushButton"        Renderer="Falagard/Button"            LookNFeel="OrxonoxLook/JuuButton" />
+
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/OrxonoxMenuWidgets.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/OrxonoxMenuWidgets.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/OrxonoxMenuWidgets.scheme	(revision 11502)
@@ -40,3 +40,5 @@
     <WindowAlias Alias="MenuWidgets/Tooltip"                  Target="OrxonoxLook/Tooltip" />
     <WindowAlias Alias="MenuWidgets/Tree"                     Target="OrxonoxLook/Tree" />
+
+    <WindowAlias Alias="MenuWidgets/JuuButton"                Target="OrxonoxLook/JuuButton" />
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/TaharezGreenHUDWidgets.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/TaharezGreenHUDWidgets.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/TaharezGreenHUDWidgets.scheme	(revision 11502)
@@ -40,3 +40,5 @@
     <WindowAlias Alias="HUDWidgets/Tooltip"                  Target="TaharezGreenLook/Tooltip" />
     <WindowAlias Alias="HUDWidgets/Tree"                     Target="TaharezGreenLook/Tree" />
+
+     <WindowAlias Alias="HUDWidgets/ImageButton"              Target="TaharezGreenLook/JuuButton" />
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/TaharezGreenLook.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/TaharezGreenLook.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/TaharezGreenLook.scheme	(revision 11502)
@@ -51,3 +51,6 @@
     <FalagardMapping WindowType="TaharezGreenLook/LargeVerticalScrollbar"      TargetType="CEGUI/Scrollbar"         Renderer="Falagard/Scrollbar"         LookNFeel="TaharezGreenLook/LargeVerticalScrollbar" />
     <FalagardMapping WindowType="TaharezGreenLook/LargeVerticalScrollbarThumb" TargetType="CEGUI/Thumb"             Renderer="Falagard/Button"            LookNFeel="TaharezGreenLook/LargeVerticalScrollbarThumb" />
+
+    <!-- Special Button for CampaignMenu -->
+    <FalagardMapping WindowType="TaharezGreenLook/JuuButton"              TargetType="CEGUI/PushButton"        Renderer="Falagard/Button"            LookNFeel="TaharezGreenLook/JuuButton" />
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/TaharezGreenMenuWidgets.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/TaharezGreenMenuWidgets.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/TaharezGreenMenuWidgets.scheme	(revision 11502)
@@ -40,3 +40,5 @@
     <WindowAlias Alias="MenuWidgets/Tooltip"                  Target="TaharezGreenLook/Tooltip" />
     <WindowAlias Alias="MenuWidgets/Tree"                     Target="TaharezGreenLook/Tree" />
+
+        <WindowAlias Alias="MenuWidgets/JuuButton"                Target="TaharezGreenLook/JuuButton" />
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/schemes/TaharezLook.scheme
===================================================================
--- code/branches/HUD_HS16/data/gui/schemes/TaharezLook.scheme	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/schemes/TaharezLook.scheme	(revision 11502)
@@ -51,3 +51,4 @@
     <FalagardMapping WindowType="TaharezLook/LargeVerticalScrollbar"      TargetType="CEGUI/Scrollbar"         Renderer="Falagard/Scrollbar"         LookNFeel="TaharezLook/LargeVerticalScrollbar" />
     <FalagardMapping WindowType="TaharezLook/LargeVerticalScrollbarThumb" TargetType="CEGUI/Thumb"             Renderer="Falagard/Button"            LookNFeel="TaharezLook/LargeVerticalScrollbarThumb" />
+    
 </GUIScheme>
Index: code/branches/HUD_HS16/data/gui/scripts/CampaignMenu.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/CampaignMenu.lua	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/scripts/CampaignMenu.lua	(revision 11502)
@@ -9,12 +9,21 @@
 function P.updateButtons()
     P.updateButton(0, winMgr:getWindow("orxonox/Mission1Button"))
+    P.updateButton(0, winMgr:getWindow("orxonox/Mission1Text"))
     P.updateButton(1, winMgr:getWindow("orxonox/Mission2Button"))
+    P.updateButton(1, winMgr:getWindow("orxonox/Mission2Text"))
     P.updateButton(2, winMgr:getWindow("orxonox/Mission3Button"))
+    P.updateButton(2, winMgr:getWindow("orxonox/Mission3Text"))
     P.updateButton(3, winMgr:getWindow("orxonox/Mission4Button"))
+    P.updateButton(3, winMgr:getWindow("orxonox/Mission4Text"))
     P.updateButton(4, winMgr:getWindow("orxonox/Mission5Button"))
+    P.updateButton(4, winMgr:getWindow("orxonox/Mission5Text"))
     P.updateButton(5, winMgr:getWindow("orxonox/Mission6Button"))
+    P.updateButton(5, winMgr:getWindow("orxonox/Mission6Text"))
     P.updateButton(6, winMgr:getWindow("orxonox/Mission7Button"))
+    P.updateButton(6, winMgr:getWindow("orxonox/Mission7Text"))
     P.updateButton(7, winMgr:getWindow("orxonox/Mission8Button"))
+    P.updateButton(7, winMgr:getWindow("orxonox/Mission8Text"))
     P.updateButton(8, winMgr:getWindow("orxonox/Mission9Button"))
+    P.updateButton(8, winMgr:getWindow("orxonox/Mission9Text"))
 
 
@@ -97,5 +106,5 @@
 
 function P.loadLevel(level)
-    orxonox.execute("startGame " .. level:getXMLFilename())
+    orxonox.execute("changeGame " .. level:getXMLFilename())
     hideAllMenuSheets()
 end
@@ -118,5 +127,6 @@
 
 function P.CampaignMenuBackButton_clicked(e)
-    hideMenuSheet(P.name)
+    orxonox.execute("startMainMenu")
+    hideMenuSheet("CampaignMenu")
 end
 
Index: code/branches/HUD_HS16/data/gui/scripts/Dialogue.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/Dialogue.lua	(revision 11502)
+++ code/branches/HUD_HS16/data/gui/scripts/Dialogue.lua	(revision 11502)
@@ -0,0 +1,144 @@
+
+-- Dialogue.lua
+
+local P = createMenuSheet("Dialogue")
+
+P.wrapper = nil
+P.detailsWindows = {}
+P.detailPickups = {}
+P.pickupsList = {}
+
+P.showing = false
+
+-- Design parameters
+P.imageHeight = 50
+P.detailImageSize = 100
+P.textHeight = 30
+P.buttonWidth = 85
+
+function P.onLoad()
+    P.wrapper = nil
+    P.detailsWindows = {}
+    P.detailPickups = {}
+    P.pickupsList = {}
+end
+
+function P.onShow()
+    orxonox.CommandExecutor:execute("setTimeFactor 0")
+    P.createInventory()
+    P.showing = true
+
+end
+
+function P.onHide()
+    orxonox.CommandExecutor:execute("setTimeFactor 1")
+    P.showing = false
+    P.cleanup(true)
+end
+
+function P.update()
+    P.updateInventory()
+    if P.showing == false then
+        return
+    end
+
+    -- Update opened detail windows.
+    
+
+    -- Update main inventory.
+    P.cleanup(false)
+    P.createInventory()
+    -- TODO: Recover scrolling position
+    
+end
+
+function P.createInventory()
+
+    local pickupManager = orxonox.DialogueManager:getInstance()
+    
+    root = winMgr:getWindow("orxonox/Dialogue/Inventory")
+    local question = orxonox.DialogueManager:getInstance():getquestion()
+    root:setText(question)
+    P.wrapper = winMgr:createWindow("MenuWidgets/ScrollablePane", "orxonox/Dialogue/Inventory/Wrapper")
+    P.wrapper:setSize(CEGUI.UVector2(CEGUI.UDim(1,0),CEGUI.UDim(1,0)))
+    root:addChildWindow(P.wrapper)
+    
+    
+    detailsButton = winMgr:createWindow("MenuWidgets/Button", "/DetailsButton")
+    local a1 = orxonox.DialogueManager:getInstance():getanswers1()
+    detailsButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0.1, 0),CEGUI.UDim(0.25, (P.imageHeight-P.textHeight)/2)))
+    detailsButton:setSize(CEGUI.UVector2(CEGUI.UDim(0.8, 0), CEGUI.UDim(0, P.textHeight)))
+    detailsButton:setText(a1)
+    orxonox.GUIManager:subscribeEventHelper(detailsButton, "Clicked", P.name ..".a1Button_clicked")
+    P.wrapper:addChildWindow(detailsButton)
+
+    a2Button = winMgr:createWindow("MenuWidgets/Button", "/a2Button")
+    local a2 = orxonox.DialogueManager:getInstance():getanswers2()
+    a2Button:setPosition(CEGUI.UVector2(CEGUI.UDim(0.1, 0),CEGUI.UDim(0.4, (P.imageHeight-P.textHeight)/2)))
+    a2Button:setSize(CEGUI.UVector2(CEGUI.UDim(0.8, 0), CEGUI.UDim(0, P.textHeight)))
+    a2Button:setText(a2)
+    orxonox.GUIManager:subscribeEventHelper(a2Button, "Clicked", P.name ..".a2Button_clicked")
+    P.wrapper:addChildWindow(a2Button)
+
+
+end
+
+function P.updateInventory()
+    local questionn = orxonox.DialogueManager:getInstance():getquestion()
+    root:setText(questionn)
+    local a1n = orxonox.DialogueManager:getInstance():getanswers1()
+    detailsButton:setText(a1n)
+    local a2n = orxonox.DialogueManager:getInstance():getanswers2()
+    a2Button:setText(a2n)
+
+end
+
+
+function P.cleanup(destroyDetails)
+    
+    if P.wrapper ~= nil then
+        winMgr:destroyWindow(P.wrapper)
+    end
+    
+    --Destroy details windows.
+    if destroyDetails == false then
+        return
+    end
+    for k,v in pairs(P.detailsWindows) do
+        if v ~= nil then
+            P.destroyDetailWindow(k)
+        end
+    end
+    
+end
+
+
+
+function P.a1Button_clicked(e)
+    local ending = orxonox.DialogueManager:getInstance():theEnd()
+    
+    if ending then
+        orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialogue")
+    
+    
+    else 
+        orxonox.DialogueManager:getInstance():a1clicked()
+        P.update()
+    end
+end
+
+function P.a2Button_clicked(e)
+    local ending = orxonox.DialogueManager:getInstance():theEnd()
+    
+    if ending then
+        orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialogue")
+    
+    
+    else 
+        orxonox.DialogueManager:getInstance():a2clicked()
+        P.update()
+    end
+    
+end
+
+return P
Index: code/branches/HUD_HS16/data/gui/scripts/HighscoreMenu.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/HighscoreMenu.lua	(revision 11502)
+++ code/branches/HUD_HS16/data/gui/scripts/HighscoreMenu.lua	(revision 11502)
@@ -0,0 +1,169 @@
+-- HighscoreMenu.lua
+
+local P = createMenuSheet("HighscoreMenu")
+
+P.highscoreList = {}
+P.tabList = {}
+P.linesList = {}
+P.levelList = {}
+
+
+P.imageHeight = 50
+
+function P.onLoad()
+	P.createLevelList()    
+end
+
+function P.onShow()
+	
+	-- reset tables
+	P.highscoreList = {}
+	P.tabList = {}
+	P.linesList = {}
+
+	-- fetch save scores and write it into the list
+	for i=orxonox.Highscore:getInstance():getNumberOfHighscores()-1,0,-1 do
+		table.insert(P.highscoreList, orxonox.Highscore:getInstance():getHighscore(i))
+	
+	end
+	
+	-- read minigames out of the levelList
+    for k,v in pairs(P.levelList) do
+        if(v:getName() ~= "Hover level" and v:getName() ~= "Pong") then   -- hover and pong dont contain relevant scores
+            P.createFilterTab(v:getName(), v:getName())
+        end
+    end
+  
+end
+function P.onHide()
+
+	-- delete old windows to reload them on show
+	local tabControl = winMgr:getWindow("orxonox/HighscoreTabControl")
+	for k,v in pairs(P.tabList) do
+        	local default = winMgr:getWindow(v)
+            tabControl:removeChildWindow(default)
+        	winMgr:destroyWindow(default)
+    end
+end
+function P.createLevelList()
+    P.levelList = {}
+    local size = orxonox.LevelManager:getInstance():getNumberOfLevels()
+    local index = 0
+    local level = nil
+    while index < size do
+        level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+        if (level ~= nil and level:getXMLFilename() ~= "_temp.oxw" and level:hasTag("minigame")) then
+            table.insert(P.levelList, level)
+        end
+        index = index + 1
+    end
+end
+function P.createFilterTab(name, tag)
+    -- create unique tab window name
+    local tabName = "orxonox/HighscoreLevelTab"
+    if tag ~= nil then
+        tabName = tabName..tag
+    end
+
+    table.insert(P.tabList, tabName)
+    -- create new tab window with desired name
+	local default = (winMgr:createWindow("DefaultWindow", tabName))
+    default:setText(name)
+    default:setProperty("UnifiedMaxSize", "{{1,0},{1,0}}")
+    default:setProperty("UnifiedAreaRect", "{{0,0},{0,0},{1,0},{1,0}}")
+    local pane = winMgr:createWindow("MenuWidgets/ScrollablePane", tabName .. "pane") 
+    pane:setSize(CEGUI.UVector2(CEGUI.UDim(1,0),CEGUI.UDim(1,0)))
+    default:addChildWindow(pane)
+
+   
+    local offset = 2
+    for k,v in pairs(P.highscoreList) do
+    	-- split the score ("Playername./.game./.score")
+    	local splitlist = P.Split(v,"./.")
+    	if(splitlist[2] == name)then  
+    		local line = P.createPickupEntry(tabName .. k,k,tag)
+       	 	table.insert(P.linesList, line)
+        	line:setYPosition(CEGUI.UDim(0,offset))
+        	offset = offset + line:getHeight():asAbsolute(1)+2
+        	pane:addChildWindow(line)	
+    	end
+        
+    end
+
+	local tabControl = winMgr:getWindow("orxonox/HighscoreTabControl")
+	tabControl:addChildWindow(default)
+ 
+
+    
+end
+function P.createPickupEntry(parent,k,tag)
+   
+    local name = "orxonox/HiscoreEntry" .. parent
+    local splitlist = P.Split(P.highscoreList[k],"./.")
+    local item = winMgr:createWindow("DefaultWindow", name)
+    item:setSize(CEGUI.UVector2(CEGUI.UDim(1, 0), CEGUI.UDim(0, P.imageHeight)))
+    item:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 0), CEGUI.UDim(0, 0)))
+
+    local player = winMgr:createWindow("MenuWidgets/StaticText", name .. "/Player")
+    player:setText(splitlist[1])
+    player:setPosition(CEGUI.UVector2(CEGUI.UDim(0.005,0), CEGUI.UDim(0,0)))
+    player:setSize(CEGUI.UVector2(CEGUI.UDim(0.49, 0), CEGUI.UDim(0, P.imageHeight)))
+    
+    item:addChildWindow(player)
+    	
+    local score = winMgr:createWindow("MenuWidgets/StaticText", name .. "/Score")
+    score:setText(splitlist[3])
+    score:setPosition(CEGUI.UVector2(CEGUI.UDim(0.5,0), CEGUI.UDim(0,0)))
+    score:setSize(CEGUI.UVector2(CEGUI.UDim(0.495, 0), CEGUI.UDim(0, P.imageHeight)))
+    
+    item:addChildWindow(score)
+
+    return item
+end
+function P.HighscoreGetSelectedLevel()
+    -- choose the active listbox
+    local tabControl = CEGUI.toTabControl(winMgr:getWindow("orxonox/HighscoreTabControl"))
+    local listbox = CEGUI.toListbox(tabControl:getTabContentsAtIndex(tabControl:getSelectedTabIndex()))
+    local choice = listbox:getFirstSelectedItem()
+    if choice ~= nil then
+        -- get the right tab and the right index
+        local tabIndexes = P.activeTabIndexes[tabControl:getSelectedTabIndex()+1]
+        local index = tabIndexes[listbox:getItemIndex(choice)+1]
+        return P.levelList[index]
+    else
+        return nil
+    end
+end
+function P.Split(str, delim, maxNb)
+    -- Eliminate bad cases...
+    if string.find(str, delim) == nil then
+        return { str }
+    end
+    if maxNb == nil or maxNb < 1 then
+        maxNb = 0    -- No limit
+    end
+    local result = {}
+    local pat = "(.-)" .. delim .. "()"
+    local nb = 0
+    local lastPos
+    for part, pos in string.gfind(str, pat) do
+        nb = nb + 1
+        result[nb] = part
+        lastPos = pos
+        if nb == maxNb then break end
+    end
+    -- Handle the last field
+    if nb ~= maxNb then
+        result[nb + 1] = string.sub(str, lastPos)
+    end
+    return result
+end
+
+
+
+function P.HighscoreBackButton_clicked(e)
+    hideMenuSheet(P.name)
+end
+
+return P
+
Index: code/branches/HUD_HS16/data/gui/scripts/MainMenu.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/MainMenu.lua	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/scripts/MainMenu.lua	(revision 11502)
@@ -2,5 +2,5 @@
 
 local P = createMenuSheet("MainMenu")
-P.loadAlong = { "SingleplayerMenu", "MultiplayerMenu", "SettingsMenu", "CreditsMenu" }
+P.loadAlong = { "SingleplayerMenu", "MultiplayerMenu", "HighscoreMenu", "SettingsMenu", "CreditsMenu" }
 
 function P.onLoad()
@@ -22,14 +22,19 @@
 
     P:setButton(4, 1, {
+            ["button"] = winMgr:getWindow("orxonox/HighscoreButton"),
+            ["callback"]  = P.MultiplayerButton_clicked
+    })
+
+    P:setButton(5, 1, {
             ["button"] = winMgr:getWindow("orxonox/SettingsButton"),
             ["callback"]  = P.SettingsButton_clicked
     })
 
-    P:setButton(5, 1, {
+    P:setButton(6, 1, {
             ["button"] = winMgr:getWindow("orxonox/CreditsButton"),
             ["callback"]  = P.CreditsButton_clicked
     })
 
-    P:setButton(6, 1, {
+    P:setButton(7, 1, {
             ["button"] = winMgr:getWindow("orxonox/ExitButton"),
             ["callback"]  = P.ExitButton_clicked
@@ -51,4 +56,8 @@
 end
 
+function P.HighscoreButton_clicked(e)
+    showMenuSheet("HighscoreMenu", true)
+end
+
 function P.SettingsButton_clicked(e)
     showMenuSheet("SettingsMenu", true)
Index: code/branches/HUD_HS16/data/gui/scripts/MiscConfigMenu.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/MiscConfigMenu.lua	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/scripts/MiscConfigMenu.lua	(revision 11502)
@@ -18,4 +18,5 @@
 
     P.commandList = {}
+    table.insert(P.commandList, "Highscore playerName_")
     table.insert(P.commandList, "KeyBinder mouseSensitivity_")
     table.insert(P.commandList, "KeyBinder mouseSensitivityDerived_")
@@ -43,4 +44,5 @@
 
     P.nameList = {}
+    table.insert(P.nameList, "Playername")
     table.insert(P.nameList, "Mouse sensitivity")
     table.insert(P.nameList, "Mouse acceleration")
Index: code/branches/HUD_HS16/data/gui/scripts/SingleplayerMenu.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/SingleplayerMenu.lua	(revision 11501)
+++ code/branches/HUD_HS16/data/gui/scripts/SingleplayerMenu.lua	(revision 11502)
@@ -172,5 +172,7 @@
 
 function P.CampaignButton_clicked(e)
-    showMenuSheet("CampaignMenu", true)
+    -- showMenuSheet("CampaignMenu", true)
+    hideAllMenuSheets()
+    orxonox.execute("startGame StoryModeMap.oxw")
 end
 
Index: code/branches/HUD_HS16/data/gui/scripts/TestDialogButttons.lua
===================================================================
--- code/branches/HUD_HS16/data/gui/scripts/TestDialogButttons.lua	(revision 11502)
+++ code/branches/HUD_HS16/data/gui/scripts/TestDialogButttons.lua	(revision 11502)
@@ -0,0 +1,30 @@
+local P = createMenuSheet("dialogue")
+
+function P.onLoad()
+    --buttons are arranged in a 2x1 Matrix (list)
+    P:setButton(1, 1, {
+            ["button"] = winMgr:getWindow("orxonox/QuickGameTestButton"),
+            ["callback"]  = P.QuickGameTestButton_clicked
+    })
+
+    P:setButton(2, 1, {
+            ["button"] = winMgr:getWindow("orxonox/SingleplayerButton"),
+            ["callback"]  = P.SingleplayerButton_clicked
+    })
+
+end
+
+-- events for options
+function P.QuickGameTestButton_clicked(e)
+    hideAllMenuSheets()
+    orxonox.execute("startGame")
+end
+
+function P.SingleplayerButton_clicked(e)
+    showMenuSheet("SingleplayerMenu", true)
+end
+
+
+
+return P
+
Index: code/branches/HUD_HS16/data/levels/DialogueShowcase.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/DialogueShowcase.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/DialogueShowcase.oxw	(revision 11502)
@@ -0,0 +1,79 @@
+<LevelInfo
+ name = "DialogueShowcase"
+ description = "A level to show and test the functionality of the Dialogue module."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/HeavyCruiser.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipEscort.oxt")
+  include("templates/endurancetest_template.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+  
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+ <DistanceTrigger name="test" position="100,0,100" target="Pawn" distance=25 stayActive="true" />
+    <Backlight position="100,0,100" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,0,1"/>
+    
+    <NextQuestion  question="Unknown Spaceship Transmission: Who goes there?" a1="(say your name)" a2="None of your business I'm afraid." >
+     <possibleQuestions> 
+        <NextQuestion  question="You're not cleared for this area, turn back." a1="Doesn't look too exciting here anyways." a2="You gotta make me try...(attack)" />
+        <NextQuestion  question="I'll make it my business. Only military allowed in this area." a1="Whoops, didn't know that, I'll be on my way then." a2="Got an important message for Sgt Smith though." >
+        <possibleQuestions>
+          <NextQuestion  question="Make sure I don't have to see your ugly face again." a1="...thanks, bye." a2="I'll think about it." />
+          <NextQuestion  question="Oh why didn't you say that in the first place? Off you go." a1="Thanks mate." a2="Just don't be so rude next time." />
+        </possibleQuestions>
+      </NextQuestion>
+      </possibleQuestions>    
+      <events>
+        <execute>
+           <EventListener event="test" />
+        </execute>
+      </events>
+    </NextQuestion>
+
+    <DistanceTrigger name="test1" position="100,0,-100" target="Pawn" distance=25 stayActive="true" />
+    <Backlight position="100,0,-100" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,1,1"/>
+    
+    <NextQuestion  question="Hey,  sorry to bother you,  could you help me with something?" a1="Yeah sure." a2="Nope get lost." >
+     <possibleQuestions> 
+        <NextQuestion  question="Do you like fish" a1="...yes?" a2="This is wasting my time." >
+        <possibleQuestions>
+          <NextQuestion  question="Splendid! Would you like your ship to look like one?" a1="..." a2="I'm going now,  okay?" />
+          <NextQuestion  question="Turtles then?" a1="..." a2="Im going now,  okay?" />
+        </possibleQuestions>
+        </NextQuestion>
+        <NextQuestion  question="I can pay you know." a1="Got enough money." a2="...are you deaf? Bye."/>
+      </possibleQuestions>    
+      <events>
+        <execute>
+           <EventListener event="test1" />
+        </execute>
+      </events>
+    </NextQuestion>
+
+    
+
+    <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 team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    
+    
+  </Scene>
+</Level>
Index: code/branches/HUD_HS16/data/levels/Endurancefinal.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/Endurancefinal.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/Endurancefinal.oxw	(revision 11502)
@@ -0,0 +1,42 @@
+<LevelInfo
+ name = "Endurancefinal"
+ description = "Endurance Bigship."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/HeavyCruiser.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipEscort.oxt")
+  include("templates/endurancetest_template.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+
+    <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 team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    <ModularSpaceShip velocity= "20,0,0" position="0,0,200" lookat= "0,0,0" health="1000" maxhealth="1000" initialhealth="1000">
+      <templates>
+        <Template link=endurance />
+      </templates>
+    </ModularSpaceShip>
+    
+  </Scene>
+</Level>
+
Index: code/branches/HUD_HS16/data/levels/HeavyCruiser.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/HeavyCruiser.oxw	(revision 11501)
+++ code/branches/HUD_HS16/data/levels/HeavyCruiser.oxw	(revision 11502)
@@ -34,5 +34,5 @@
 
 <!-- HeavyCruiser and all its parts in one static entity -->
-    <StaticEntity position="-300,0,-2000" direction="0,0,0" yaw="180" collisionType=static mass=100000 friction=0.01 >
+    <!--StaticEntity position="-300,0,-2000" direction="0,0,0" yaw="180" collisionType=static mass=100000 friction=0.01 >
     <attached>
             <Model mesh="HeavyCruiser_body.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
@@ -46,5 +46,4 @@
             <Model mesh="HeavyCruiser_sidearmRfront.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
             
-            <!-- bay1 lights -->
             <BlinkingBillboard position="75,30,-416" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.05 frequency=0.3 phase=240 quadratic=1 />
             <BlinkingBillboard position="-75,30,-416" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.05 frequency=0.3 phase=240 quadratic=1 />
@@ -53,10 +52,10 @@
             <BlinkingBillboard position="73,30,-388" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.15 frequency=0.3 phase=0 quadratic=1 />
             <BlinkingBillboard position="-73,30,-388" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.15 frequency=0.3 phase=0 quadratic=1 />
-            <!-- front position lights -->
+
             <BlinkingBillboard position="67,-5,-240" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
             <BlinkingBillboard position="-67,-5,-240" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
             <BlinkingBillboard position="72,51,-380" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
             <BlinkingBillboard position="-72,51,-380" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
-            <!-- rear position lights -->
+
             <BlinkingBillboard position="95,-15,483" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
             <BlinkingBillboard position="-95,-15,483" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
@@ -293,16 +292,9 @@
         <BoxCollisionShape position="0,18,69" halfExtents="23,12,1" info="HOOKBOX, wide"/>
         <BoxCollisionShape position="0,18,47" halfExtents="23,12,1" info="HOOKBOX, wide"/>
-        
-<!--         <BoxCollisionShape position="-11,18,102" halfExtents="10,10,10" info="HOOK, sidearmL"/>
-        <BoxCollisionShape position="11,18,102" halfExtents="10,10,10" info="HOOK, sidearmR"/>
-        <BoxCollisionShape position="-11,18,80" halfExtents="10,10,10" info="HOOK, partL"/>
-        <BoxCollisionShape position="11,18,80" halfExtents="10,10,10" info="HOOK, partR"/>
-        <BoxCollisionShape position="-11,18,58" halfExtents="10,10,10" info="HOOK, frontL"/>
-        <BoxCollisionShape position="11,18,58" halfExtents="10,10,10" info="HOOK, frontR"/>-->
     </collisionShapes>
-    </StaticEntity>
+    </StaticEntity-->
 
     <!-- Width/Height/Lenght--><!-- B=back F=front C=center-->
-    <StaticEntity position="300,0,-2000" direction="0,0,0" yaw="180" collisionType=static mass=100000 friction=0.01 >
+    <!--StaticEntity position="300,0,-2000" direction="0,0,0" yaw="180" collisionType=static mass=100000 friction=0.01 >
     <attached>
         <Model position="80,33,-320" mesh="cube.mesh" scale3D="7,11,54" info="frontR"/>
@@ -358,6 +350,4 @@
         <Model position="153,60,-65" roll="-15" mesh="cube.mesh" scale3D="4,3,4" info="sidearmRfront, top"/>
         <Model position="153,59,-41" roll="-15" mesh="cube.mesh" scale3D="8,2,11" info="sidearmRfront, top"/>
-
-        <!--<Model position="145,21,50" mesh="cube.mesh" scale3D="10,10,20" info="sidearmRfront, HOOK"/>-->
 
 
@@ -399,6 +389,4 @@
         <Model position="-153,59,-41" roll="15" mesh="cube.mesh" scale3D="8,2,11" info="sidearmLfront, top"/>
 
-        <!--<Model position="-145,21,50" mesh="cube.mesh" scale3D="10,10,20" info="sidearmLfront, HOOK"/>-->
-
 
         <Model position="60,35,-310" mesh="cube.mesh" scale3D="13,28,60" info="body, bay1, Rwall"/>
@@ -544,5 +532,5 @@
     <collisionShapes>
     </collisionShapes>
-    </StaticEntity>
+    </StaticEntity-->
 
 
@@ -738,5 +726,5 @@
     </Pawn>
 
-    <Pawn team=1 health=300 initialhealth=300 maxhealth=300 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_sidearmL radarname = "HIDDEN" >
+    <!--Pawn team=1 health=300 initialhealth=300 maxhealth=300 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_sidearmL radarname = "HIDDEN" >
 
         <explosion>
@@ -752,6 +740,4 @@
             <BoxCollisionShape position="-11,18,102" halfExtents="10,10,10" info="HOOK, sidearmL"/>
             
-            <!-- <BoxCollisionShape position="-109,47,87" halfExtents="29,8,26" info="sidearmL, upper connection"/>
-            <BoxCollisionShape position="-99,-1,79" roll="15" halfExtents="40,4,9" info="sidearmL, lower connection"/>-->
             <BoxCollisionShape position="-151,47,115" roll="15" halfExtents="16,2,105" info="sidearmL, frontTop"/>
             <BoxCollisionShape position="-136,-7,115" roll="15" halfExtents="16,2,105" info="sidearmL, frontBottom"/>
@@ -760,5 +746,4 @@
             <BoxCollisionShape position="-145,21,12" roll="15" halfExtents="16,28,2" info="sidearmL, front"/>
             <BoxCollisionShape position="-140,12,261" roll="15" halfExtents="22,41,43" info="sidearmL, back"/>
-            <!--<BoxCollisionShape position="-145,25,5" roll="15" halfExtents="10,18,5" info="sidearmL, front break"/>-->
             <BoxCollisionShape position="-133,-13,29" roll="15" halfExtents="12,6,17" info="sidearmL, bottom cylinder"/>
             <BoxCollisionShape position="-165,-4,31" roll="15" halfExtents="7,21,13" info="sidearmL, box"/>
@@ -816,7 +801,4 @@
         <collisionShapes>
             <BoxCollisionShape position="11,18,102" halfExtents="10,10,10" info="HOOK, sidearmR"/>
-
-        <!--<BoxCollisionShape position="109,47,87" halfExtents="29,8,26" info="sidearmR, upper connection"/>
-            <BoxCollisionShape position="99,-1,79" roll="-15" halfExtents="40,4,9" info="sidearmR, lower connection"/>-->
             <BoxCollisionShape position="151,47,115" roll="-15" halfExtents="16,2,105" info="sidearmR, frontTop"/>
             <BoxCollisionShape position="136,-7,115" roll="-15" halfExtents="16,2,105" info="sidearmR, frontBottom"/>
@@ -825,5 +807,4 @@
             <BoxCollisionShape position="145,21,12" roll="-15" halfExtents="16,28,2" info="sidearmR, front"/>
             <BoxCollisionShape position="140,12,261" roll="-15" halfExtents="22,41,43" info="sidearmR, back"/>
-            <!--<BoxCollisionShape position="145,25,5" roll="-15" halfExtents="10,18,5" info="sidearmR, front break"/>-->
             <BoxCollisionShape position="133,-13,29" roll="-15" halfExtents="12,6,17" info="sidearmR, bottom cylinder"/>
             <BoxCollisionShape position="165,-4,31" roll="-15" halfExtents="7,21,13" info="sidearmR, box"/>
@@ -930,5 +911,5 @@
             <BoxCollisionShape position="96,33,-230" halfExtents="13,17,22" info="partR"/>
         </collisionShapes>
-    </Pawn>
+    </Pawn-->
     
 
@@ -937,25 +918,4 @@
 
     <SpawnPoint team=0 position="0,0,0" lookat="0,0,-100" spawnclass=SpaceShip pawndesign=HeavyCruiserBody />
-    
-    <?lua
-	--[[
-	    With this lua script, the sub-parts of HeavyCruiser can easily be inserted into a level.
-	    Available functions are:
-	      To place all subparts:
-	         placeAllSubParts(team, posX, posY, posZ, dirX, dirY, dirZ)
-	      To place individual parts:
-	         placeFrontL(...)   Use the same arguments as in placeAllSubParts
-	         placeFrontR(...)
-	         placePartL(...)
-	         placePartR(...)
-	         placeSidearmL(...)
-	         placeSidearmLfront(...)
-	         placeSidearmR(...)
-	         placeSidearmRfront(...)
-	]]--
-
-        dofile("includes/HeavyCruiserParts.lua")
-        placeAllSubParts(0, 0,0,0, 0,0,0)
-    ?>
     
     <!-- <SpawnPoint team=0 position="0,-200,0" lookat="0,-200,-100" spawnclass=SpaceShip pawndesign=HeavyCruiser /> -->
Index: code/branches/HUD_HS16/data/levels/MilleniumFalconTest.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/MilleniumFalconTest.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/MilleniumFalconTest.oxw	(revision 11502)
@@ -0,0 +1,38 @@
+<LevelInfo
+ name = "MilleniumFalconTest"
+ description = "A level with absolutely nothing in it."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/HeavyCruiser.oxt")
+?>
+
+<?lua
+  include("templates/MFalcon.oxt")
+  include("templates/endurancetest_template.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+
+    <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 team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=MFalcon />
+
+    <Model mesh="MilleniumFalcon.mesh" position="0,0,0" scale=10/>
+
+  </Scene>
+</Level>
+
Index: code/branches/HUD_HS16/data/levels/SOB.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/SOB.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/SOB.oxw	(revision 11502)
@@ -0,0 +1,789 @@
+<LevelInfo
+	name = "Super Orxo Bros."
+	description = "The retro-game Super Mario Bros. in Orxonox."
+	tags = "minigame"
+	screenshot = "SOB.png"
+	/>
+
+	<?lua
+	include("HUDTemplates3.oxo")  
+	include("jumpHUD.oxo")
+	include("stats.oxo")
+	include("templates/lodInformation.oxt")
+	include("overlays/SOBHUD.oxo")
+	?>
+
+
+	<Template name=mushroom defaults=0>
+		<SOBMushroom collisionType="dynamic" speed=30>
+			<attached>
+				<Model mesh="Pilz.mesh" position="0,0,21" scale=3 pitch=90/> 
+			</attached>
+			<collisionShapes>
+				<BoxCollisionShape position="0,0,20" halfExtents="5,5,5" />
+			</collisionShapes>
+		</SOBMushroom>
+	</Template>
+
+	<Template name=coin defaults=0 >
+		<SOBCoin speed = 15 lifetime = 0.7>
+			<attached>
+				<Model mesh="Coin.mesh" position="0,0,11" scale=3 pitch=-90 roll=90/> 
+			</attached>
+			
+		</SOBCoin>
+	</Template>
+
+
+
+	<Template name=sobfigurecameras defaults=0>
+		<SOBFigure>
+			<camerapositions>
+				<CameraPosition position="0,-150,30" absolute=true mouselook=false drag=false direction="0,1,0"/>
+			</camerapositions>
+		</SOBFigure>
+	</Template>
+
+
+
+
+
+	<Template name=sobFigureTemplate>
+		<SOBFigure camerapositiontemplate=sobfigurecameras collisionType="dynamic" position="0,0,30">
+			<attached>
+				<Model  mesh="orxo.mesh" position = "0,0,12" scale=2.5 pitch=0 roll=90 yaw=90/>
+				<ParticleSpawner source="Orxonox/fire4" startdelay=0  position="-4,0,0" visible="false"/>
+			</attached>
+
+			<collisionShapes>
+				<BoxCollisionShape position="-2,0,2" halfExtents="3,1,10" />
+			</collisionShapes>
+
+
+		</SOBFigure>
+	</Template>
+
+	<Level
+		plugins = "superorxobros"
+		gametype = "SOB"
+		>-
+
+
+		<templates>
+			<Template link=lodtemplate_default />
+		</templates>
+		<?lua include("includes/notifications.oxi") ?>
+
+		<WorldAmbientSound source="Ganymede.ogg" looping="true" playOnLoad="true"/>
+
+
+		<Scene ambientlight="1.0, 1.0, 1.0" skybox="Orxonox/skyBoxBasic">
+			<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="1984,-5,88 " orientation="0.534038, 0.563456, 0.212168, 0.593553" />
+
+
+
+			<MovableEntity >
+				<attached>
+					<SOBCenterpoint name=jumpcenter cameraOffset="10" figureTemplate=sobFigureTemplate>
+						<attached>  
+						</attached>
+					</SOBCenterpoint>
+
+				</attached>
+			</MovableEntity>
+
+
+					<!--Gumba-->
+
+					<SOBGumba collisionType="dynamic" speed=40 position = "240,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,1" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+					<SOBGumba collisionType="dynamic" speed=30 position = "420,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+					<SOBGumba collisionType="dynamic" speed=30 position = "500,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=30 position = "510,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+					<SOBGumba collisionType="dynamic" speed=30 position = "930,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=20 position = "940,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=30 position = "1180,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=20 position = "1190,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=30 position = "1320,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=20 position = "1330,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=30 position = "1750,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+					<SOBGumba collisionType="dynamic" speed=20 position = "1770,0,0">
+						<attached>
+							<Model mesh="Goomba.mesh" position="0,0,21" scale=3 pitch=90/> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,20" halfExtents="5,5,3" /> 			
+						</collisionShapes>
+					</SOBGumba>
+
+
+					<!--CollisionShape for Gumba-->
+					<StaticEntity collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,-20" halfExtents="5,5,5" />
+							<BoxCollisionShape position="890,0,-20" halfExtents="5,5,5" />
+							
+							
+							
+							
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+					
+
+
+
+					<!-- Boden 1 -->
+					<Model mesh="Cube2.12.mesh" position="0,0,-30" scale=10 Pitch=90/> 					<!-- B1.1 -->
+					<Model mesh="Cube2.12.mesh" position="120,0,-30" scale=10 Pitch=90/> 				<!-- B1.2-->
+					<Model mesh="Cube2.12.mesh" position="240,0,-30" scale=10 Pitch=90/> 				<!-- B1.3 -->
+					<Model mesh="Cube2.12.mesh" position="360,0,-30" scale=10 Pitch=90/> 				<!-- B1.4 -->
+					<Model mesh="Cube2.12.mesh" position="480,0,-30" scale=10 Pitch=90/> 				<!-- B1.5 -->
+					<Model mesh="Cube2.6.mesh" position="600,0,-30" scale=10 Pitch=90/> 				<!-- B1.6 -->
+					<Model mesh="Cube2.3.mesh" position="660,0,-30" scale=10 Pitch=90/> 				<!-- B1.7 -->
+
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="340,0,-20" halfExtents="345,5,5" />
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+					<!-- Luft 1 -->
+
+
+					<SOBQBlock collisionType="static" type="Coin" position="170,0,20" mass='-1'> 						 	<!-- L1.1 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90 />
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/> 
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<SOBQBlock collisionType="static" type="Coin" position="230,0,60" mass='-1' > 
+						<attached>
+							<Model mesh="QCube.mesh"  scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>									<!-- L1.2 --> 
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" /> 			
+						</collisionShapes>
+					</SOBQBlock>
+
+					<Model mesh="Cube1.1.mesh" position="210,0,20" scale=10 /> 												<!-- L1.3 -->
+
+
+					<SOBQBlock collisionType="static" type="Mushroom" position="220,0,20" mass='-1'><!--ITEM-->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/> 													<!-- L1.4 --> 
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" /><!-- 3 -->
+						</collisionShapes>
+					</SOBQBlock>
+
+					<Model mesh="Cube1.1.mesh" position="230,0,20" scale=10/> 												<!-- L1.5 -->
+
+					<SOBQBlock collisionType="static" type="Coin" position="240,0,20" mass='-1'><!-- ? Block --> 
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/> 
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/> 								<!-- L1.6 -->
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock> 
+					
+					<Model mesh="Cube1.1.mesh" position="250,0,20" scale=10/> 												<!-- L1.7 -->
+					<!-- Rohre-->
+					<Model mesh="Rohr.mesh" position="295,5,-35" scale=10 roll=90 yaw=90 pitch=-90/> 						<!-- L1.8 -->
+					<Model mesh="Rohr.mesh" position="395,5,-25" scale=10 roll=90 yaw=90 pitch=-90/>						<!-- L1.9 -->
+					<Model mesh="Rohr.mesh" position="475,5,-15" scale=10 roll=90 yaw=90 pitch=-90 />						<!-- L1.10 -->
+					<Model mesh="Rohr.mesh" position="585,5,-15" scale=10 roll=90 yaw=90 pitch=-90 />						<!-- L1.11 -->	
+
+					<SOBQBlock collisionType="static" type="Mushroom" position="650,0,30" mass='-1'>
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/> 													<!-- L1.12 --> 
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>			
+					
+					
+
+
+
+
+					<StaticEntity collisionType="static"  mass='-1'>
+						<collisionShapes>
+							
+							<BoxCollisionShape position="210,0,20" halfExtents="5,5,5" /> 						<!-- 1.3 -->
+							<BoxCollisionShape position="230,0,20" halfExtents="5,5,5" /> 						<!-- 1.5 -->
+							<BoxCollisionShape position="250,0,20" halfExtents="5,5,5" /> 						<!-- 1.7 -->
+							
+
+						</collisionShapes>
+					</StaticEntity>
+
+
+					<StaticEntity collisionType="static" >
+						<collisionShapes>
+							
+
+							<BoxCollisionShape position="295,0,-4" halfExtents="12,5,12" /> 					<!-- 1.8 -->
+							<BoxCollisionShape position="395,0,1" halfExtents="12,5,17" /> 						<!-- 1.9 -->
+							<BoxCollisionShape position="475,0,6" halfExtents="12,5,22" /> 						<!-- 1.10 -->
+							<BoxCollisionShape position="585,0,6" halfExtents="12,5,22" /> 						<!-- 1.11 -->
+
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+
+
+
+					<!-- Boden 2 -->
+					<Model mesh="Cube2.12.mesh" position="710,0,-30" scale=10 Pitch=90/>						<!-- B2.1 -->
+					<Model mesh="Cube2.3.mesh" position="830,0,-30" scale=10 Pitch=90/>							<!-- B2.2 -->
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="780,0,-20" halfExtents="75,5,5" />
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+
+					<!-- Luft 2 -->
+					<Model mesh="Cube1.1.mesh" position="770,0,20" scale=10/>									<!-- L2.1 -->
+
+					<SOBQBlock collisionType="static" type="Mushroom" position="780,0,20" mass='-1'>			<!-- L2.2 -->
+						<attached>
+							<Model mesh="QCube.mesh"  scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<Model mesh="Cube1.1.mesh" position="790,0,20" scale=10/>									<!-- L2.3 -->
+					<Model mesh="Cube1.6.mesh" position="800,0,60" scale=10/>									<!-- L2.4 -->
+					<Model mesh="Cube1.1.mesh" position="860,0,60" scale=10/>									<!-- L2.5 -->
+					<Model mesh="Cube1.1.mesh" position="870,0,60" scale=10/>									<!-- L2.6 -->
+
+					<StaticEntity collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="770,0,20" halfExtents="5,5,5" />									<!-- 2.1 -->
+							
+							<BoxCollisionShape position="790,0,20" halfExtents="5,5,5" />									<!-- 2.3 -->
+							<BoxCollisionShape position="835,0,60" halfExtents="40,5,5" />									<!-- 2.4 to 2.6 -->
+
+
+
+
+						</collisionShapes>
+					</StaticEntity>
+					
+
+					<!-- Luft 3 -->
+					<Model mesh="Cube1.3.mesh" position="910,0,60" scale=10/> 												<!-- L3.1 -->
+
+					<SOBQBlock collisionType="static" type="Coin" position="940,0,60" mass='-1'> 				 			<!-- L3.2 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<SOBQBlock collisionType="static" type="Mushroom" position="940,0,20" mass='-1'> 						<!-- L3.3 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+							
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<Model mesh="Cube1.1.mesh" position="1000,0,20" scale=10/>												<!-- L3.4 -->
+
+
+					<SOBQBlock collisionType="static" type="Mushroom" position="1010,0,20" mass='-1'> 						 <!-- L3.5 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<SOBQBlock collisionType="static" type="Coin" position="1060,0,20" mass='-1'> 							<!-- L3.6 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					
+					<SOBQBlock collisionType="static" type="Mushroom" position="1090,0,60" mass='-1'> 						 <!-- L3.7 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<SOBQBlock collisionType="static" type="Coin" position="1090,0,20" mass='-1'> 							<!-- L3.8 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+					
+					<SOBQBlock collisionType="static" type="Coin" position="1120,0,20" mass='-1'> 							<!-- L3.9 -->
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>					
+
+					<Model mesh="Cube1.1.mesh" position="1180,0,20" scale=10/> 												<!-- L3.10 -->
+
+					<Model mesh="Cube1.3.mesh" position="1210,0,60" scale=10/> 												<!-- L3.11 -->
+
+					<Model mesh="Cube1.1.mesh" position="1280,0,60" scale=10/> 												<!-- L3.12 -->
+
+					<SOBQBlock collisionType="static" type="Coin" position="1290,0,60" mass='-1'> 							<!-- L3.13 -->
+						<attached>
+							<Model mesh="QCube.mesh" type="Mushroom" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+
+					<SOBQBlock collisionType="static" type="Coin" position="1300,0,60" mass='-1'> 							<!-- L3.14 -->
+						<attached>
+							<Model mesh="QCube.mesh" type="Mushroom" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock>
+
+					<Model mesh="Cube1.1.mesh" position="1310,0,60" scale=10/> 												<!-- L3.15 -->
+					<Model mesh="Cube1.1.mesh" position="1290,0,20" scale=10/> 												<!-- L3.16 --> 
+					<Model mesh="Cube1.1.mesh" position="1300,0,20" scale=10/> 												<!-- L3.17 -->
+					
+
+					
+					<Model mesh="Dreieck.mesh" position="1370,0,-10" scale=10 Roll=90 Pitch=90 yaw=90/> 					<!-- L3.18 --> 
+					<Model mesh="Dreieck.mesh" position="1400,0,-10" scale=10 Roll=90 Pitch=-90 yaw=90/> 					<!-- L3.19 -->
+					<Model mesh="Dreieck_links+1.mesh" position="1510,0,-10" scale=10 Roll=90 Pitch=90 yaw=90/> 			<!-- L3.20 -->  
+					
+
+
+					<StaticEntity collisionType="static">
+						<collisionShapes>
+							
+							<BoxCollisionShape position="1355,0,-10" halfExtents="20,5,5" /> 								<!-- 3.18 -->
+							<BoxCollisionShape position="1360,0,0" halfExtents="15,5,5" />
+							<BoxCollisionShape position="1365,0,10" halfExtents="10,5,5" />
+							<BoxCollisionShape position="1370,0,20" halfExtents="5,5,5" />
+
+							<BoxCollisionShape position="1415,0,-10" halfExtents="20,5,5" /> 								<!-- 3.19--> 
+							<BoxCollisionShape position="1410,0,0" halfExtents="15,5,5" />
+							<BoxCollisionShape position="1405,0,10" halfExtents="10,5,5" />
+							<BoxCollisionShape position="1400,0,20" halfExtents="5,5,5" />
+
+							<BoxCollisionShape position="1500,0,-10" halfExtents="25,5,5" /> 								<!-- 3.20 -->
+							<BoxCollisionShape position="1505,0,0" halfExtents="20,5,5" />
+							<BoxCollisionShape position="1510,0,10" halfExtents="15,5,5" />
+							<BoxCollisionShape position="1515,0,20" halfExtents="10,5,5" />
+							
+
+
+
+
+						</collisionShapes>
+					</StaticEntity>
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="920,0,60" halfExtents="15,5,5" /> 							<!-- 3.1 -->
+
+							<BoxCollisionShape position="1000,0,20" halfExtents="5,5,5" /> 							<!-- 3.4 -->
+
+
+							<BoxCollisionShape position="1180,0,20" halfExtents="5,5,5" /> 							<!-- 3.10 -->
+							<BoxCollisionShape position="1220,0,60" halfExtents="15,5,5" /> 						<!-- 3.11 -->
+							<BoxCollisionShape position="1280,0,60" halfExtents="5,5,5" /> 							<!-- 3.12 -->
+							<BoxCollisionShape position="1310,0,60" halfExtents="5,5,5" /> 							<!-- 3.15 -->
+							<BoxCollisionShape position="1300,0,20" halfExtents="10,5,5" /> 						<!-- 3.16 and 3.17-->
+							
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+					<!-- Boden3 -->
+					<Model mesh="Cube2.12.mesh" position="890,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1010,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1130,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1250,0,-30" scale=10 Pitch=90/>
+
+					<Model mesh="Cube2.12.mesh" position="1370,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.2.mesh" position="1490,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.2.mesh" position="1510,0,-30" scale=10 Pitch=90/>
+					
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="1205,0,-20" halfExtents="320,5,5" />
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+
+					<!-- Luft4 -->
+					<Model mesh="Dreieck.mesh" position="1560,0,-10" scale=10 Roll=90 Pitch=-90 yaw=90/> 			<!-- L4.1 -->
+
+					<Model mesh="Rohr.mesh" position="1645,5,-35" scale=10  roll=90 yaw=90 pitch=-90 /> 			<!-- L4.2 -->
+
+					<Model mesh="Cube1.1.mesh" position="1690,0,20" scale=10/> 										<!-- L4.3 -->
+					<Model mesh="Cube1.1.mesh" position="1700,0,20" scale=10/> 										<!-- L4.4 -->
+
+					<SOBQBlock collisionType="static" type="Coin" position="1710,0,20" mass='-1'> 					<!-- L4.5 -->				
+						<attached>
+							<Model mesh="QCube.mesh" scale=10 pitch=90/>
+							<Model mesh="QCube-grey.mesh" scale=10 pitch=90 visible=false/>				
+						</attached>
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBQBlock> 
+
+					<Model mesh="Cube1.1.mesh" position="1720,0,20" scale=10/> 										<!-- L4.6 -->
+					<Model mesh="Rohr.mesh" position="1805,5,-35" scale=10  roll=90 yaw=90 pitch=-90 /> 			<!-- L4.7 -->
+					<Model mesh="Dreieckgross.mesh" position="1850,0,-10" scale=10 pitch=90 /> 						<!-- L4.8 -->
+
+
+
+
+					<Model mesh="Schloss.mesh" position="2050,40,60" scale=12 pitch=90/>					<!-- L4.12 -->
+					<Model mesh="Fahne.mesh" position="1984,-5,88" scale=10 pitch=90/>						<!-- L4.11 -->
+					<Model mesh="Fahnenstange.mesh" position="1990,0,95" pitch=90 scale=3/>					<!-- L4.10 -->
+					<Model mesh="Fundament.mesh" position="1990,0,-10" scale=10 yaw=180/>					<!-- L4.9 -->
+
+
+
+					
+					<!-- FLAG -->
+					<SOBFlagstone points = 100  position="1990,0,10" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 200  position="1990,0,20" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 400  position="1990,0,30" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 800  position="1990,0,40" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 1600  position="1990,0,50" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 2200  position="1990,0,60" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 2700  position="1990,0,70" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 3400  position="1990,0,80" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+					<SOBFlagstone points = 4000  position="1990,0,90" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBFlagstone>
+
+
+					<!-- Castlestone -->
+					<SOBCastlestone position="2060,0,-10" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBCastlestone>
+
+					<SOBCastlestone position="2050,40,-10" collisionType="static">
+						<collisionShapes>
+							<BoxCollisionShape position="0,0,0" halfExtents="5,5,5" />
+						</collisionShapes>
+					</SOBCastlestone>
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="2050,20,-20" halfExtents="5,20,5" />
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+
+							<BoxCollisionShape position="1690,0,20" halfExtents="5,5,5" /> 					<!-- 4.3 -->
+							<BoxCollisionShape position="1700,0,20" halfExtents="5,5,5" /> 					<!-- 4.4 -->
+							<BoxCollisionShape position="1720,0,20" halfExtents="5,5,5" /> 					<!-- 4.6 -->
+
+
+						</collisionShapes>
+					</StaticEntity>
+
+
+					<StaticEntity collisionType="static">
+						<collisionShapes>
+
+							<BoxCollisionShape position="1575,0,-10" halfExtents="20,5,5" /> 					<!-- 4.1--> 
+							<BoxCollisionShape position="1570,0,0" halfExtents="15,5,5" />
+							<BoxCollisionShape position="1565,0,10" halfExtents="10,5,5" />
+							<BoxCollisionShape position="1560,0,20" halfExtents="5,5,5" />
+
+							<BoxCollisionShape position="1645,0,-4" halfExtents="12,5,12" /> 					<!-- 4.2 -->
+
+
+							<BoxCollisionShape position="1805,0,-4" halfExtents="12,5,12" /> 					<!-- 4.7 -->
+
+							<BoxCollisionShape position="1860,0,-10" halfExtents="45,5,5" /> 					<!-- 4.8 -->
+							<BoxCollisionShape position="1865,0,0" halfExtents="40,5,5" />
+							<BoxCollisionShape position="1870,0,10" halfExtents="35,5,5" />
+							<BoxCollisionShape position="1875,0,20" halfExtents="30,5,5" />
+							<BoxCollisionShape position="1880,0,30" halfExtents="25,5,5" />
+							<BoxCollisionShape position="1885,0,40" halfExtents="20,5,5" />
+							<BoxCollisionShape position="1890,0,50" halfExtents="15,5,5" />
+							<BoxCollisionShape position="1895,0,60" halfExtents="10,5,5" />
+							<BoxCollisionShape position="1990,0,125" halfExtents="5,5,30" />
+							<BoxCollisionShape position="1940,0,150" halfExtents="45,5,5" />
+							
+
+
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+
+					
+
+					//Boden4
+					<Model mesh="Cube2.12.mesh" position="1560,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1680,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1800,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="1920,0,-30" scale=10 Pitch=90/>
+					<Model mesh="Cube2.12.mesh" position="2040,0,-30" scale=10 Pitch=90/>
+
+
+					
+					<Model mesh="Cube1.3.mesh" position="1990,10,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="1990,20,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="1990,30,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="1990,40,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="1960,10,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="1980,20,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="1970,20,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="1980,30,-20" scale=10 Pitch=90/>
+
+					<Model mesh="Cube1.1.mesh" position="2000,50,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="2010,50,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="2010,60,-20" scale=10 Pitch=90/>
+					
+
+					<Model mesh="Cube1.6.mesh" position="2020,10,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,20,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,30,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,40,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,50,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,60,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2020,70,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2080,10,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2080,20,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2080,30,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2080,40,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.6.mesh" position="2080,50,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="2080,60,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.1.mesh" position="2110,60,-20" scale=10 Pitch=90/>
+					<Model mesh="Cube1.3.mesh" position="2080,70,-20" scale=10 Pitch=90/>
+
+					
+
+					<StaticEntity collisionType="static" mass='-1'>
+						<collisionShapes>
+							<BoxCollisionShape position="1855,0,-20" halfExtents="300,5,5" />
+						</collisionShapes>
+					</StaticEntity>
+
+
+
+
+
+
+					
+
+
+				</Scene>
+			</Level>
+
Index: code/branches/HUD_HS16/data/levels/Spacerace2.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/Spacerace2.oxw	(revision 11501)
+++ 	(revision )
@@ -1,220 +1,0 @@
-<LevelInfo
- name = "Spacerace 2"
- description = "New Spacerace with Multiple Paths."
- tags = "gametype"
- screenshot = "spacerace2.png"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-
-  include("templates/spaceshipAssff.oxt")
-
-?>
-
-
-<?lua
-  include("templates/spaceshipAssff2.oxt")
-  include("templates/spaceshipPirate.oxt")
-?>
-
-<Level
- name         = "Spacerace2"
- description  = "Just a few tests"
- plugins = gametypes
- gametype = SpaceRace
->
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <Scene
-    ambientlight = "0.8, 0.8, 0.8"
-    skybox       = "Orxonox/Starbox"
-  >
-
-    <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"/>
-
-
-    <SpaceRaceManager>
-        <checkpoints>
-            <RaceCheckPoint name="checkpoint1" position="0,-2000,1000" direction="0,-1,1" collisionType="static" scale="1" distance="40" checkpointindex="0" islast="false" nextcheckpoints="1,2,-1">
-                <attached>
-                    <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-                </attached>
-                <collisionShapes>
-                    <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-                    <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-                </collisionShapes>
-            </RaceCheckPoint>
-
-            <RaceCheckPoint name="checkpoint2" position="0,2100,2300" direction="0,-1,1" collisionType="static" scale="1" distance="40" checkpointindex="1" islast="false" nextcheckpoints="3,-1,-1">
-                <attached>
-                    <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-                </attached>
-                <collisionShapes>
-                    <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-                    <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-                </collisionShapes>
-            </RaceCheckPoint>
-
-            <RaceCheckPoint name="checkpoint3" position="0,700,2700" direction="0,-1,1" collisionType="static" scale="1" distance="40" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
-                <attached>
-                    <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-                </attached>
-                <collisionShapes>
-                    <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-                    <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-                </collisionShapes>
-            </RaceCheckPoint>
-
-            <RaceCheckPoint name="checkpoint4" position="0,-400,300" direction="0,-1,1" collisionType="static" scale="1" distance="40" checkpointindex="3" islast="true">
-                <attached>
-                    <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-                </attached>
-                <collisionShapes>
-                    <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-                    <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-                    <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-                </collisionShapes>
-            </RaceCheckPoint>
-        </checkpoints>
-    </SpaceRaceManager>
-
-
-    <SpaceShip position="0,0,200" lookat="0,0,0">
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <WaypointPatrolController alertnessradius=0 team=10>
-          <waypoints>
-            <Model mesh="cube.mesh" scale=0 position="0,-2000,1000" />
-            <Model mesh="cube.mesh" scale=0 position="0,2100,2300" />
-            <Model mesh="cube.mesh" scale=0 position="0,-400,300" />
-          </waypoints>
-        </WaypointPatrolController>
-      </controller>
-    </SpaceShip>
-
-    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
-	
-	<!-- SOUNDS & MUSIC -->
-    <WorldSound name="scoreSound" position="-200,0,0" source="sounds/ReadyGo.ogg" >
-      <events>
-        <play>
-          <EventListener event="start" />
-        </play>
-      </events>
-    </WorldSound>
-    <DistanceTrigger name="start" position="-200,0,0"  target="Pawn" distance=100 stayActive="true" delay=0.5 />
-    
-    <WorldAmbientSound source="Ganymede.ogg" looping="true" playOnLoad="true" />
-
-    <!-- ------------------Planet----------------- -->
-    <Planet position="0,0,0" scale=300 pitch=-90 mesh="iceplanet.mesh" atmosphere="atmosphere1" rotationaxis="8,1,0" rotationrate="1" atmospheresize=224.0f imagesize=1024.0f />
-    <StaticEntity position="0,0,0" collisionType=static>
-        <collisionShapes>
-            <SphereCollisionShape radius="399" />
-        </collisionShapes>
-    </StaticEntity>
-
-    <!-- ---------------asteroid ellipse----------------- -->
-    <?lua
-    max = 20
-    for i = 0, max, 1
-    do
-    y = math.sin(i/max*6)*2000
-    z = math.cos(i/max*6)*2500
-    x = 0
-    ?>
-    <?lua
-    for k = 1, 15, 1
-    do
-    j = math.random()
-    ?>
-
-    <MovableEntity
-      position = "<?lua print(x + math.random() * 500) ?>,<?lua print(y + math.random() * 500) ?>,<?lua print(z + math.random() * 1000) ?>"
-      collisionType = "dynamic"
-      linearDamping = "0.5"
-      angularDamping = "0.01"
-      collisiondamage = "0.01"
-      enablecollisiondamage = "true"
-      scale="<?lua print(j * 5) ?>" >
-      <attached>
-        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
-      <?lua if k == 5 then ?><attached><!-- ---------asteroid fog----- -->
-            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
-          </attached> <?lua end ?>
-        </Model>
-      </attached>
-      <collisionShapes>
-        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
-      </collisionShapes>
-    </MovableEntity>
-    <?lua
-    end
-    ?>
-    <?lua end ?>
-
-    <!-- ---------------ForceFields----------------- -->
-    <ForceField position="0,-700,2700" direction="0,1,0" diameter=500 velocity=2000 length=600 />
-        <MovableEntity position="0,-400,2700">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-200,<?lua print(i*40) ?>,0" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="200,<?lua print(i*40) ?>,0" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-     <ForceField position="0,2500,2000" direction="0,0,-1" diameter=250 velocity=2000 length=600 />
-        <MovableEntity position="0,2500,2000">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-100,0,-<?lua print(i*40) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,0,-<?lua print(i*40) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-    <ForceField position="0,1300,-800" direction="0,-1,-1" diameter=250 velocity=2000 length=800 />
-        <MovableEntity position="0,1300,-800">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,20,1 do ?>
-                    <Billboard position="-100,<?lua print(-i*40*0.7071) ?>,<?lua print(-i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,<?lua print(-i*40*0.7071) ?>,<?lua print(-i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-    <ForceField position="0,-1400,-700" direction="0,-1,1" diameter=250 velocity=2000 length=600 />
-        <MovableEntity position="0,-1400,-700">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-100,<?lua print(-i*40*0.7071) ?>,<?lua print(i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,<?lua print(-i*40*0.7071) ?>,<?lua print(i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-
-
-  </Scene>
-</Level>
-
Index: code/branches/HUD_HS16/data/levels/StoryModeMap.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/StoryModeMap.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/StoryModeMap.oxw	(revision 11502)
@@ -0,0 +1,94 @@
+
+
+<LevelInfo
+ name = "StoryModeMap"
+ description = "The Campaign Menu Map with all the Campaignmissons in it"
+ tags = "Campaign, Campaignmissons"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("StoryModeHUD.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/StoryMode.oxt")
+
+  include("templates/lodInformation.oxt")
+?>
+
+<Level
+gametype = StoryMode
+>
+
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.2, 0.2, 0.2"
+    skybox       = "Orxonox/Starbox"
+  >
+
+
+<StaticEntity position="0,0,0" direction="0,0,0" >
+  <attached>
+
+    <Model position="600,370,0" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="600,370,-80"  material="Flares/lensflare" scale=4.5 />
+  
+    <Model position="100,350,-250" mesh="planets/moon.mesh" scale=100  />
+    <Billboard colour="1,1,0.05" position="100,350,-330"  material="Flares/lensflare" scale=4.5 />
+
+    <Model position="-600,250,-500" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="-600,250,-580"  material="Flares/lensflare" scale=5 />
+
+    <Model position="-1000,50,-750" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="-1000,50,-830"  material="Flares/lensflare" scale=5 />
+
+    <Model position="-900,-400,-1000" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="-900,-400,-1080"  material="Flares/lensflare" scale=5 />
+
+    <Model position="-500,-700,-1250" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="-500,-700,-1330"  material="Flares/lensflare" scale=5 />
+
+    <Model position="0,-900,-1500" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="0,-900,-1580" material="Flares/lensflare" scale=5 />
+
+    <Model position="700,-1100,-1750" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="700,-1100,-1830"  material="Flares/lensflare" scale=5 />
+
+    <Model position="1500,-1300,-2000" mesh="planets/moon.mesh" scale=100 />
+    <Billboard colour="1,1,0.05" position="1500,-1300,-2080"  material="Flares/lensflare" scale=5 />
+
+  </attached>
+</StaticEntity>
+
+
+
+
+
+
+
+
+<Template name=spaceshipassff>
+  <ControllableEntity
+   camerapositiontemplate = spaceshipassffcameras
+
+   
+  >
+
+  </ControllableEntity>
+
+
+</Template>
+
+
+
+    <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="000.000, 000.000, 1000.000" orientation="0, 0, 0, -1" pawndesign=StoryMode />
+    
+  </Scene>
+</Level>
+
Index: code/branches/HUD_HS16/data/levels/SurfaceRacePresentation.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/SurfaceRacePresentation.oxw	(revision 11501)
+++ 	(revision )
@@ -1,377 +1,0 @@
-<LevelInfo
- name = "Surface Race Presentation"
- description = "just awesome 2.0"
- screenshot = "surfaceRace.png"
- tags = "gametype, shipselection"
- startingships = "spaceshipassff, spaceshipghost, spaceshipspacecruiser, spaceshiprace"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-  include("templates/spaceshipRace.oxt")
-  include("templates/spaceshipAssff.oxt")
-  include("templates/spaceshipGhost.oxt")
-  include("templates/spaceshipSpacecruiser.oxt")
-  include("templates/pickupRepresentationTemplates.oxt")
-
-?>
-
-<Level
-plugins = gametypes
-gametype = SpaceRace
->
-
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <Scene
-    ambientlight = "2.0, 2.0, 2.0"
-    skybox       = "Orxonox/skyBoxClouds"
-    gravity      = "0,-75,0"
-    negativeWorldRange = "-100000, -100000, -100000"
-    positiveWorldRange = " 100000,  100000,  100000"
-    hasPhysics   = true
-  >
-
-    <Template name=PortalDefault>
-        <PortalEndPoint>
-            <attached>
-                <Model mesh="Spacegate.mesh" scale="3"/>
-            </attached>
-        </PortalEndPoint>
-    </Template>
-
-    <PortalEndPoint position="6000,8050,2500" id="1" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0"/>
-    <PortalEndPoint position="6100,8050,-4500" id="2" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0"/>
-    <PortalLink fromID="1" toID="2" />
-    <PortalLink fromID="2" toID="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"/>
-
-
-    <Model position="4200,8050,-1000" scale=10 mesh="debris-pile01.mesh" shadow=true />
-    <Model position="4200,8050,-1000" scale=10 mesh="debris-pile02.mesh" shadow=true />
-    <Model position="4200,8050,-1000" scale=10 mesh="debris-pile03.mesh" shadow=true />
-
-    <MovableEntity position="-700,8090,-300" velocity="80,0,0" rotationaxis="1,0,1" rotationrate=200>
-      <attached>
-        <Model position="0,0,-20" scale=10 mesh="cokebottle.mesh" />
-      </attached>
-    </MovableEntity>
-
-
-<SpaceRaceManager>
- <checkpoints>
-    <RaceCheckPoint name="checkpoint1" position="0,8050,-1000" direction="0,1,0" collisionType="static" scale="4" distance="150" checkpointindex="0" islast="false" nextcheckpoints="1,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-    <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint2" position="1000,8050,-4000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="1" islast="false" nextcheckpoints="2,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-           <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint3" position="3000,8050,-4000" direction="0,1,0" roll="-45" collisionType="static" scale="4" distance="150" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint4" position="4000,8050,-1000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="3" islast="false" nextcheckpoints="4,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint5" position="4000,8050,0" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="4" islast="false" nextcheckpoints="5,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint6" position="3000,8050,1000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="5" islast="false" nextcheckpoints="6,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint7" position="0,8050,2000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="150" checkpointindex="6" islast="false" nextcheckpoints="7,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-      <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint8" position="-4000,8050,3000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="7" islast="false" nextcheckpoints="8,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint9" position="-4000,8050,5000" direction="0,1,0" roll="-45" collisionType="static" scale="4" distance="150" checkpointindex="8" islast="false" nextcheckpoints="9,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-         <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint10" position="-3000,8050,6000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="150" checkpointindex="9" islast="false" nextcheckpoints="10,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint11" position="0,8050,6000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="120" checkpointindex="10" islast="false" nextcheckpoints="11,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint12" position="6000,8050,6000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="11" islast="false" nextcheckpoints="12,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-      <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint13" position="5500,8050,3000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="12" islast="false" nextcheckpoints="13,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-
-    <RaceCheckPoint name="checkpoint14" position="6000,8050,-5000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="13" islast="true" >
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-        </collisionShapes>
-    </RaceCheckPoint>
-</checkpoints>
-</SpaceRaceManager>
-
- <SpawnPoint team=0 position="0,8050,0" lookat="0,8000,-8000" spawnclass=SpaceShip pawndesign=shipselection />
-
-
-    <!-- -----------------------Zylinder---------------------------- -->
-<StaticEntity position="2750,8050,6000" direction="1,0,0" roll="90"  scale="4" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="cylinder.mesh" scale3D="100,100,400" />
-    <!--
-                <Model position="0,80,600" mesh="testcube.mesh" scale3D="90,18,-600" />
-        <Model position="0,-80,600" mesh="testcube.mesh" scale3D="90,18,-600" />
-        <Model position="80,0,600" mesh="testcube.mesh" scale3D="18,90,-600" />
-        <Model position="-80,0,600" mesh="testcube.mesh" scale3D="18,09,-600" />
-    -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,320,2400"            halfExtents="360,72,2400" />
-        <BoxCollisionShape position="0,-320,2400"      halfExtents="360,72,2400" />
-        <BoxCollisionShape position="320,0,2400"            halfExtents="72,360,2400" />
-        <BoxCollisionShape position="-320,0,2400"     halfExtents="72,360,2400" />
-
-
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-<!-- ------------------Cube between gate 4 and 5----------------- -->
-<StaticEntity position="4465,8050,-500" direction="0,0,0"   scale="1" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="blackcube.mesh" scale3D="450,600,50" />
-<!--
-                <Model position="0,0,0" mesh="testcube.mesh" scale3D="450,600,50" />
-        -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,0,0"            halfExtents="450,600,50" />
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-<StaticEntity position="3535,8050,-500" direction="0,0,0"   scale="1" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="blackcube.mesh" scale3D="450,600,50" />
-<!--
-                <Model position="0,0,0" mesh="testcube.mesh" scale3D="450,600,50" />
-        -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,0,0"            halfExtents="450,600,50" />
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-
-
-
-    <!-- ------------------Boden----------------- -->
-  <StaticEntity position="0,0,0" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
-     <attached>
-        <Model position="0,0,0" mesh="CubeGround.mesh" scale3D="8000,8000,8000" />
-      </attached>
-      <collisionShapes>
-        <BoxCollisionShape position="0,50,0" halfExtents="8000,8000,8000" />um j?:P"{
-
-      </collisionShapes>
-</StaticEntity>
-
-
-<!-- ---------------------PickUp---------------------- -->
-
-
-   <PickupSpawner pickup=smallspeedpickup position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" />
-   <PickupSpawner pickup=mediumspeedpickup position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" />
-   <PickupSpawner pickup="mediumshrinkpickup" position="3000,8050,-4000" triggerDistance="40" respawnTime="60"  maxSpawnedItems="5" scale="8" />
-
-
-
-
- <!-- ---------------asteroid ellipse----------------- -->
-
- <?lua
-    max = 15
-    for i = 0, max, 1
-    do
-    x=-12000
-    y=10000
-    z=-12000
-
-    ?>
-    <?lua
-    for k = 1, 15, 1
-    do
-    j = math.random()
-    ?>
-
-    <MovableEntity
-      position = "<?lua print(x + math.random() * 20000) ?>,<?lua print(y + math.random() * 5000) ?>,<?lua print(z + math.random() * 20000) ?>"
-      collisionType = "dynamic"
-      linearDamping = "0.5"
-      angularDamping = "0.5"
-      collisiondamage = "100"
-      enablecollisiondamage = "true"
-      scale="<?lua print(j * 5) ?>" >
-      <attached>
-        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
-      <?lua if k == 0 then ?><attached><!-- ---------asteroid fog----- -->
-            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
-          </attached> <?lua end ?>
-        </Model>
-      </attached>
-      <collisionShapes>
-        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
-      </collisionShapes>
-    </MovableEntity>
-    <?lua
-    end
-    ?>
-    <?lua end ?>
-
-  </Scene>
-</Level>
-
Index: code/branches/HUD_HS16/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/emptyLevel.oxw	(revision 11501)
+++ code/branches/HUD_HS16/data/levels/emptyLevel.oxw	(revision 11502)
@@ -1,4 +1,4 @@
 <LevelInfo
- name = "Empty level"
+ name = "emptyLevel"
  description = "A level with absolutely nothing in it."
  tags = "test"
@@ -10,8 +10,10 @@
   include("HUDTemplates3.oxo")
   include("templates/lodInformation.oxt")
+  include("templates/HeavyCruiser.oxt")
 ?>
 
 <?lua
   include("templates/spaceshipEscort.oxt")
+  include("templates/endurancetest_template.oxt")
 ?>
 
@@ -29,4 +31,10 @@
     <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 team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    <ModularSpaceShip velocity= "20,0,0" position="0,0,200" lookat= "0,0,0" health="1000" maxhealth="1000" initialhealth="1000">
+      <templates>
+        <Template link=endurance />
+      </templates>
+    </ModularSpaceShip>
     
   </Scene>
Index: code/branches/HUD_HS16/data/levels/events.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/events.oxw	(revision 11501)
+++ code/branches/HUD_HS16/data/levels/events.oxw	(revision 11502)
@@ -57,4 +57,44 @@
     -->
 
+    <DistanceTrigger name="test" position="0,0,0" target="Pawn" distance=25 stayActive="true" />
+    <Backlight position="0,0,0" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,0,1"/>
+    
+    <NextQuestion  question="Continue?" a1="yes" a2="no" >
+     <possibleQuestions> 
+        <NextQuestion  question="Are you sure?" a1="yep let me continue" a2="no actually not" />
+        <NextQuestion  question="Why?" a1="Got a dentist's appointment" a2="this sucks" >
+        <possibleQuestions>
+          <NextQuestion  question="Are your teeth that bad mate?" a1="yep" a2="leave me alone godammit" />
+          <NextQuestion  question="You suck" a1="..." a2="Im going now okay" />
+        </possibleQuestions>
+      </NextQuestion>
+      </possibleQuestions>    
+      <events>
+        <execute>
+           <EventListener event="test" />
+        </execute>
+      </events>
+    </NextQuestion>
+
+    <DistanceTrigger name="test1" position="100,300,0" target="Pawn" distance=25 stayActive="true" />
+    <Backlight position="100,300,0" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,1,1"/>
+    
+    <NextQuestion  question="Wazzp bud?" a1="yes" a2="no" >
+     <possibleQuestions> 
+        <NextQuestion  question="Do you like fish" a1="yep let me continue" a2="no actually not" />
+        <NextQuestion  question="Whats your favourite pastime?" a1="Got a dentist's appointment" a2="this sucks" >
+        <possibleQuestions>
+          <NextQuestion  question="Whatever?" a1="yep" a2="leave me alone godammit" />
+          <NextQuestion  question="Turtles then?" a1="..." a2="Im going now okay" />
+        </possibleQuestions>
+      </NextQuestion>
+      </possibleQuestions>    
+      <events>
+        <execute>
+           <EventListener event="test1" />
+        </execute>
+      </events>
+    </NextQuestion>
+
 
     <!-- red -->
Index: code/branches/HUD_HS16/data/levels/includes/MFalconWeapon.oxi
===================================================================
--- code/branches/HUD_HS16/data/levels/includes/MFalconWeapon.oxi	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/includes/MFalconWeapon.oxi	(revision 11502)
@@ -0,0 +1,30 @@
+    <weaponslots>
+      <WeaponSlot position="9.5,0,0" />
+      <WeaponSlot position=" 9.5,0,0" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+    </weaponsets>
+    <weaponpacks>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+        </links>
+        <Weapon>
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
+        </Weapon>
+        <Weapon>
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+      </WeaponPack>
+    </weaponpacks>
+    <munition>
+      <LaserMunition initialmagazines=8 maxmagazines=8 munitionpermagazine=10 replenishamount=1 replenishinterval=7.5/>
+    </munition>
Index: code/branches/HUD_HS16/data/levels/newnewnewspacerace.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/newnewnewspacerace.oxw	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/newnewnewspacerace.oxw	(revision 11502)
@@ -0,0 +1,507 @@
+
+  <!-- Authors:
+Louis Meile
+Berkay Berabi
+@2016
+-->
+
+<LevelInfo
+ name = "The Space Race "
+ description = "Fell The Blaze of The ONE and ONLY Space Race"
+ tags = "gametype"
+ screenshot = "spacerace.png"
+/>
+   
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/fastship.oxt")
+  include("templates/spaceshipPirate.oxt")
+
+  include("templates/spaceshipAssff.oxt")
+  include("templates/pickupRepresentationTemplates.oxt")
+
+?>
+
+<Level
+ plugins = "gametypes"
+ gametype = "SpaceRace"
+>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/skyBoxMoreNebula"
+  >
+  
+    <?lua
+      include("includes/pickups.oxi")
+    ?>
+
+
+  <!-- SOUNDS & MUSIC 
+
+to hear the sound one has to use a headphones  
+countdown at the beginning of the race 
+at the and of the countdown we have the sound "go"
+racetheme will be played during the whole race-->
+  
+   
+<WorldSound name="Countdown" position="0,0,0" source="sounds/Countdown.ogg" >
+      <events>
+        <play>
+          <EventListener event="start1" />
+        </play>
+      </events>
+    </WorldSound>
+
+
+<WorldSound name="Go" position="0,0,0" source="sounds/Go.ogg" >
+      <events>
+        <play>
+          <EventListener event="go" />
+        </play>
+      </events>
+    </WorldSound>
+    <DistanceTrigger name="start1" position="0,0,0"  target="Pawn" distance=100 stayActive="true" delay=0.5 />
+    <DistanceTrigger name="go" position="0,0,0"  target="Pawn" distance=100 stayActive="true" delay=10.5  />
+
+    <DistanceTrigger name="racetheme" position="0,0,0"  target="Pawn" distance=100 stayActive="true" delay=10.75  />
+      <WorldAmbientSound source="racetheme.ogg" looping="true" playOnLoad="false" >
+    <events>
+        <play>
+          <EventListener event="racetheme" />
+        </play>
+      </events>
+    </WorldAmbientSound>
+
+
+    <?lua math.randomseed(98) ?>
+    <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"/>
+    <SimpleNotification message="Reach the last check point within 150 seconds!!" />
+
+    <!-- ------------------SpawnPoint of the human player----------------- -->
+    <!-- to change the starting positions of bots go to spacerace.cc star function -->
+    <SpawnPoint position="-50,0,0" lookat="1,0,0" spawnclass=SpaceShip pawndesign=fastship active="true" />
+
+  <!-- Launch station of the aircrafts also starting place of the race-->
+  <StaticEntity mass="50" position="-400,-20,0" direction="0,-90,0" collisionType="static">
+    <attached>
+      <Model scale="20" mesh="Carrier.mesh" />
+    </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="280,0,-100"      halfExtents="600, 200, 100" />
+        <BoxCollisionShape position="380,300,-64"     halfExtents="280, 40, 48" />
+        <BoxCollisionShape position="380,-300,-64"    halfExtents="280, 40, 48" />
+        <BoxCollisionShape position="308, 188,120"      halfExtents="440, 80, 120" />
+        <BoxCollisionShape position="308,-188,120"     halfExtents="440, 80, 120" />
+        <BoxCollisionShape position="308,0,200"       halfExtents="440, 180, 24" />
+        <BoxCollisionShape position="668,0,280"      halfExtents="108, 80, 80" />
+      </collisionShapes>
+  </StaticEntity>
+
+  <!-- ---------------ForceFields----------------- -->
+    <ForceField position="0,0,0" direction="0,-1,0" diameter=700 velocity=2000 length=2000/>
+
+    <!-- ------------------Planet----------------- -->
+    <Planet position="25000,5000,5000" scale=3000 pitch=-90 mesh="iceplanet.mesh" atmosphere="atmosphere1" rotationaxis="8,1,0" rotationrate="1" atmospheresize=224.0f imagesize=1024.0f />
+    <StaticEntity position="0,0,0" collisionType=static>
+        <collisionShapes>
+            <SphereCollisionShape radius="1" />
+        </collisionShapes>
+    </StaticEntity>
+
+   <!-- ---------------asteroid belt1----------------- -->
+    <?lua
+    max = 50
+    for i = 0, max, 1
+    do
+    x = 800+ i*1000
+    y = -500+ math.cos(i)*20
+    z = -500+ math.sin(i)*20
+    ?>
+    <?lua
+    for k = 1, 15, 1
+    do
+    j = math.random()
+    ?>
+
+    <MovableEntity
+      position = "<?lua print(x + math.random() * 500) ?>,<?lua print(y + math.random() * 1000) ?>,<?lua print(z + math.random() * 1000) ?>"
+      collisionType = "dynamic"
+      linearDamping = "0.5"
+      angularDamping = "0.01"
+      collisiondamage = "0.02"
+      enablecollisiondamage = "true"
+      scale="<?lua print(j * 5) ?>" >
+      <attached>
+        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
+      <?lua if k == 5 then ?><attached><!-- ---------asteroid fog----- -->
+            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
+          </attached> <?lua end ?>
+        </Model>
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
+      </collisionShapes>
+    </MovableEntity>
+    <?lua
+    end
+    ?>
+    <?lua end ?>
+
+   <!-- ---------------asteroid belt2----------------- -->
+    <?lua
+    max = 50
+    for i = 0, max, 1
+    do
+    x = 800+ i*1000
+    y = 100+ math.cos(i)*-20
+    z = 100+ math.sin(i)*-20
+    ?>
+    <?lua
+    for k = 1, 15, 1
+    do
+    j = math.random()
+    ?>
+
+    <MovableEntity
+      position = "<?lua print(x + math.random() * 500) ?>,<?lua print(y + math.random() * 1000) ?>,<?lua print(z + math.random() * 1000) ?>"
+      collisionType = "dynamic"
+      linearDamping = "0.5"
+      angularDamping = "0.01"
+      collisiondamage = "0.02"
+      enablecollisiondamage = "true"
+      scale="<?lua print(j * 5) ?>" >
+      <attached>
+        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
+      <?lua if k == 5 then ?><attached><!-- ---------asteroid fog----- -->
+            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
+          </attached> <?lua end ?>
+        </Model>
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
+      </collisionShapes>
+    </MovableEntity>
+    <?lua
+    end
+    ?>
+    <?lua end ?>
+
+
+    <!-- ------------------Boards----------------- -->
+    <StaticEntity position="1000,160,0" direction="-1,0,0" yaw=90 pitch=0 roll=-30 collisionType="static">
+    <attached>
+      <Model scale="20" mesh="Board1.mesh" />
+    </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0"      halfExtents="5,10,10" />
+      </collisionShapes>
+  </StaticEntity>
+
+  <StaticEntity position="5000,230,500" direction="-1,0,0" yaw=90 pitch=0 roll=-30 collisionType="static">
+    <attached>
+      <Model scale="20" mesh="Board2.mesh" />
+    </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0"      halfExtents="5,10,10" />
+      </collisionShapes>
+  </StaticEntity>
+
+<StaticEntity position="10000,-70,200" direction="-1,0,0" yaw=90 pitch=0 roll=-30 collisionType="static">
+    <attached>
+      <Model scale="20" mesh="Board2.mesh" />
+    </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0"      halfExtents="5,10,10" />
+      </collisionShapes>
+  </StaticEntity>
+
+<!-- ---------------------Checkpoints---------------------- -->
+
+<SpaceRaceManager>
+ <checkpoints>
+    
+    <!-- distance = how far from the middle point of a check point do i have to fly ? distance variable answers this question   -->
+
+
+    <RaceCheckPoint name="checkpoint1" yaw=90 pitch=90 position="1000,30,0" roll="0" direction="0,1,0" collisionType="static" scale="1" distance="60" checkpointindex="0" islast="false" nextcheckpoints="1,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_Green.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint2" yaw=90 pitch=90 position="3000,200,100" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="1" islast="false" nextcheckpoints="2,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint3" yaw=90 pitch=90 position="5000,100,500" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint4"  yaw=90 pitch=90 position="8000,-150,150" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="3" islast="false" nextcheckpoints="4,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint5"  yaw=90 pitch=90 position="10000,-200,200" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="4" islast="false" nextcheckpoints="5,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint6" yaw=90 pitch=90 position="13000,200,400" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="5" islast="false" nextcheckpoints="6,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint7" yaw=90 pitch=90 position="15000,0,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="6" islast="false" nextcheckpoints="7,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint8" yaw=90 pitch=90 position="18000,150,-150" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="7" islast="false" nextcheckpoints="8,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint9" yaw=90 pitch=90 position="21000,200,-120" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="8" islast="false" nextcheckpoints="9,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint10" yaw=90 pitch=90 position="24000,-150,-80" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="9" islast="false" nextcheckpoints="10,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint11" yaw=90 pitch=90 position="27000,-200,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="10" islast="false" nextcheckpoints="11,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint12" yaw=90 pitch=90 position="30000,-300,900" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="11" islast="false" nextcheckpoints="12,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+<RaceCheckPoint name="checkpoint13" yaw=90 pitch=90 position="33000,600,60" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="12" islast="false" nextcheckpoints="13,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+
+<RaceCheckPoint name="checkpoint14" yaw=90 pitch=90 position="35000,120,20" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="13" islast="false" nextcheckpoints="14,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint15" yaw=90 pitch=90 position="38000,-200,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="14" islast="false" nextcheckpoints="15,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint16" yaw=90 pitch=90 position="41000,30,-50" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="15" islast="false" nextcheckpoints="16,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint17" yaw=90 pitch=90 position="44000,90,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="16" islast="false" nextcheckpoints="17,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<RaceCheckPoint name="checkpoint18" yaw=90 pitch=90 position="47000,120,30" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="17" islast="false" nextcheckpoints="18,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+    <RaceCheckPoint name="checkpoint19" yaw=90 pitch=90 position="50000,0,100" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="18" islast="false" nextcheckpoints="19,-1,-1">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_InnerRing.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,70"      halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="0,0,-70"     halfExtents="70, 10, 10" />
+        <BoxCollisionShape position="70,0,0"      halfExtents="10, 10, 70" />
+        <BoxCollisionShape position="-70,0,0"     halfExtents="10, 10, 70" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+<!-- the last checkpoint is bigger and red -->
+    <RaceCheckPoint name="checkpoint20" yaw=90 pitch=90 position="53000,0,0" direction="0,1,0" roll="0" collisionType="static" scale="1" distance="60" checkpointindex="19" islast="true">
+        <attached>
+      <Model position="0,0,0" scale="70" mesh="Checkpoint_Finish.mesh"/>
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="0,0,90"      halfExtents="90, 13, 13" />
+        <BoxCollisionShape position="0,0,-90"     halfExtents="90, 13, 13" />
+        <BoxCollisionShape position="90,0,0"      halfExtents="13, 13, 90" />
+        <BoxCollisionShape position="-90,0,0"     halfExtents="13, 13, 90" />
+    </collisionShapes>
+    </RaceCheckPoint>
+
+
+</checkpoints>
+</SpaceRaceManager>
+
+
+
+<!-- ---------------------PickUps---------------------- -->
+
+    <PickupSpawner pickup=smallshrinkpickup position="10000,-200,200" triggerDistance="60" respawnTime="10" maxSpawnedItems="10" scale="8"/>
+    <PickupSpawner pickup=mediumboostpickup position="24000,-150,-80" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    <PickupSpawner pickup=smallboostpickup position="38000,-200,0" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+
+    <PickupSpawner pickup=smallspeedpickup position="7000,-200,100" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    <PickupSpawner pickup=mediumshinkpickup position="16000,150,50" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+    <PickupSpawner pickup=triplehealthspeedinvisibilitypickup position="41000,-300,100" triggerDistance="60" respawnTime="10" maxSpawnedItems="8" scale="10"/>
+  </Scene>
+</Level>
+ 
Index: code/branches/HUD_HS16/data/levels/spaceRace.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/spaceRace.oxw	(revision 11501)
+++ 	(revision )
@@ -1,483 +1,0 @@
-<LevelInfo
- name = "Old Space Race"
- description = "Have a furious Race in Space: Reach the checkpoints as fast as possible."
- tags = "gametype"
- screenshot = "spacerace.png"
-/>
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-?>
-
-<?lua
-  include("templates/spaceshipAssff.oxt")
-  include("templates/spaceshipPirate.oxt")
-?>
-
-<Level
- plugins = "gametypes"
- gametype = "OldSpaceRace"
->
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <Scene
-    ambientlight = "0.8, 0.8, 0.8"
-    skybox       = "Orxonox/skyBoxMoreNebula"
-  >
-  
-  <!-- SOUNDS & MUSIC -->
-    <WorldSound name="scoreSound" position="0,-2100,0" source="sounds/ReadyGo.ogg" >
-      <events>
-        <play>
-          <EventListener event="start" />
-        </play>
-      </events>
-    </WorldSound>
-    <DistanceTrigger name="start" position="0,-2100,0"  target="Pawn" distance=100 stayActive="true" delay=0.5 />
-  
-    <WorldAmbientSound source="Ganymede.ogg" looping="true" playOnLoad="true" />
-  
-
-    <?lua math.randomseed(98) ?>
-
-    <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"/>
-
-    <SimpleNotification message="Reach the last check point within 150 seconds!!" />
-
-    <!-- ------------------SpawnPoint----------------- -->
-    <SpawnPoint position="0,-2100,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="true" >
-      <events>
-        <activity>
-          <EventTrigger invert="true">
-            <events>
-                <trigger>
-                    <EventListener event="checkpoint2" />
-                </trigger>
-            </events>
-          </EventTrigger>
-        </activity>
-      </events>
-    </SpawnPoint>
-    
-    <!-- ------------------CheckPoints----------------- -->
-    <OldRaceCheckPoint name="checkpoint1" position="0,-2000,1000" direction="0,-1,1" collisionType="static" scale="1" distance="40" checkpointindex="0" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint2" position="0,-900,2300" stayActive="true" collisionType="static" scale="1" distance="40" checkpointindex="1" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <SpawnPoint position="0,0,0" lookat="0,1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <Trigger mode="xor" invert="true" >
-                        <EventTrigger>
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint2" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                        <EventTrigger invert="true">
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint3" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                    </Trigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint3" position="0,700,2700" stayActive="true" direction="0,0,1" collisionType="static" scale="1" distance="40" checkpointindex="2" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <SpawnPoint position="0,0,0" lookat="0,1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <Trigger mode="xor" invert="true" >
-                        <EventTrigger>
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint3" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                        <EventTrigger invert="true">
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint4" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                    </Trigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint4" position="0,2100,2300" stayActive="true" direction="0,1,1" collisionType="static" scale="1" distance="40" checkpointindex="3" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <DistanceTrigger name="trigger3" position="0,0,0" distance=40 stayActive="true" />
-            <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <Trigger mode="xor" invert="true" >
-                        <EventTrigger>
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint4" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                        <EventTrigger invert="true">
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint5" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                    </Trigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint5" position="0,2200,500" stayActive="true" direction="0,1,0" collisionType="static" scale="1" distance="40" checkpointindex="4" islast="false">
-        <attached>
-        <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        <DistanceTrigger name="trigger4" position="0,0,0" distance=40 stayActive="true" />
-        <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-            <events>
-            <activity>
-                <Trigger mode="xor" invert="true" >
-                    <EventTrigger>
-                        <events>
-                            <trigger>
-                                <EventListener event="checkpoint5" />
-                            </trigger>
-                        </events>
-                    </EventTrigger>
-                    <EventTrigger invert="true">
-                        <events>
-                            <trigger>
-                                <EventListener event="checkpoint6" />
-                            </trigger>
-                        </events>
-                    </EventTrigger>
-                </Trigger>
-            </activity>
-            </events>
-        </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint6" position="0,1500,-800" stayActive="true" direction="0,1,-1" collisionType="static" scale="1" distance="40" checkpointindex="5" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <DistanceTrigger name="trigger5" position="0,0,0" distance=40 stayActive="true" />
-            <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <Trigger mode="xor" invert="true" >
-                        <EventTrigger>
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint6" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                        <EventTrigger invert="true">
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint7" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                    </Trigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint7" position="0,200,-1900" stayActive="true" collisionType="static" scale="1" distance="40" checkpointindex="6" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <DistanceTrigger name="trigger6" position="0,0,0" distance=40 stayActive="true" />
-            <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <Trigger mode="xor" invert="true" >
-                        <EventTrigger>
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint7" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                        <EventTrigger invert="true">
-                            <events>
-                                <trigger>
-                                    <EventListener event="checkpoint8" />
-                                </trigger>
-                            </events>
-                        </EventTrigger>
-                    </Trigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint8" position="0,-700,-1400" stayActive="true" direction="0,-1,-1" collisionType="static" scale="1" distance="40" checkpointindex="7" islast="false">
-        <attached>
-        <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        <DistanceTrigger name="trigger7" position="0,0,0" distance=40 stayActive="true" />
-        <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-            <events>
-            <activity>
-                <Trigger mode="xor" invert="true" >
-                    <EventTrigger>
-                        <events>
-                            <trigger>
-                                <EventListener event="checkpoint8" />
-                            </trigger>
-                        </events>
-                    </EventTrigger>
-                    <EventTrigger invert="true">
-                        <events>
-                            <trigger>
-                                <EventListener event="checkpoint9" />
-                            </trigger>
-                        </events>
-                    </EventTrigger>
-                </Trigger>
-            </activity>
-            </events>
-        </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint9" position="0,-1300,-800" stayActive="true" collisionType="static" scale="1" distance="40" checkpointindex="8" islast="false">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-            <DistanceTrigger name="trigger8" position="0,0,0" distance=40 stayActive="true" />
-            <SpawnPoint position="0,0,0" lookat="0,-1000,0" spawnclass=SpaceShip pawndesign=spaceshipassff active="false" >
-                <events>
-                <activity>
-                    <EventTrigger>
-                        <events>
-                            <trigger>
-                                <EventListener event="checkpoint9" />
-                            </trigger>
-                        </events>
-                    </EventTrigger>
-                </activity>
-                </events>
-            </SpawnPoint>
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <OldRaceCheckPoint name="checkpoint10" position="0,-2100,0" collisionType="static" scale="1" distance="40" checkpointindex="9" islast="true" timelimit="150">
-        <attached>
-        <   Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-            <BoxCollisionShape position="0,0,55"      halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="0,0,-55"     halfExtents="55, 10, 10" />
-            <BoxCollisionShape position="55,0,0"      halfExtents="10, 10, 55" />
-            <BoxCollisionShape position="-55,0,0"     halfExtents="10, 10, 55" />
-        </collisionShapes>
-    </OldRaceCheckPoint>
-
-    <!-- ------------------Planet----------------- -->
-    <Planet position="0,0,0" scale=300 pitch=-90 mesh="iceplanet.mesh" atmosphere="atmosphere1" rotationaxis="8,1,0" rotationrate="1" atmospheresize=224.0f imagesize=1024.0f />
-    <StaticEntity position="0,0,0" collisionType=static>
-        <collisionShapes>
-            <SphereCollisionShape radius="399" />
-        </collisionShapes>
-    </StaticEntity>
-
-    <!-- ---------------asteroid ellipse----------------- -->
-    <?lua
-    max = 20
-    for i = 0, max, 1
-    do
-    y = math.sin(i/max*6)*2000
-    z = math.cos(i/max*6)*2500
-    x = 0
-    ?>
-    <?lua
-    for k = 1, 15, 1
-    do
-    j = math.random()
-    ?>
-
-    <MovableEntity
-      position = "<?lua print(x + math.random() * 500) ?>,<?lua print(y + math.random() * 500) ?>,<?lua print(z + math.random() * 1000) ?>"
-      collisionType = "dynamic"
-      linearDamping = "0.5"
-      angularDamping = "0.01"
-      collisiondamage = "0.01"
-      enablecollisiondamage = "true"
-      scale="<?lua print(j * 5) ?>" >
-      <attached>
-        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
-      <?lua if k == 5 then ?><attached><!-- ---------asteroid fog----- -->
-            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
-          </attached> <?lua end ?>
-        </Model>
-      </attached>
-      <collisionShapes>
-        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
-      </collisionShapes>
-    </MovableEntity>
-    <?lua
-    end
-    ?>
-    <?lua end ?>
-
-    <!-- ---------------ForceFields----------------- -->
-    <ForceField position="0,-700,2700" direction="0,1,0" diameter=500 velocity=2000 length=600 />
-        <MovableEntity position="0,-400,2700">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-200,<?lua print(i*40) ?>,0" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="200,<?lua print(i*40) ?>,0" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-     <ForceField position="0,2500,2000" direction="0,0,-1" diameter=250 velocity=2000 length=600 />
-        <MovableEntity position="0,2500,2000">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-100,0,-<?lua print(i*40) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,0,-<?lua print(i*40) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-    <ForceField position="0,1300,-800" direction="0,-1,-1" diameter=250 velocity=2000 length=800 />
-        <MovableEntity position="0,1300,-800">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,20,1 do ?>
-                    <Billboard position="-100,<?lua print(-i*40*0.7071) ?>,<?lua print(-i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,<?lua print(-i*40*0.7071) ?>,<?lua print(-i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-    <ForceField position="0,-1400,-700" direction="0,-1,1" diameter=250 velocity=2000 length=600 />
-        <MovableEntity position="0,-1400,-700">
-            <attached>
-                <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.5,0,0" scale=2/>
-                <?lua for i=0,15,1 do ?>
-                    <Billboard position="-100,<?lua print(-i*40*0.7071) ?>,<?lua print(i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                    <Billboard position="100,<?lua print(-i*40*0.7071) ?>,<?lua print(i*40*0.7071) ?>" material="Examples/Flare" colour="0.5,0,0" scale=1/>
-                <?lua end ?>
-                </attached>
-        </MovableEntity>
-
-    <!-- ---------------SpaceShips----------------- -->
-    <SpaceShip position="0,2000,2000" lookat="0,0,0" team=1 >
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-         <WaypointPatrolController alertnessradius=1500 team=0 >
-            <waypoints>
-                <Model scale=0 position="0,2000,2000" />
-            </waypoints>
-         </WaypointPatrolController>
-      </controller>
-    </SpaceShip>
-
-    <SpaceShip position="0,2000,-2000" lookat="0,0,0" team=1 >
-      <templates>
-        <Template link=spaceshipassff />
-      </templates>
-      <controller>
-        <WaypointPatrolController alertnessradius=1500 team=0 >
-            <waypoints>
-                <Model scale=0 position="0,2000,-2000" />
-            </waypoints>
-        </WaypointPatrolController>
-      </controller>
-    </SpaceShip>
-    
-    
-
-  </Scene>
-</Level>
Index: code/branches/HUD_HS16/data/levels/surfaceRace.oxw
===================================================================
--- code/branches/HUD_HS16/data/levels/surfaceRace.oxw	(revision 11501)
+++ 	(revision )
@@ -1,463 +1,0 @@
-<!-- 
-TODO:
-    Replace bottom's texture. It just does not look good.
--->
-
-<LevelInfo
- name = "Surface Race"
- description = "Race on a planet's surface. Try to reach the goal in 70 Seconds."
- screenshot = "surfaceRace.png"
- tags = "gametype"
-/>
-
-
-<?lua
-  include("stats.oxo")
-  include("HUDTemplates3.oxo")
-  include("templates/lodInformation.oxt")
-  include("templates/spaceshipRace.oxt")
-  include("templates/pickupRepresentationTemplates.oxt")
-
-?>
-
-
-<Level
-  plugins = gametypes
-  gametype = SpaceRace
->
-
-  <templates>
-    <Template link=lodtemplate_default />
-  </templates>
-  <?lua include("includes/notifications.oxi") ?>
-
-  <Scene
-    ambientlight = "2.0, 2.0, 2.0"
-    skybox       = "Orxonox/skyBoxClouds"
-    gravity      = "0,-75,0"
-    negativeWorldRange = "-100000, -100000, -100000"
-    positiveWorldRange = " 100000,  100000,  100000"
-    hasPhysics   = true
-  >
-
-    <?lua
-      include("includes/pickups.oxi")
-    ?>
-
-  <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"/>
-
-
-
-<SpaceRaceManager>
- <checkpoints>
-    <RaceCheckPoint name="checkpoint1" position="0,8050,-1000" direction="0,1,0" collisionType="static" scale="4" distance="150" checkpointindex="0" islast="false" nextcheckpoints="1,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-
-<!--
-        <Model position="0,0,55" mesh="testcube.mesh" scale3D="110,20,20" />
-        <Model position="0,0,-55" mesh="testcube.mesh" scale3D="110,20,20" />
-        <Model position="55,0,0" mesh="testcube.mesh" scale3D="20,20,110" />
-        <Model position="-55,0,0" mesh="testcube.mesh" scale3D="20,20,110" />
-
--->
-
-
-        </attached>
-
-
-
-    <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-
-
-
-    </RaceCheckPoint>
-
-<RaceCheckPoint name="checkpoint2" position="1000,8050,-4000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="1" islast="false" nextcheckpoints="2,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-
-
-           <collisionShapes>
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-        </collisionShapes>
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint3" position="3000,8050,-4000" direction="0,1,0" roll="-45" collisionType="static" scale="4" distance="150" checkpointindex="2" islast="false" nextcheckpoints="3,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint4" position="4000,8050,-1000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="3" islast="false" nextcheckpoints="4,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint5" position="4000,8050,0" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="4" islast="false" nextcheckpoints="5,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-        <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint6" position="3000,8050,1000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="5" islast="false" nextcheckpoints="6,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint7" position="0,8050,2000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="150" checkpointindex="6" islast="false" nextcheckpoints="7,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-      <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint8" position="-4000,8050,3000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="7" islast="false" nextcheckpoints="8,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-        </collisionShapes>
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint9" position="-4000,8050,5000" direction="0,1,0" roll="-45" collisionType="static" scale="4" distance="150" checkpointindex="8" islast="false" nextcheckpoints="9,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-         <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint10" position="-3000,8050,6000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="150" checkpointindex="9" islast="false" nextcheckpoints="10,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-<RaceCheckPoint name="checkpoint11" position="0,8050,6000" direction="0,1,0" roll="90" collisionType="static" scale="4" distance="120" checkpointindex="10" islast="false" nextcheckpoints="11,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-<RaceCheckPoint name="checkpoint12" position="6000,8050,6000" direction="0,1,0" roll="45" collisionType="static" scale="4" distance="150" checkpointindex="11" islast="false" nextcheckpoints="12,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-      <collisionShapes>
-
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-
-        </collisionShapes>
-
-    </RaceCheckPoint>
-
-
-
-<RaceCheckPoint name="checkpoint13" position="5500,8050,3000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="12" islast="false" nextcheckpoints="13,-1,-1">
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-        </collisionShapes>
-    </RaceCheckPoint>
-
-
-<RaceCheckPoint name="checkpoint14" position="6000,8050,-5000" direction="0,1,0" roll="0" collisionType="static" scale="4" distance="150" checkpointindex="13" islast="true" >
-        <attached>
-            <Model mass="50" scale="50" mesh="raceCheckPoint.mesh" />
-        </attached>
-       <collisionShapes>
-
-            <BoxCollisionShape position="0,0,220"     halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="0,0,-220"      halfExtents="220, 40, 40" />
-            <BoxCollisionShape position="220,0,0"      halfExtents="40, 40, 220" />
-            <BoxCollisionShape position="-220,0,0"       halfExtents="40, 40, 220" />
-
-        </collisionShapes>
-    </RaceCheckPoint>
-
-
-</checkpoints>
-</SpaceRaceManager>
-
- <SpawnPoint team=0 position="0,8050,0" lookat="0,8000,-8000" spawnclass=SpaceShip pawndesign=spaceshiprace />
-
-
-    <!-- -----------------------Zylinder---------------------------- -->
-<StaticEntity position="2750,8050,6000" direction="1,0,0" roll="90"  scale="4" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="cylinder.mesh" scale3D="100,100,400" />
-    <!--
-                <Model position="0,80,600" mesh="testcube.mesh" scale3D="90,18,-600" />
-        <Model position="0,-80,600" mesh="testcube.mesh" scale3D="90,18,-600" />
-        <Model position="80,0,600" mesh="testcube.mesh" scale3D="18,90,-600" />
-        <Model position="-80,0,600" mesh="testcube.mesh" scale3D="18,09,-600" />
-    -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,320,2400"            halfExtents="360,72,2400" />
-        <BoxCollisionShape position="0,-320,2400"      halfExtents="360,72,2400" />
-        <BoxCollisionShape position="320,0,2400"            halfExtents="72,360,2400" />
-        <BoxCollisionShape position="-320,0,2400"     halfExtents="72,360,2400" />
-
-
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-<!-- ------------------Cube between gate 4 and 5----------------- -->
-<StaticEntity position="4465,8050,-500" direction="0,0,0"   scale="1" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="blackcube.mesh" scale3D="450,600,50" />
-<!--
-                <Model position="0,0,0" mesh="testcube.mesh" scale3D="450,600,50" />
-        -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,0,0"            halfExtents="450,600,50" />
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-<StaticEntity position="3535,8050,-500" direction="0,0,0"   scale="1" collisionType=static mass=100000 friction=0.01 >
-      <attached>
-    <Model position="0,0,0" mesh="blackcube.mesh" scale3D="450,600,50" />
-<!--
-                <Model position="0,0,0" mesh="testcube.mesh" scale3D="450,600,50" />
-        -->
-
-      </attached>
-
-
-    <collisionShapes>
-
-
-        <BoxCollisionShape position="0,0,0"            halfExtents="450,600,50" />
-
-        </collisionShapes>
-
-  </StaticEntity>
-
-
-
-
-    <!-- ------------------Boden----------------- -->
-  <StaticEntity position="0,0,0" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
-     <attached>
-        <Model position="0,0,0" mesh="CubeGround.mesh" scale3D="8000,8000,8000" />
-      </attached>
-      <collisionShapes>
-        <BoxCollisionShape position="0,50,0" halfExtents="8000,8000,8000" />um j?:P"{
-
-      </collisionShapes>
-</StaticEntity>
-
-
-<!-- ---------------------PickUp---------------------- -->
-
-
-   <PickupSpawner pickup=smallspeedpickup position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" />
-   <PickupSpawner pickup=mediumspeedpickup position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" />
-   <PickupSpawner pickup="mediumshrinkpickup" position="3000,8050,-4000" triggerDistance="40" respawnTime="60"  maxSpawnedItems="5" scale="8" />
-
-
-
-
- <!-- ---------------asteroid ellipse----------------- -->
-
- <?lua
-    max = 15
-    for i = 0, max, 1
-    do
-    x=-12000
-    y=10000
-    z=-12000
-
-    ?>
-    <?lua
-    for k = 1, 15, 1
-    do
-    j = math.random()
-    ?>
-
-    <MovableEntity
-      position = "<?lua print(x + math.random() * 20000) ?>,<?lua print(y + math.random() * 5000) ?>,<?lua print(z + math.random() * 20000) ?>"
-      collisionType = "dynamic"
-      linearDamping = "0.5"
-      angularDamping = "0.5"
-      collisiondamage = "100"
-      enablecollisiondamage = "true"
-      scale="<?lua print(j * 5) ?>" >
-      <attached>
-        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh">
-      <?lua if k == 0 then ?><attached><!-- ---------asteroid fog----- -->
-            <ParticleEmitter position="0,0,0" source="Orxonox/Steam" />
-          </attached> <?lua end ?>
-        </Model>
-      </attached>
-      <collisionShapes>
-        <SphereCollisionShape radius="<?lua print(j * 80) ?>" />
-      </collisionShapes>
-    </MovableEntity>
-    <?lua
-    end
-    ?>
-    <?lua end ?>
-    
-    <!-- SOUNDS & MUSIC -->
-    <WorldSound name="scoreSound" position="0,8050,0" source="sounds/ReadyGo.ogg" >
-      <events>
-        <play>
-          <EventListener event="start" />
-        </play>
-      </events>
-    </WorldSound>
-    <DistanceTrigger name="start" position="0,8050,0"  target="Pawn" distance=100 stayActive="true" delay=0.5 />
-    <WorldAmbientSound source="Ganymede.ogg" looping="true" playOnLoad="true" />
-
-  </Scene>
-</Level>
-
Index: code/branches/HUD_HS16/data/levels/templates/MFalcon.oxt
===================================================================
--- code/branches/HUD_HS16/data/levels/templates/MFalcon.oxt	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/templates/MFalcon.oxt	(revision 11502)
@@ -0,0 +1,133 @@
+<Template name=MFalcon>
+  <SpaceShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipescortcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 10
+
+   health            = 80
+   maxhealth         = 200
+   initialhealth     = 80
+
+   shieldhealth        = 35
+   initialshieldhealth = 35
+   maxshieldhealth     = 60
+   shieldabsorption    = 0.9
+   shieldrechargerate  = 1
+   shieldrechargewaittime = 1
+
+   primaryThrust     = 150
+   auxilaryThrust    = 30
+   rotationThrust    = 50
+
+   lift = 1;
+   stallSpeed = 220;
+
+   boostPower            = 20
+   boostPowerRate        = 1
+   boostRate             = 5
+   boostCooldownDuration = 10
+
+   shakeFrequency = 15
+   shakeAmplitude = 6
+
+   collisionType     = "dynamic"
+   mass              = 80
+   linearDamping     = 0.7
+   angularDamping    = 0.9999999
+  >
+    <engines>
+      <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipescortengine />
+      <MultiStateEngine position="-7.6, 0, 0" template=spaceshipescortengine />
+    </engines>
+    <attached>
+      <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=4 mesh="MilleniumFalcon.mesh" />
+      <!-- <Model position="0,0,0" yaw=180 pitch=90 roll=0 scale=4 mesh="escortWeapon.mesh" /> -->
+<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+<Model mesh="cube.mesh" mass=10 position="12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="-12.6,-2,3" scale3D="2.8,2.8,11" />
+<Model mesh="cube.mesh" mass=10 position="0,0,-12" scale3D="4,4,7" /-->
+    </attached>
+    <collisionShapes>
+      <BoxCollisionShape position="0    ,0 ,  3" halfExtents="10,   4,8" />
+      <BoxCollisionShape position="12.6 ,-2,  3" halfExtents="2.8,2.8,11"/>
+      <BoxCollisionShape position="-12.6,-2,  3" halfExtents="2.8,2.8,11"/>
+      <BoxCollisionShape position="0,     0,-12" halfExtents="4  , 4 ,7" />
+    </collisionShapes>
+    <explosion>
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+
+      <ExplosionPart mesh="explosionparts/escort_part_1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_3.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_4.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_5.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="explosionparts/escort_part_6.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+    </explosion>
+<?lua
+  include("../includes/MFalconWeapon.oxi")
+?>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipescortcameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,15, 60" drag=true mouselook=true />
+      <CameraPosition position="0,20, 90" drag=true mouselook=true />
+      <CameraPosition position="0,30,120" drag=true mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipescortengine baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2.2
+
+   speedfront     = 200
+   speedback      =  70
+   speedleftright =  70
+   speedupdown    =  70
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 700
+   accelerationbrake     = 700
+   accelerationback      =  125
+   accelerationleftright =  125
+   accelerationupdown    =  125
+  >
+    <EffectContainer condition="idle">
+      <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
+       />
+       <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" -6, 1.75, 11" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+	<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" -5, 1.75, 12" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+	<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" -3.75, 1.75, 13" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+	<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 0,1.75, 14" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="3.75, 1.75, 13" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+	<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 5, 1.75, 12" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+	<Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 6, 1.75, 11" colour="0.2, 0.5, 0.65, 1.0" width=15 length=50 lifetime=100 elements=1 trailmaterial="Trail/backlighttrail" turnontime=2 turnofftime=1 material="Flares/ThrusterFlare1" />
+    </EffectContainer>
+    <EffectContainer condition="not idle">
+     <!-- <FadingBillboard mainstate=activity active=false scale=0.09 position="12, -2, 13" colour="0.2, 1.0, 0.65, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 /-->
+      <!-- <FadingBillboard mainstate=activity active=false scale=0.09 position="-12, -2, 13" colour="0.2, 1.0, 0.65, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 /-->
+    </EffectContainer>
+    <EffectContainer condition="normal or brake">
+
+    </EffectContainer>
+    <EffectContainer condition="normal or boost">
+      <!-- <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, -2, 14" colour="0.2, 1.0, 0.65, 1.0" width=5 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" /-->
+      <Backlight mainstate=activity active=false scale=0.33 name=bltest position="0, 2, 14" colour="0.2, 1.0, 0.65, 1.0" width=15 length=1500 lifetime=2 elements=1 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+    </EffectContainer>
+
+    <EffectContainer condition="boost">
+      <!-- <Backlight mainstate=activity active=false scale=0.33 name=bltest position=" 12, 0, 10" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" /-->
+       <Backlight mainstate=activity active=false scale=0.33 name=bltest position="0, 1, 14" colour="0.6, 0.8, 0.75, 0.7" width=25 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+    </EffectContainer>
+
+  </MultiStateEngine>
+</Template>
Index: code/branches/HUD_HS16/data/levels/templates/StoryMode.oxt
===================================================================
--- code/branches/HUD_HS16/data/levels/templates/StoryMode.oxt	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/templates/StoryMode.oxt	(revision 11502)
@@ -0,0 +1,21 @@
+<Template name=StoryMode>
+  <SpaceShip
+   hudtemplate            = StoryModeMap
+   camerapositiontemplate = spaceshipghostcameras
+   
+  >
+   
+
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipghostcameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,20,80" drag=true mouselook=true />
+      <CameraPosition position="0,40,160" drag=true mouselook=true />
+      <CameraPosition position="0,50,200" drag=true mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
Index: code/branches/HUD_HS16/data/levels/templates/endurancetest_template.oxt
===================================================================
--- code/branches/HUD_HS16/data/levels/templates/endurancetest_template.oxt	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/templates/endurancetest_template.oxt	(revision 11502)
@@ -0,0 +1,813 @@
+<Template name = endurance>
+
+    <!-- Spaceship parameters -->
+
+	<ModularSpaceShip 
+	name = endurance
+	collisionType= "dynamic" 
+	mass = 10000000 
+
+	health = 1000
+	initialhealth = 1000
+	maxhealth = 1000
+	
+	
+	
+	
+	rotationaxis = "1,0,0" 
+	
+	
+   	rotationrate = "5"
+   	>
+	
+   	<!-- Destructible parts -->
+
+   	<parts>
+
+   		<ShipPart name = "tunnelsystem" initialhealth="1000" maxhealth="1000" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "mistery1" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "mistery2" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+   		<ShipPart name = "EnduranceSmallShip1" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "EnduranceSmallShip2" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct12" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+         <ShipPart name = "ct11" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct10" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct9" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct8" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct7" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct6" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct5" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct4" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct3" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct2" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "ct1" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+    	<ShipPart name = "part1" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct12"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct11"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part2" initialhealth="10" maxhealth="10" damageabsorption="0.9" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct11"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct10"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part3" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct10"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct9"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part4" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct9"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct8"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part5" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct8"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct7"   operation="destroy" />  
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part6" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct7"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct6"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part7" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct6"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct5"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part8" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct5"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct4"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part9" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct4"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct3"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part10" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct3"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct2"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part11" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct2"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct1"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+        <ShipPart name = "part12" initialhealth="10" maxhealth="10" damageabsorption="0.5" explosionposition="0,0,0">
+            <destructionevents>
+                <PartDestructionEvent targetType="ship"  operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct1"   operation="destroy" />
+                <PartDestructionEvent targetType="part" targetName ="ct12"   operation="destroy" />
+            </destructionevents>
+        </ShipPart>
+
+    </parts>
+
+    <!-- Explosion effects -->
+
+    <explosion >
+
+
+      <ExplosionPart scale = 5 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart scale = 5 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart scale = 5 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+      <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart offset="94,33,-50" delay=1 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+ 
+      <ExplosionPart scale = 2.5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart scale = 2.5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart delay=0.8 scale = 2.5 mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart delay=0.8 scale = 2.5 mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart delay=0.8 scale = 2.5 mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart delay=0.8 scale = 2.5 mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+     
+      <ExplosionPart offset="20,13,-15" delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart offset="30,13,-15" delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart offset="20,13,-15" delay=1.3 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+      <ExplosionPart offset="-20,-13,-15" delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart offset="-20,-13,-15" delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart offset="-20,-13,-15" delay=1.8 minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+    </explosion>
+
+
+    <attached>
+
+
+
+
+        <Model  mesh="Endurance_Tunnelsystem.mesh" scale="66" lookat="0,0,0" pitch="-30" yaw="0" roll="90" />
+
+
+		<!-- coordinates (0,0,0) element 0-->
+        
+		<!-- Small-Ship 1/2 -->
+
+		<StaticEntity  name = "EnduranceSmallShip1" collisionType=static position ="21,14.4,-9.6"  pitch="60" yaw="0" roll="90" >
+			<attached>
+				<Model  mesh="Endurance_Small_Ship.mesh" scale="36" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,-25,2.5" halfExtents="15,30,1" />
+			<BoxCollisionShape  position ="0,5,-7" halfExtents="7,7,7" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- Small-Ship 1/2 -->
+
+		<StaticEntity  name = "EnduranceSmallShip2" collisionType=static position ="21,-14.4,9.6"  pitch="-120" yaw="0" roll="90" >
+			<attached>
+				<Model  mesh="Endurance_Small_Ship.mesh" scale="36" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,-25,2.5" halfExtents="15,30,1" />
+			<BoxCollisionShape  position ="3,5,-7" halfExtents="7,7,7" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- Tunnelsystem -->
+
+		<StaticEntity  name = "tunnelsystem"collisionType=static position ="0,0,0" lookat="0,0,0" pitch="-30" yaw="0" roll="90" >
+			<attached>
+				<Model  mesh="Endurance_Tunnelsystem.mesh" scale="66" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position = "30,0,0" halfExtents="65,9,9" />
+			<BoxCollisionShape  position = "0,40,0" halfExtents="8,30,8" />
+			<BoxCollisionShape  position = "0,-20,0" halfExtents="7,12,7" />
+			<BoxCollisionShape  position = "0,0,18" halfExtents="8,8,12" />
+			<BoxCollisionShape  position = "0,0,-18" halfExtents="8,8,12" />
+			<BoxCollisionShape  position = "-39,0,0" halfExtents="5,5,7" />
+			
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct12 -->
+
+		<StaticEntity name ="ct12" collisionType=static position ="0,-30,105"  yaw="0" roll="90" pitch="-60" >
+			<attached>
+		
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- 2 Mistery elements --> 
+
+		<StaticEntity name = "mistery1" collisionType=static position ="0,-6,-9.6"  yaw="0" roll="90" pitch="-30" >
+			<attached>
+		
+				<Model  mesh="Endurance_Mystery.mesh" scale="48" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape position ="0,0,-28" halfExtents="25,32,8" />
+			<BoxCollisionShape position ="0,-30,-28" halfExtents="25,8,8" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<StaticEntity name = "mistery2" collisionType=static position ="0,3.6,7.2"  yaw="0" roll="90" pitch="150" >
+			<attached>
+		
+				<Model  mesh="Endurance_Mystery.mesh" scale="48" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape position ="0,0,-28" halfExtents="25,32,8" />
+			<BoxCollisionShape position ="0,-30,-28" halfExtents="25,8,8" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (100,0,0) element 1-->
+
+		<StaticEntity name= "part1" collisionType=static lookat="0,0,0" position ="0,0,120" direction="0,0,0" yaw="-90" roll="-90" pitch="0">
+
+			<attached>
+				<Model  mesh="Endurance_MainEngine.mesh" scale="5" />
+				
+		
+				<ParticleEmitter scale=5  position= "0,-5,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,3,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,10,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,-5" halfExtents="14,22,30"  />
+
+			</collisionShapes>	
+
+		</StaticEntity>
+
+
+		<!-- ct11 -->
+
+		<StaticEntity name = "ct11" collisionType=static position ="0,30,105"  yaw="0" roll="90" pitch="270" >
+			<attached>
+	
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (86,50,0) element 2 -->
+
+		<StaticEntity name = "part2" collisionType=static lookat="0,0,0" position ="0,60,103.2" direction="0,0,0" yaw="0" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_Habitat.mesh" scale="5" />
+				
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,24,26"  />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct10 -->
+
+		<StaticEntity name ="ct10" collisionType=static position ="0,78,78"  yaw="0" roll="90" pitch="240" >
+			<attached>
+		
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (50,86,0) element 3 -->	
+
+		<StaticEntity name="part3" collisionType=static lookat="0,0,0" position ="0,103.2,60" direction="0,0,0" yaw="-90" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_MainEngine.mesh" scale="5" />
+
+				<ParticleEmitter scale=5  position= "0,-5,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,3,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,10,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,-5" halfExtents="14,22,30" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct9 -->
+
+		<StaticEntity name ="ct9" collisionType=static position ="0,105,30"  yaw="0" roll="90" pitch="210" >
+			<attached>
+		
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (0,100,0) element 4 -->	
+
+		<StaticEntity name ="part4" collisionType=static position ="0,120,0" lookat="0,0,0" yaw="0" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_Landig_Module.mesh" scale="5" />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,25,26" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct8 -->
+
+		<StaticEntity name ="ct8" collisionType=static position ="0,105,-30"  yaw="0" roll="90" pitch="180" >
+			<attached>
+			
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (-50,86,0) element 5 -->	
+
+		<StaticEntity name= "part5" collisionType=static position ="0,103.2,-60" lookat="0,0,0" direction="0,0,0" yaw="0" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_Habitat.mesh" scale="5" />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,25,26" />
+
+			</collisionShapes>
+
+
+		</StaticEntity>
+
+		<!-- ct7 -->
+
+		<StaticEntity name ="ct7"  collisionType=static position ="0,78,-78"  yaw="0" roll="90" pitch="150" >
+			<attached>
+		
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+		
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (-86,50,0) element 6  -->	
+
+		<StaticEntity name="part6" collisionType=static position ="0,60,-103.2" lookat="0,0,0" yaw="0" roll="-90" >
+			<attached>
+				<Model  mesh="Endurance_Landig_Module.mesh" scale="5" />
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,25,26" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct6 -->
+
+		<StaticEntity name ="ct6" collisionType=static position ="0,30,-105"  yaw="0" roll="90" pitch="120" >
+			<attached>
+				
+
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+			
+				
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (-100,0,0) element 7 -->	
+
+		<StaticEntity name= "part7" collisionType=static position ="0,0,-120" lookat="0,0,0" direction="0,0,0" yaw="90" roll="90">
+			<attached>
+				<Model  mesh="Endurance_MainEngine.mesh" scale="5" />
+
+				<ParticleEmitter scale=5  position= "0,-5,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,3,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,10,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,-5" halfExtents="14,22,30" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct5 -->
+
+		<StaticEntity name ="ct5" collisionType=static position ="0,-30,-105"  yaw="0" roll="90" pitch="90" >
+			<attached>
+				
+
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+				
+				
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+
+		<!-- coordinates (-86,-50,0) element 8 -->	
+
+		<StaticEntity name ="part8" collisionType=static position ="0,-60,-103.2" lookat="0,0,0" direction="0,0,0" yaw="0" roll="-90" >
+			<attached>
+				<Model  mesh="Endurance_Habitat.mesh" scale="5" />
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,2" halfExtents="14,25,26" />
+
+			</collisionShapes>
+
+
+		</StaticEntity>
+
+		<!-- ct4 -->
+
+		<StaticEntity name ="ct4" collisionType=static position ="0,-78,-78"  yaw="0" roll="90" pitch="60" >
+			<attached>
+				
+
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+				
+				
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (-50,-86,0) element 9 -->	
+
+		<StaticEntity name="part9" collisionType=static position ="0,-103.2,-60" lookat="0,0,0" direction="0,0,0" yaw="-90" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_MainEngine.mesh" scale="5" />
+
+				<ParticleEmitter scale=5  position= "0,-5,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,3,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+				<ParticleEmitter scale=5  position= "0,10,28" source="Orxonox/thruster2" lifetime=2.0 loop=1 startdelay=0.0 />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,-5" halfExtents="14,22,30" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct3 -->
+
+		<StaticEntity name ="ct3" collisionType=static position ="0,-105,-30"  yaw="0" roll="90" pitch="30" >
+			<attached>
+				
+
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+				
+				
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (0,-100,0) element 10 -->	
+
+		<StaticEntity name ="part10" collisionType=static position ="0,-120,0" lookat="0,0,0" yaw="0" roll="-90">
+			<attached>
+				
+				<Model  mesh="Endurance_Landig_Module.mesh" scale="5" />
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,2" halfExtents="14,25,26" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- ct2 -->
+
+		<StaticEntity name ="ct2" collisionType=static position ="0,-105,30"  yaw="0" roll="90" pitch="0" >
+			<attached>
+				
+
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+			
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (50,-86,0) element 11 -->	
+
+		<StaticEntity name ="part11" collisionType=static position ="0,-103.2,60" lookat="0,0,0" yaw="0" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_Commando_Module.mesh" scale="5" />
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,25,27" />
+			<BoxCollisionShape  position ="0,30,-20" halfExtents="15,5,6" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- connecting tunnel 1 (ct1) -->
+
+		<StaticEntity name ="ct1" collisionType=static position ="0,-78,78"  yaw="0" roll="90" pitch="-30" >
+			<attached>
+	
+				<Model  mesh="Endurance_Connecting_Tunnel.mesh" scale="6" />
+	
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  halfExtents="8,8,10" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		<!-- coordinates (86,-50,0) element 12 -->	
+
+		<StaticEntity name ="part12" collisionType=static position ="0,-60,103.2" lookat="0,0,0" yaw="0" roll="-90">
+			<attached>
+				<Model  mesh="Endurance_Landig_Module.mesh" scale="5" />
+				
+
+			</attached>
+
+			<collisionShapes>
+
+			<BoxCollisionShape  position ="0,0,3" halfExtents="14,25,27" />
+
+			</collisionShapes>
+
+		</StaticEntity>
+
+		
+	</attached>
+
+	
+
+	</ModularSpaceShip>
+
+</Template>
+
+
+
+
+
Index: code/branches/HUD_HS16/data/levels/templates/fastship.oxt
===================================================================
--- code/branches/HUD_HS16/data/levels/templates/fastship.oxt	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/templates/fastship.oxt	(revision 11502)
@@ -0,0 +1,129 @@
+<Template name=fastship>
+  <SpaceShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipassffcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+
+   health            = 150
+   maxhealth         = 200
+   initialhealth     = 150
+
+   shieldhealth        = 70
+   initialshieldhealth = 50
+   maxshieldhealth     = 100
+   shieldabsorption    = 0.8
+   shieldrechargerate  = 1
+   shieldrechargewaittime = 1
+
+   primaryThrust     = 2000
+   auxilaryThrust    = 1000
+   rotationThrust    = 50
+
+   lift = 0;
+   stallSpeed = 220;
+
+
+   boostPower            = 8
+   boostPowerRate        = 3
+   boostRate             = 8
+   boostCooldownDuration = 6
+
+   shakeFrequency = 50
+   shakeAmplitude = 30
+
+   collisionType     = "dynamic"
+   mass              = 100
+   linearDamping     = 0.7
+   angularDamping    = 0.9999999
+
+   explosionSound = "sounds/Explosion2.ogg"
+  >
+    <engines>
+      <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipassffengine />
+      <MultiStateEngine position="-7.6, 0, 0" template=spaceshipassffengine />
+    </engines>
+    <attached>
+      <Model position="0,0,0" yaw=90 pitch=-90 roll=0 scale=4 mesh="assff.mesh" />
+      <BlinkingBillboard position="17,-1.5,0" material="Examples/Flare" colour="1.0, 0.5, 0.3" amplitude=0.1 frequency=0.5 quadratic=1 />
+      <BlinkingBillboard position="-17,-1.5,0" material="Examples/Flare" colour="0.5, 1.0, 0.3" amplitude=0.1 frequency=0.5 phase=180 quadratic=1 />
+    </attached>
+    <collisionShapes>
+      <BoxCollisionShape position="0,0,0"      halfExtents="10, 3, 5" />
+      <BoxCollisionShape position="13,-1.3,0"  halfExtents="3, 1, 2" />
+      <BoxCollisionShape position="-13,-1.3,0" halfExtents="3, 1, 2" />
+      <BoxCollisionShape position="0,0,7"      halfExtents="3, 2, 2" />
+      <BoxCollisionShape position="0,0.1,-11"  halfExtents="2.2, 1.8, 6" />
+      <BoxCollisionShape position="0,0.1,-19"  halfExtents="1.4, 1, 2" />
+    </collisionShapes>
+    <explosion>
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_flash2" effect2="orxonox/explosion_flame2" />
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_shockwave2" effect2="orxonox/explosion_sparks2" />
+      <ExplosionPart minspeed=0 maxspeed=0 effect1="orxonox/explosion_streak2" effect2="orxonox/explosion_afterglow" />
+
+      <ExplosionPart mesh="CockpitDebris.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="BodyDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="WingDebris1.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+      <ExplosionPart mesh="WingDebris2.mesh" effect1="Orxonox/fire4" effect2="Orxonox/smoke6" />
+    </explosion>
+<?lua
+  include("../includes/weaponSettingsAssff.oxi")
+?>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipassffcameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,10, 40" drag=true mouselook=true />
+      <CameraPosition position="0,20, 80" drag=true mouselook=true />
+      <CameraPosition position="0,30,120" drag=true mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
+<Template name=spaceshipassffengine baseclass=MultiStateEngine>
+  <MultiStateEngine
+  boostfactor    = 4
+
+   speedfront     =  3000
+   speedback      =  1500
+   speedleftright =  50
+   speedupdown    =  50
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+   
+   accelerationfront     = 400
+   accelerationbrake     = 300
+   accelerationback      = 125
+   accelerationleftright = 125
+   accelerationupdown    = 125
+  >
+    <EffectContainer condition="idle">
+      <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
+    </EffectContainer>
+    <EffectContainer condition="not idle">
+      <FadingBillboard mainstate=activity active=false scale=0.1 position="7.6, 0, 9" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=0.1 position="-7.6, 0, 9" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+    </EffectContainer>
+    <EffectContainer condition="normal or brake">
+
+    </EffectContainer>
+    <EffectContainer condition="normal or boost">
+      <Backlight mainstate=activity active=false scale=0.4 name=bltest position=" 7.6, 0, 6" colour="0.2, 0.65, 1.0, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.4 name=bltest position="-7.6, 0, 6" colour="0.2, 0.65, 1.0, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+    </EffectContainer>
+    <EffectContainer condition="boost">
+      <Backlight mainstate=activity active=false scale=0.4 name=bltest position=" 7.6, 0, 6" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.4 name=bltest position="-7.6, 0, 6" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+    </EffectContainer>
+<!--    <EffectContainer condition="brake">
+      <FadingBillboard mainstate=activity active=false scale=0.3 position=" 8, 0, 6" colour="0.5, 0.0, 0.0, 0.3" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=0.3 position="-8, 0, 6" colour="0.5, 0.0, 0.0, 0.3" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=0.15 position=" 8, 0, 6" colour="1.0, 0.0, 0.0, 1.0" material="Flares/backlightflare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=0.15 position="-8, 0, 6" colour="1.0, 0.0, 0.0, 1.0" material="Flares/backlightflare" turnontime=0.5 turnofftime=0.5 />
+    </EffectContainer>
+-->
+  </MultiStateEngine>
+</Template>
Index: code/branches/HUD_HS16/data/levels/templates/test11.oxt
===================================================================
--- code/branches/HUD_HS16/data/levels/templates/test11.oxt	(revision 11502)
+++ code/branches/HUD_HS16/data/levels/templates/test11.oxt	(revision 11502)
@@ -0,0 +1,99 @@
+<templates>
+
+    
+    <Template name = endurance>
+
+      <!-- Spaceship parameters -->
+      <SpaceShip
+      hudtemplate            = spaceshiphud
+      camerapositiontemplate = bigshipcameras
+      spawnparticlesource    = "Orxonox/fairytwirl"
+      spawnparticleduration  = 3
+      explosionchunks        = 6
+
+      health            = 100
+      maxhealth         = 200
+      initialhealth     = 100
+
+      shieldhealth        = 100
+      initialshieldhealth = 30
+      maxshieldhealth     = 50
+      shieldabsorption    = 0.8
+      shieldrechargerate  = 1
+      shieldrechargewaittime = 1
+
+      primaryThrust     = 30
+      auxilaryThrust    = 30
+      rotationThrust    = 10
+
+      lift = 1;
+      stallSpeed = 220;
+
+      boostPower            = 30
+      boostPowerRate        = 1.5
+      boostRate             = 4
+      boostCooldownDuration = 10
+
+      shakeFrequency = 15
+      shakeAmplitude = 9
+
+      collisionType     = "dynamic"
+      mass              = 1000
+      linearDamping     = 0.7
+      angularDamping    = 0.9999999
+      >
+
+
+      <!-- Engines of the Spaceship -->
+
+      <engines>
+        <MultiStateEngine position=" 15, 0, 0" template=bigshipengine />
+        <MultiStateEngine position="-15, 0, 0" template=bigshipengine />
+      </engines>
+
+      <!-- Testsphere in testlevel -->
+
+      <MovableEntity position ="0, 0, 0"  velocity= "10, 0, 0"  collisionType=dynamic mass=1000 friction=0.01 >
+
+        <!-- use attached for the different spaceship parts and the lights -->
+        <!-- BlinkingBillboard class for blinking lights -->
+        <attached>
+          <Model position="0,0,0" mesh="sphere.mesh" scale3D="100,100,100" />
+        </attached>
+
+        <!-- Collision Shapes -->
+
+        <collisionShapes>
+        <SphereCollisionShape position="0,0,0" radius="100" />
+      </collisionShapes>
+    </MovableEntity>
+
+    <!-- Explosion and Explosionparts -->
+
+    <!-- Cameras and Cameraposition -->
+
+    <!-- Multistateengine definition + engine sounds -->
+
+    <!-- Large coordinate axis -->
+    <Model position="0,0,0" mesh="Coordinates.mesh" scale="20"/>
+
+    <!-- Spawnpoint of the Spaceship -->
+    <SpawnPoint team=0 position = "-100,0,0" lookat="0,0,0" spawnclass=Spaceship pawndesign=spaceshippirate />
+
+    <!-- Planets and forcefields -->
+
+
+    <!-- Blacklight to illuminate surfaces -->
+
+    
+
+    <!-- Egine sound of the Spaceship -->
+    <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
+
+    <!-- World Ambient Sound -->
+
+
+    
+  </Spaceship>
+</Template>
+</templates>
Index: code/branches/HUD_HS16/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/branches/HUD_HS16/data/overlays/HUDTemplates3.oxo	(revision 11501)
+++ code/branches/HUD_HS16/data/overlays/HUDTemplates3.oxo	(revision 11502)
@@ -214,4 +214,10 @@
     />
 
-  </OverlayGroup>
-</Template>
+    <GUIOverlay
+      name = "Dialogue"
+      guiname = "Dialogue"
+      visible = "false"
+    />
+
+  </OverlayGroup>
+</Template>
Index: code/branches/HUD_HS16/data/overlays/SOBHUD.oxo
===================================================================
--- code/branches/HUD_HS16/data/overlays/SOBHUD.oxo	(revision 11502)
+++ code/branches/HUD_HS16/data/overlays/SOBHUD.oxo	(revision 11502)
@@ -0,0 +1,123 @@
+<Template name="spectatorhud">
+  <OverlayGroup name = "spectatorhud" scale = "1, 1">
+  </OverlayGroup>
+</Template>
+
+<Template name="SOBHUD">
+  <OverlayGroup name="SOBHUD" scale = "1, 1">
+  
+    <OverlayText
+     position  = "0.02, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     caption   = "O R X O\n"
+    />
+    <SOBHUDInfo
+     position  = "0.02, 0.06"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.045
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     type      = "Points"
+     
+    />
+
+
+
+    <SOBHUDInfo
+     position  = "0.22, 0.06"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.045
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     type      = "Coins"
+     
+    />
+
+
+
+    <OverlayText
+     position  = "0.75, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "center"
+     caption   = "WORLD\n1-1"
+    />
+
+
+
+
+
+
+    <OverlayText
+     position  = "0.98, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "right"
+     caption   = "TIME\n"
+    />
+    <SOBHUDInfo
+     position  = "0.98, 0.06"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "right"
+     type      = "Time"
+  
+    />
+
+    
+
+    <SOBHUDInfo
+     position = "0.55,0.5"
+     pickpoint = "0.5, 0.5"
+     textposition  = "0.5, 0.5"
+     textpickpoint = "0.5, 0.5"
+     font      = "ShareTechMono"
+     textsize  = 0.07
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "center"
+     type      = "Info"
+     
+    />
+   
+
+    
+  </OverlayGroup>
+</Template>
+
+
+<Template name="spaceshiphud">
+  <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+    <HUDHealthBar
+     name              = "HealthBar1"
+     background        = "Orxonox/HealthBarBackground"
+     size              = "0.35, 0.0875"
+     position          = "0.0 , 0.9 "
+     pickpoint         = "0, 1"
+     bartexture        = "healthbar_bar.png"
+     textfont          = "VeraMono"
+     textusebarcolour  = true
+     textscale          = 0.4
+     textoffset        = "0.325, -0.825"
+     textpickpoint     = "0, 0"
+     textalign         = "right"
+     correctaspect     = true
+     iconmaterial      = "Orxonox/BarIconHealth"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDHealthBar>
+ </OverlayGroup>
+</Template>
Index: code/branches/HUD_HS16/data/overlays/StoryModeHUD.oxo
===================================================================
--- code/branches/HUD_HS16/data/overlays/StoryModeHUD.oxo	(revision 11502)
+++ code/branches/HUD_HS16/data/overlays/StoryModeHUD.oxo	(revision 11502)
@@ -0,0 +1,14 @@
+
+<Template name="StoryModeMap">
+  <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+    <Map />
+
+
+     <GUIOverlay
+      name = "CampaignMenu"
+      guiname = "CampaignMenu"
+      visible = "true"
+    />
+
+  </OverlayGroup>
+</Template>
Index: code/branches/HUD_HS16/src/modules/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/modules/CMakeLists.txt	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/CMakeLists.txt	(revision 11502)
@@ -26,4 +26,5 @@
 ################ Sub Directories ################
 
+ADD_SUBDIRECTORY(dialogue)
 ADD_SUBDIRECTORY(designtools)
 ADD_SUBDIRECTORY(gametypes)
@@ -44,2 +45,3 @@
 ADD_SUBDIRECTORY(dodgerace)
 ADD_SUBDIRECTORY(hover)
+ADD_SUBDIRECTORY(superorxobros)
Index: code/branches/HUD_HS16/src/modules/dialogue/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/CMakeLists.txt	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/CMakeLists.txt	(revision 11502)
@@ -0,0 +1,15 @@
+SET_SOURCE_FILES(DIALOGUE_SRC_FILES
+  DialogueManager.cc
+  NextQuestion.cc
+ 
+)
+
+ORXONOX_ADD_LIBRARY(dialogue
+  MODULE
+  FIND_HEADER_FILES
+   TOLUA_FILES
+    DialogueManager.h
+  LINK_LIBRARIES
+    orxonox
+  SOURCE_FILES ${DIALOGUE_SRC_FILES}
+)
Index: code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.cc	(revision 11502)
@@ -0,0 +1,92 @@
+#include "core/CoreIncludes.h"
+#include "core/LuaState.h"
+#include "core/GUIManager.h"
+#include "core/class/Identifier.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
+#include "network/Host.h"
+#include "network/NetworkFunctionIncludes.h"
+#include "DialogueManager.h"
+#include <vector>
+#include <string>
+#include "core/XMLPort.h"
+#include "NextQuestion.h"
+
+
+
+namespace orxonox {
+	ManageScopedSingleton(DialogueManager, ScopeID::ROOT, false);
+	
+
+	
+	DialogueManager::DialogueManager(){}
+	
+
+	
+    
+
+	void DialogueManager::registerquestion(NextQuestion* nq){
+		if(allQuestions.size()==0) {
+			orxout(internal_info) << "At least one NextQuestion has to be set." << endl;
+		} 
+		allQuestions.push_back(nq);
+			orxout(internal_info) << "qsize " << allQuestions.size();
+
+	}	
+
+    void DialogueManager::setquestion(std::string q){
+		question=q;
+		
+	}
+	void DialogueManager::setCurrentQuestion(NextQuestion* nq){
+		currentQuestion=nq;
+		
+	}
+
+	std::string DialogueManager::getquestion(void){
+		return question;
+	}
+
+	void DialogueManager::setanswers1(std::string a1){
+		this->a1=a1;
+				}
+
+	void DialogueManager::setanswers2(std::string a2){
+		this->a2=a2;
+				}
+
+	
+
+	std::string DialogueManager::getanswers1(void){
+		return a1;
+	}
+
+	std::string DialogueManager::getanswers2(void){
+		return a2;
+	}
+
+	void DialogueManager::a1clicked(void){
+		
+		currentQuestion = currentQuestion->possibleQuestions[0];
+		update(currentQuestion);
+
+		
+	}
+	void DialogueManager::a2clicked(void){
+		
+		currentQuestion = currentQuestion->possibleQuestions[1];
+		update(currentQuestion);
+	}
+
+	 void DialogueManager::update(NextQuestion* nq){
+	 	this->setquestion(nq->getquestion());
+	 	this->setanswers1(nq->getanswers1());
+	 	this->setanswers2(nq->getanswers2());
+	 }
+
+	bool DialogueManager::theEnd(){
+	if((currentQuestion->possibleQuestions).empty()) {
+		return true;}
+	else return false;
+	}
+
+}
Index: code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.h
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/DialogueManager.h	(revision 11502)
@@ -0,0 +1,74 @@
+#ifndef _DialogueManager_H__
+#define _DialogueManager_H__
+
+#include "core/CoreIncludes.h"
+#include "core/LuaState.h"
+#include "core/GUIManager.h"
+#include "core/class/Identifier.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
+#include "network/Host.h"
+#include "network/NetworkFunctionIncludes.h"
+#include "util/Singleton.h"
+#include <string>
+#include <vector>
+#include "core/config/Configurable.h"
+#include "core/XMLPort.h"
+#include "core/EventIncludes.h"
+#include "DialoguePrereqs.h"
+#include "NextQuestion.h"
+
+
+
+
+namespace orxonox //tolua_export
+
+{//tolua_export
+	class _OrxonoxExport DialogueManager //tolua_export
+	: public Singleton<DialogueManager>
+	{//tolua_export
+		friend class Singleton<DialogueManager>;
+	
+		public:
+		
+		DialogueManager(); 
+		
+
+		static DialogueManager& getInstance() { return Singleton<DialogueManager>::getInstance(); } //tolua_export
+		
+
+		void setquestion(std::string question); //tolua_export
+		std::string getquestion(void); //tolua_export
+		
+		
+		void setanswers1(std::string a1); //tolua_export
+		std::string getanswers1(void); //tolua_export
+		
+		void setanswers2(std::string a2); //tolua_export
+		std::string getanswers2(void); //tolua_export
+		
+		void setCurrentQuestion(NextQuestion* q);
+
+		//Sets the current Question to the question corresponding to the first/second answer  
+		void a1clicked(void); //tolua_export
+		void a2clicked(void); //tolua_export
+		
+		//Checks whether there are any more Questions to come
+		bool theEnd(); //tolua_export 
+
+		//Sets question and a1, a2 for new currentQuestion
+		void update(NextQuestion* nq);
+
+		//Is executed whenever a NextQuestion is created and pushes all NextQuestion into the allQuestion vector.
+		void registerquestion(NextQuestion* nq);
+
+private:
+	NextQuestion* currentQuestion; //The Question which is currently displayed
+	std::vector<NextQuestion*> allQuestions;
+	std::string a1; //answer on first button
+	std::string a2; //answer on second button
+	std::string question;
+	static DialogueManager* singletonPtr_s;
+
+	};//tolua_export
+}//tolua_export
+#endif
Index: code/branches/HUD_HS16/src/modules/dialogue/DialoguePrereqs.h
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/DialoguePrereqs.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/DialoguePrereqs.h	(revision 11502)
@@ -0,0 +1,76 @@
+/*
+ *   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:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the questsystem module
+*/
+
+#ifndef _DialoguePrereqs_H__
+#define _DialoguePrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(Dialogue_STATIC_BUILD)
+#  ifdef Dialogue_SHARED_BUILD
+#    define _DialogueExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _DialogueExport
+#    else
+#      define _DialogueExport __declspec(dllimport)
+#    endif
+#  endif
+#  define _DialoguePrivate
+#elif defined (ORXONOX_GCC_VISIBILITY)
+#  define _DialogueExport  __attribute__ ((visibility("default")))
+#  define _DialoguePrivate __attribute__ ((visibility("hidden")))
+#else
+#  define _DialogueExport
+#  define _DialoguePrivate
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+
+    class DialogueManager;
+    class NextQuestion;
+   
+}
+
+#endif /* _DialoguePrereqs_H__ */
Index: code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.cc	(revision 11502)
@@ -0,0 +1,111 @@
+//#include <vector>
+#include <string>
+#include "core/CoreIncludes.h"
+#include "core/GUIManager.h"
+#include "overlays/OrxonoxOverlay.h"
+
+
+#include "NextQuestion.h"
+#include "core/XMLPort.h"
+#include "DialogueManager.h"
+
+namespace orxonox{
+
+	RegisterClass(NextQuestion);
+
+	NextQuestion::NextQuestion(Context* context) : BaseObject(context)
+    {
+        RegisterObject(NextQuestion);
+
+        DialogueManager& m = DialogueManager::getInstance();
+        m.registerquestion(this);
+       
+        
+    }
+
+	void NextQuestion::setquestion(std::string question){
+		this->question=question;
+	}
+
+	std::string NextQuestion::getquestion(void){
+		return question;
+	}
+
+	
+	bool NextQuestion::addposQuestion(NextQuestion* nq){
+		
+		possibleQuestions.push_back(nq);
+		return true;
+	}
+
+	const NextQuestion* NextQuestion::getposQuestion(unsigned int i) const
+    {
+        for (NextQuestion* effect : this->possibleQuestions)
+        {
+            if(i == 0)
+               return effect;
+            i--;
+        }
+        return nullptr;
+         }
+	
+	
+	void NextQuestion::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(NextQuestion, XMLPort, xmlelement, mode);
+
+        XMLPortParam(NextQuestion, "question", setquestion, getquestion, xmlelement, mode);
+        XMLPortParam(NextQuestion, "a1", setanswers1, getanswers1, xmlelement, mode);
+        XMLPortParam(NextQuestion, "a2", setanswers2, getanswers2, xmlelement, mode);
+        XMLPortObject(NextQuestion, NextQuestion, "possibleQuestions", addposQuestion, getposQuestion, xmlelement, mode);
+       
+    }
+	bool NextQuestion::execute(bool bTriggered, BaseObject* trigger)
+    {  
+        
+    	DialogueManager& m = DialogueManager::getInstance();
+        	
+        m.setquestion(question);
+        m.setCurrentQuestion(this);
+        m.setanswers1(a1);
+        m.setanswers2(a2);
+       
+
+       
+        OrxonoxOverlay::showOverlay("Dialogue");
+
+        return false;
+    }
+
+    void NextQuestion::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(NextQuestion, XMLEventPort, xmlelement, mode);
+
+        XMLPortEventSink(NextQuestion, BaseObject, "execute", execute, xmlelement, mode); 
+    }
+
+
+	void NextQuestion::setanswers1(std::string a1){
+		this->a1=a1;
+				}
+
+	void NextQuestion::setanswers2(std::string a2){
+		this->a2=a2;
+				}
+
+	
+
+	std::string NextQuestion::getanswers1(void){
+		return a1;
+	}
+
+	std::string NextQuestion::getanswers2(void){
+		return a2;
+	}
+
+	
+
+
+
+
+}
Index: code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.h
===================================================================
--- code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/dialogue/NextQuestion.h	(revision 11502)
@@ -0,0 +1,61 @@
+#ifndef _NextQuestion_H__
+#define _NextQuestion_H__
+
+
+
+#include <string>
+#include "core/class/Identifier.h"
+#include "OrxonoxPrereqs.h"
+#include "core/XMLPort.h"
+#include "core/EventIncludes.h"
+#include "DialoguePrereqs.h"
+
+
+namespace orxonox{
+	class _OrxonoxExport NextQuestion : public BaseObject
+	{
+		
+		//tolua_begin
+		public:
+
+		NextQuestion (Context* context); // tolua_export
+		
+
+		void setquestion(std::string question);
+		std::string getquestion(void);
+
+		void setanswers1(std::string a1);
+		void setanswers2(std::string a2);
+		std::string getanswers1(void);
+		std::string getanswers2(void);
+
+		
+		
+
+		//XMLEventPort for Event that first triggers the Dialogue
+		virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+
+		//XMLPort for setting questions and answers and the vector possibleQuestions
+		virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+		bool addposQuestion(NextQuestion* nq);
+		const NextQuestion* getposQuestion(unsigned int index) const;
+
+		//Sets very first currentQuestion in the DialogueManager when the event is triggered
+		bool execute(bool bTriggered, BaseObject* trigger);
+
+		std::vector<NextQuestion*> possibleQuestions;
+	
+	private:
+		std::string a1;
+		std::string a2;
+	
+
+
+		std::string question;
+		DialogueManager* m;
+
+	};
+	
+}
+#endif
Index: code/branches/HUD_HS16/src/modules/dodgerace/DodgeRace.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/dodgerace/DodgeRace.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/dodgerace/DodgeRace.cc	(revision 11502)
@@ -36,4 +36,5 @@
 #include "DodgeRaceCube.h"
 #include "core/CoreIncludes.h"
+#include "Highscore.h"
 
 namespace orxonox
@@ -224,4 +225,10 @@
         // It will misteriously crash the game!
         // Instead startMainMenu, this won't crash.
+        if (Highscore::exists()){
+                    int score = this->getPoints();
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Dodge Race")) 
+                        Highscore::getInstance().storeHighscore("Dodge Race",score);
+
+          }
         GSLevel::startMainMenu();
     }
Index: code/branches/HUD_HS16/src/modules/gametypes/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/CMakeLists.txt	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/CMakeLists.txt	(revision 11502)
@@ -3,6 +3,5 @@
   RaceCheckPoint.cc
   SpaceRaceManager.cc
-  OldSpaceRace.cc
-  OldRaceCheckPoint.cc
+
   SpaceRaceBot.cc
   SpaceRaceController.cc
Index: code/branches/HUD_HS16/src/modules/gametypes/OldRaceCheckPoint.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/OldRaceCheckPoint.cc	(revision 11501)
+++ 	(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:
- *      Mauro Salomon
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OldRaceCheckPoint.h"
-
-#include "util/Convert.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "chat/ChatManager.h"
-
-#include "OldSpaceRace.h"
-
-namespace orxonox
-{
-    RegisterClass(OldRaceCheckPoint);
-
-    OldRaceCheckPoint::OldRaceCheckPoint(Context* context): DistanceTrigger(context), RadarViewable(this, static_cast<WorldEntity*>(this))
-    {
-        RegisterObject(OldRaceCheckPoint);
-
-        this->bCheckpointIndex_ = 0;
-        this->bIsLast_ = false;
-        this->bTimeLimit_ = 0;
-
-        this->setRadarObjectColour(ColourValue::Blue);
-        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
-        this->setRadarVisibility(false);
-    }
-
-    OldRaceCheckPoint::~OldRaceCheckPoint()
-    {
-    }
-
-    void OldRaceCheckPoint::tick(float dt)
-    {
-        SUPER(OldRaceCheckPoint, tick, dt);
-
-        OldSpaceRace* gametype = orxonox_cast<OldSpaceRace*>(this->getGametype());
-        assert(gametype);
-        if (this->getCheckpointIndex() == gametype->getCheckpointsReached())
-            this->setRadarVisibility(true);
-        else
-            this->setRadarVisibility(false);
-    }
-
-    void OldRaceCheckPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(OldRaceCheckPoint, XMLPort, xmlelement, mode);
-
-        XMLPortParam(OldRaceCheckPoint, "checkpointindex", setCheckpointIndex, getCheckpointIndex, xmlelement, mode).defaultValues(0);
-        XMLPortParam(OldRaceCheckPoint, "islast", setLast, getLast, xmlelement, mode).defaultValues(false);
-        XMLPortParam(OldRaceCheckPoint, "timelimit", setTimelimit, getTimeLimit, xmlelement, mode).defaultValues(0);
-    }
-
-    void OldRaceCheckPoint::triggered(bool bIsTriggered)
-    {
-        DistanceTrigger::triggered(bIsTriggered);
-
-        OldSpaceRace* gametype = orxonox_cast<OldSpaceRace*>(this->getGametype());
-        if (gametype && this->getCheckpointIndex() == gametype->getCheckpointsReached() && bIsTriggered)
-        {
-            gametype->clock_.capture();
-            float time = gametype->clock_.getSecondsPrecise();
-            if (this->bTimeLimit_!=0 && time > this->bTimeLimit_)
-            {
-                gametype->timeIsUp();
-                gametype->end();
-            }
-            else if (this->getLast())
-                gametype->end();
-            else
-            {
-                gametype->newCheckpointReached();
-                this->setRadarObjectColour(ColourValue::Green); //sets the radar colour of the checkpoint to green if it is reached, else it is red.
-            }
-        }
-    }
-
-    void OldRaceCheckPoint::setTimelimit(float timeLimit)
-    {
-        this->bTimeLimit_ = timeLimit;
-        if (this->bTimeLimit_ != 0)
-        {
-            OldSpaceRace* gametype = orxonox_cast<OldSpaceRace*>(this->getGametype());
-            if (gametype)
-            {
-                const std::string& message =  "You have " + multi_cast<std::string>(this->bTimeLimit_)
-                            + " seconds to reach the check point " + multi_cast<std::string>(this->bCheckpointIndex_+1);
-                gametype->getGametypeInfo()->sendAnnounceMessage(message);
-                ChatManager::message(message);
-            }
-        }
-    }
-
-}
Index: code/branches/HUD_HS16/src/modules/gametypes/OldRaceCheckPoint.h
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/OldRaceCheckPoint.h	(revision 11501)
+++ 	(revision )
@@ -1,77 +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:
- *      Mauro Salomon
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _OldRaceCheckPoint_H__
-#define _OldRaceCheckPoint_H__
-
-#include "gametypes/GametypesPrereqs.h"
-
-#include "objects/triggers/DistanceTrigger.h"
-#include "interfaces/RadarViewable.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        The OldRaceCheckPoint class enables the creation of a check point to use in a OldSpaceRace level.
-        !!! Don't forget to control the indexes of your check points and to set one last check point!!!
-    */
-    class _GametypesExport OldRaceCheckPoint : public DistanceTrigger, public RadarViewable
-    {
-        public:
-            OldRaceCheckPoint(Context* context);
-            virtual ~OldRaceCheckPoint();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
-            virtual void tick(float dt) override;
-
-            protected:
-            virtual void triggered(bool bIsTriggered) override;
-            inline void setLast(bool isLast)
-                { this->bIsLast_ = isLast; }
-            inline bool getLast()
-                { return this->bIsLast_; }
-            inline void setCheckpointIndex(int checkpointIndex)
-                { this->bCheckpointIndex_ = checkpointIndex; }
-            inline int getCheckpointIndex()
-                { return this->bCheckpointIndex_; }
-            virtual void setTimelimit(float timeLimit);
-            inline float getTimeLimit()
-                { return this->bTimeLimit_;}
-            virtual inline const WorldEntity* getWorldEntity() const override
-                { return this; }
-
-        private:
-            int bCheckpointIndex_; //The index of this check point. This value will be compared with the number of check points reached in the level. The check points must be indexed in ascending order beginning from zero and without any jumps between the indexes.
-            bool bIsLast_; //True if this check point is the last of the level. There can be only one last check point for each level and there must be a last check point in the level.
-            float bTimeLimit_; //The time limit (from the start of the level) to reach this check point. If the check point is reached after this time, the game ends and the player looses.
-      
-    };
-}
-
-#endif /* _OldRaceCheckPoint_H__ */
Index: code/branches/HUD_HS16/src/modules/gametypes/OldSpaceRace.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/OldSpaceRace.cc	(revision 11501)
+++ 	(revision )
@@ -1,104 +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:
- *     Mauro Salomon
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OldSpaceRace.h"
-
-#include "core/CoreIncludes.h"
-#include "chat/ChatManager.h"
-#include "util/Convert.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-    RegisterUnloadableClass(OldSpaceRace);
-
-    OldSpaceRace::OldSpaceRace(Context* context) : Gametype(context)
-    {
-        RegisterObject(OldSpaceRace);
-        this->checkpointsReached_ = 0;
-        this->bTimeIsUp_ = false;
-        this->numberOfBots_ = 0;
-    }
-
-    void OldSpaceRace::end()
-    {
-        this->Gametype::end();
-
-        if (this->bTimeIsUp_)
-        {
-            this->clock_.capture();
-            int s = this->clock_.getSeconds();
-            int ms = static_cast<int>(this->clock_.getMilliseconds()-1000*s);
-            const std::string& message = multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds !!\n"
-                        + "You didn't reach the check point " + multi_cast<std::string>(this->checkpointsReached_+1)
-                        + " before the time limit. You lose!";
-            this->getGametypeInfo()->sendAnnounceMessage(message);
-            ChatManager::message(message);
-        }
-        else
-        {
-            this->clock_.capture();
-            int s = this->clock_.getSeconds();
-            int ms = static_cast<int>(this->clock_.getMilliseconds()-1000*s);
-            const std::string& message = "You win!! You have reached the last check point after "+ multi_cast<std::string>(s)
-                        + "." + multi_cast<std::string>(ms) + " seconds.";
-            this->getGametypeInfo()->sendAnnounceMessage(message);
-            ChatManager::message(message);
-/*
-            float time = this->clock_.getSecondsPrecise();
-            this->scores_.insert(time);
-            std::set<float>::iterator it;
-            for (it=this->scores_.begin(); it!=this->scores_.end(); it++)
-                orxout(level::message) << multi_cast<std::string>(*it) << endl;
-*/
-        }
-    }
-
-    void OldSpaceRace::start()
-    {
-        Gametype::start();
-
-        std::string message("The match has started! Reach the check points as quickly as possible!");
-        this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
-    }
-
-    void OldSpaceRace::newCheckpointReached()
-    {
-        this->checkpointsReached_++;
-        this->clock_.capture();
-        int s = this->clock_.getSeconds();
-        int ms = static_cast<int>(this->clock_.getMilliseconds()-1000*s);
-        const std::string& message = "Checkpoint " + multi_cast<std::string>(this->getCheckpointsReached())
-                        + " reached after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms)
-                        + " seconds.";
-        this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
-    }
-
-}
Index: code/branches/HUD_HS16/src/modules/gametypes/OldSpaceRace.h
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/OldSpaceRace.h	(revision 11501)
+++ 	(revision )
@@ -1,81 +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:
- *      Mauro Salomon
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _OldSpaceRace_H__
-#define _OldSpaceRace_H__
-
-#include "gametypes/GametypesPrereqs.h"
-
-#include <set>
-#include <string>
-
-#include <util/Clock.h>
-
-#include "gametypes/Gametype.h"
-
-#include "OldRaceCheckPoint.h"
-
-namespace orxonox
-{
-  /**
-  @brief
-    The OldSpaceRace class enables the creation of a space race level, where the player has to reach check points in a given order.
-  */
-    class _GametypesExport OldSpaceRace : public Gametype
-    {
-        friend class OldRaceCheckPoint;
-
-        public:
-            OldSpaceRace(Context* context);
-            virtual ~OldSpaceRace() {}
-
-            virtual void start() override;
-            virtual void end() override;
-
-            virtual void newCheckpointReached();
-            virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command.
-                                                        //<! This is only a temporary solution. Better: create racingBots.
-
-            inline void setCheckpointsReached(int n)
-                { this->checkpointsReached_ = n;}
-            inline int getCheckpointsReached()
-                { return this->checkpointsReached_; }
-            inline void timeIsUp()
-                { this->bTimeIsUp_ = true;}
-
-        protected:
-
-        private:
-            int checkpointsReached_; //The current number of check points reached by the player.
-            std::set<float> scores_; //The times of the players are saved in a set.
-            bool bTimeIsUp_; //True if one of the check points is reached too late.
-            Clock clock_; //The clock starts running at the beginning of the game. It is used to give the time at each check point, the give the time at the end of the game, and to stop the game if a check point is reached too late.
-    };
-}
-
-#endif /* _OldSpaceRace_H__ */
Index: code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.cc	(revision 11502)
@@ -23,10 +23,42 @@
  *     Mauro Salomon
  *   Co-authors:
- *      Celine Egger
- *
- */
+ *      Celine Egger*/
+        
+
+
+
+/*
+Edited, Renewed and Revised by 
+        Berkay Berabi
+        Louis Meile
+ 
+ 
+To-do- list by Louis Meile and Berkay Berabi for future projects :
+- improve AI (SpaceRaceController): 
+i) so far bots arent able to evade obstacles. fix that!
+ii) bots should be able to use pickups
+- game crashes when bot wins the game(this is a huge problem you should work with the log file to find out what the errors are )
+- bots rotate while waiting for the countdown to end. make it stop!
+- add elements to level file to make it even more fun to play. be creative!
+*/
+
 
 #include "SpaceRace.h"
 
+#include "core/CoreIncludes.h"
+#include "chat/ChatManager.h"
+#include "util/Convert.h"
+#include "util/Math.h"
+#include "infos/Bot.h"
+#include "items/Engine.h"
+#include "controllers/HumanController.h"
+
+#include "core/CoreIncludes.h"
+#include "chat/ChatManager.h"
+#include "infos/PlayerInfo.h"
+#include "worldentities/pawns/Pawn.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "infos/Bot.h"
+#include "SpaceRaceBot.h"
 #include "items/Engine.h"
 
@@ -37,4 +69,6 @@
 #include "SpaceRaceBot.h"
 #include "items/Engine.h"
+#include <vector>
+
 
 namespace orxonox
@@ -46,10 +80,87 @@
         RegisterObject(SpaceRace);
 
-        this->botclass_ = Class(SpaceRaceBot);//ClassByString("")
+        this->botclass_ = Class(SpaceRaceBot); //ClassByString("")
         this->cantMove_ = false;
         this->bTimeIsUp_ = false;
-        this->numberOfBots_ = 0; // quick fix: don't allow default-bots to enter the race
-                                 // remove this line, if a raceBot has been created.
-    }
+        this->setConfigValues();
+
+        this->numberOfBots_ = 5; // quick fix: don't allow default-bots to enter the race 
+        //we fixed the number of bots in order to have the same starting position all the time ! 
+    }
+
+  void SpaceRace::setConfigValues()
+    {
+       
+    
+    }
+
+    void SpaceRace::start()
+    {
+    // define spawn positions of the 5 bots
+
+        int startpos[15];
+        
+        startpos[0] =100;
+        startpos[1] =-40;
+        startpos[2] =0;
+        
+        startpos[3] =100;
+        startpos[4] =-40;
+        startpos[5] =100;
+        
+        startpos[6] =100;
+        startpos[7] =-40;
+        startpos[8] =-100;
+        
+        startpos[9] =0;
+        startpos[10] =-40;
+        startpos[11] =-80;
+        
+        startpos[12] =0;
+        startpos[13] =-40;
+        startpos[14] =80;
+        
+
+
+
+        Gametype::start();
+   if (true)
+        {
+            this->spawnPlayersIfRequested();
+            this->cantMove_ = true;
+            //players are unable to move while countdown is running
+            for (Engine* engine : ObjectList<Engine>()){
+                engine->setActive(false);
+                
+
+            }
+           //append spawn positions to bots
+           int a,b,c;
+            a=0;
+            b=1;
+            c=2;
+              for (SpaceRaceBot* bot : ObjectList<SpaceRaceBot>()){
+                bot->getControllableEntity()->setPosition(startpos[a],startpos[b],startpos[c]);
+               a= a+3;
+               b = b+3; 
+               c+= 3;
+            }
+
+
+        }
+
+                                                
+
+        std::string message("Use headphones to hear the countdown!");
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+
+//after 11 seconds , countdownFinished function is called to activate bots` engines
+Timer* countdownTimer = new Timer();
+        countdownTimer->setTimer(11, false, createExecutor(createFunctor(&SpaceRace::countdownFinished, this)));
+    }
+
+
+
 
     void SpaceRace::end()
@@ -63,9 +174,9 @@
         {
             message = multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds !!\n"
-                        + "You didn't reach the check point  before the time limit. You lose!";
+                        + "You lose!";
         }
         else
         {
-            message = "You win!! You have reached the last check point after "+ multi_cast<std::string>(s)
+            message = "You win!! Final check point reached after "+ multi_cast<std::string>(s)
                         + "." + multi_cast<std::string>(ms) + " seconds.";
         }
@@ -78,31 +189,9 @@
     }
 
-    void SpaceRace::tick(float dt)
+
+void SpaceRace::tick(float dt)
     {
         SUPER(SpaceRace,tick,dt);
-
-        // spawn the players already when the countdown starts, but deactivate their engines
-        if (this->isStartCountdownRunning() && !this->cantMove_)
-        {
-            this->spawnPlayersIfRequested();
-            this->cantMove_ = true;
-
-            for (Engine* engine : ObjectList<Engine>())
-                engine->setActive(false);
-        }
-
-        // activate the engines again if the countdown ends
-        if (!this->isStartCountdownRunning() && this->cantMove_)
-        {
-            for (Engine* engine : ObjectList<Engine>())
-                engine->setActive(true);
-
-            this->cantMove_= false;
-
-            std::string message = "The match has started! Reach the check points as quickly as possible!";
-            this->getGametypeInfo()->sendAnnounceMessage(message);
-            ChatManager::message(message);
-        }
-    }
+}
 
     void SpaceRace::newCheckpointReached(RaceCheckPoint* checkpoint, PlayerInfo* player)
@@ -114,23 +203,60 @@
         int ms = this->clock_.getMilliseconds() % 1000;
 
-        const std::string& message = "Checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1)
-            + " reached after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.";
+       
+    
+        const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
+        + "after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.";
+ this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+
+    }
+
+ void SpaceRace::countdownFinished()//activates the engines of all players 
+    {
+
+        std::string message("RACE STARTED ");
         this->getGametypeInfo()->sendAnnounceMessage(message);
         ChatManager::message(message);
-    }
-
+
+
+    for (Engine* engine : ObjectList<Engine>())
+                engine->setActive(true);
+
+
+    
+}
+
+ void SpaceRace::playerEntered(PlayerInfo* player)
+    {
+        Gametype::playerEntered(player);
+
+        const std::string& message = player->getName() + " entered the game";
+        ChatManager::message(message);
+    }
+
+
+ void SpaceRace::addBots(unsigned int amount) //function that add the bots to the game 
+    {
+        for (unsigned int i = 1; i <= amount; ++i){
+            this->botclass_.fabricate(this->getContext());
+        }
+    }
+
+
+//set bot configurations
     bool SpaceRace::allowPawnHit(Pawn* victim, Pawn* originator)
     {
+        return true;
+    }
+
+    bool SpaceRace::allowPawnDamage(Pawn* victim, Pawn* originator)
+    {
+        return true;
+    }
+
+    bool SpaceRace::allowPawnDeath(Pawn* victim, Pawn* originator)// false because the bots can not recognize the objects and die to early 
+                                                                    //if they can 
+    {
         return false;
     }
-
-    bool SpaceRace::allowPawnDamage(Pawn* victim, Pawn* originator)
-    {
-        return false;
-    }
-
-    bool SpaceRace::allowPawnDeath(Pawn* victim, Pawn* originator)
-    {
-        return false;
-    }
 }
Index: code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.h
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.h	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/SpaceRace.h	(revision 11502)
@@ -57,9 +57,22 @@
             virtual ~SpaceRace() {}
 
+             void setConfigValues();
+
             virtual void tick(float dt) override;
+            virtual void start() override;
+            virtual void end() override;
+ virtual void countdownFinished();
+             virtual void addBots(unsigned int amount) override; //<! overwrite function in order to bypass the addbots command.
 
-            virtual void end() override;
+
+
+             virtual void playerEntered(PlayerInfo* player) override;
+
+            //virtual void newCheckpointReached();
 
             void newCheckpointReached(RaceCheckPoint* checkpoint, PlayerInfo* player);
+            
+
+
             inline RaceCheckPoint* getCheckpointReached(PlayerInfo* player)
                 { return this->checkpointReached_[player]; }
Index: code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.cc	(revision 11502)
@@ -23,7 +23,16 @@
  *      Author: purgham
  */
+#include <vector>
 
 #include "SpaceRaceBot.h"
+#include "core/GameMode.h"
 #include "core/CoreIncludes.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "gametypes/Gametype.h"
+#include "controllers/AIController.h"
+#include "gametypes/SpaceRaceController.h"
+
+
+
 
 namespace orxonox
@@ -35,4 +44,23 @@
         this->defaultController_ = Class(SpaceRaceController);// ClassByString("")
         this->createController();
+
+    }
+
+SpaceRaceBot::~SpaceRaceBot(){
+
+}
+
+void SpaceRaceBot::setConfigValues()
+    {
+        static const std::string names[] =
+        {
+            "Dr. Julius No",
+            "Berkay Berabi",
+            "Louis Meile"         
+            "Yo mama"
+        };
+        static std::vector<std::string> defaultnames(names, names + sizeof(names) / sizeof(std::string));
+
+        SetConfigValue(names_, defaultnames);
     }
 }
Index: code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.h
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.h	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceBot.h	(revision 11502)
@@ -30,4 +30,5 @@
 #include "gametypes/GametypesPrereqs.h"
 #include "gametypes/SpaceRaceController.h"
+#include <vector>
 
 
@@ -35,12 +36,26 @@
 {
 
-    /**
-
-    */
     class _GametypesExport SpaceRaceBot: public Bot
     {
         public:
-        SpaceRaceBot(Context* context);
-            virtual ~SpaceRaceBot() {}
+        	SpaceRaceBot(Context* context);
+            virtual ~SpaceRaceBot();
+    
+            void setConfigValues();
+
+
+
+ virtual inline bool isInitialized() const override
+                { return true; }
+            virtual inline float getPing() const override
+                { return 0; }
+            virtual inline float getPacketLossRatio() const override
+                { return 0; }
+
+
+  private:
+            std::vector<std::string> names_;
+
+
     };
 }
Index: code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceController.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/gametypes/SpaceRaceController.cc	(revision 11502)
@@ -16,5 +16,5 @@
  *   GNU General Public License for more details.
  *
- *   You should have received a copy of the GNU General Public License
+ *   You should have     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.
@@ -58,59 +58,4 @@
         OrxAssert(!checkpoints.empty(), "No Checkpoints in Level");
         checkpoints_ = checkpoints;
-        /*orxout()<<"es gibt: "<<checkpoints_.size()<<"checkpoints"<<endl;
-        for(std::vector<RaceCheckPoint*>::iterator it=checkpoints_.begin(); it!=checkpoints_.end(); it++)
-        {
-            orxout()<<"Checkpoint "<<(*it)->getCheckpointIndex()<<"; NExtReal: ";
-            std::set<int> temp =(*it)->getNextCheckpoints();
-            for (std::set<int>::iterator ii =temp.begin(); ii!=temp.end(); ii++)
-            {
-                orxout()<<(*ii)<<", ";
-            }
-
-            orxout()<<" NextVirtual: ";
-            temp=(*it)->getVirtualNextCheckpoints();
-            for (std::set<int>::iterator ii =temp.begin(); ii!=temp.end(); ii++)
-            {
-                orxout()<<(*ii)<<", ";
-            }
-            orxout()<<endl<<endl;
-
-        }//ausgabe*/
-        /*
-        for (std::vector<RaceCheckPoint*>::iterator it = checkpoints.begin(); it != checkpoints.end(); ++it)
-        {
-            std::set<int> nextCheckPoints = ((*it)->getNextCheckpoints());
-            if(!nextCheckPoints.empty())
-            {
-                for (std::set<int>::iterator numb = nextCheckPoints.begin(); numb!=nextCheckPoints.end(); numb++)
-                {
-                    RaceCheckPoint* point2 = findCheckpoint((*numb));
-
-                    //if(point2 != nullptr)
-                    //placeVirtualCheckpoints((*it), point2);
-                }
-            }
-        }
-        */
-        /*
-        for(std::vector<RaceCheckPoint*>::iterator it=checkpoints_.begin(); it!=checkpoints_.end(); it++)
-        {
-            orxout()<<"Checkpoint "<<(*it)->getCheckpointIndex()<<"; NExtReal: ";
-            std::set<int> temp =(*it)->getNextCheckpoints();
-            for (std::set<int>::iterator ii =temp.begin(); ii!=temp.end(); ii++)
-            {
-                orxout()<<(*ii)<<", ";
-            }
-
-            orxout()<<" NextVirtual: ";
-            temp=(*it)->getVirtualNextCheckpoints();
-            for (std::set<int>::iterator ii =temp.begin(); ii!=temp.end(); ii++)
-            {
-                orxout()<<(*ii)<<", ";
-            }
-            orxout()<<endl;
-
-        }//ausgabe
-        orxout()<<"es gibt: "<<checkpoints_.size()<<"checkpoints"<<endl;*/
         staticRacePoints_ = findStaticCheckpoints(nextRaceCheckpoint_, checkpoints);
         // initialisation of currentRaceCheckpoint_
@@ -122,5 +67,4 @@
             continue;
         }
-        //orxout()<<"Die ANzahl der virtuellen CP betraegt: "<< (-i)-2<<endl;
 
     }
@@ -225,4 +169,5 @@
                 minNextRaceCheckPoint = nextRaceCheckPoint;
             }
+
         }
 
@@ -363,4 +308,5 @@
             //orxout()<< "CP "<< currentRaceCheckpoint_->getCheckpointIndex()<<" chanched to: "<< nextRaceCheckpoint_->getCheckpointIndex()<<endl;
         }
+
         else if ((lastPositionSpaceship-this->getControllableEntity()->getPosition()).length()/dt > ADJUSTDISTANCE)
         {
@@ -380,5 +326,8 @@
         //orxout(user_status) << "dt= " << dt << ";  distance= " << (lastPositionSpaceship-this->getControllableEntity()->getPosition()).length() <<std::endl;
         lastPositionSpaceship = this->getControllableEntity()->getPosition();
+       
+this->boostControl();
         this->moveToPosition(nextRaceCheckpoint_->getPosition());
+        this->boostControl();
     }
 
Index: code/branches/HUD_HS16/src/modules/invader/Invader.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/invader/Invader.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/invader/Invader.cc	(revision 11502)
@@ -33,5 +33,5 @@
 
 #include "Invader.h"
-
+#include "Highscore.h"
 #include "core/CoreIncludes.h"
 #include "core/EventIncludes.h"
@@ -189,4 +189,10 @@
         // It will misteriously crash the game!
         // Instead startMainMenu, this won't crash.
+        if (Highscore::exists()){
+                    int score = this->getPoints();
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Orxonox Arcade")) 
+                        Highscore::getInstance().storeHighscore("Orxonox Arcade",score);
+
+          }
         GSLevel::startMainMenu();
     }
Index: code/branches/HUD_HS16/src/modules/jump/Jump.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/jump/Jump.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/jump/Jump.cc	(revision 11502)
@@ -34,4 +34,5 @@
 #include "Jump.h"
 #include "core/CoreIncludes.h"
+#include "Highscore.h"
 
 #include "JumpCenterpoint.h"
@@ -311,5 +312,10 @@
         cleanup();
         GSLevel::startMainMenu();
-
+        if (Highscore::exists()){
+                    int score = this->getScore(this->getPlayer());
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Jump")) 
+                        Highscore::getInstance().storeHighscore("Jump",score);
+
+          }
         Deathmatch::end();
     }
Index: code/branches/HUD_HS16/src/modules/superorxobros/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/CMakeLists.txt	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/CMakeLists.txt	(revision 11502)
@@ -0,0 +1,24 @@
+SET_SOURCE_FILES(SOB_SRC_FILES
+
+  SOBCenterpoint.cc
+  SOB.cc
+  SOBFigure.cc
+  SOBItem.cc
+  SOBQBlock.cc
+  SOBMushroom.cc
+  SOBHUDInfo.cc
+  SOBGumba.cc
+  SOBFlagstone.cc
+  SOBCastlestone.cc
+  SOBCoin.cc
+
+)
+
+ORXONOX_ADD_LIBRARY(superorxobros
+  PLUGIN
+  FIND_HEADER_FILES
+  LINK_LIBRARIES
+    orxonox
+    overlays
+  SOURCE_FILES ${SOB_SRC_FILES}
+)
Index: code/branches/HUD_HS16/src/modules/superorxobros/Orxo.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/Orxo.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/Orxo.cc	(revision 11502)
@@ -0,0 +1,196 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderShip.cc
+    @brief Implementation of the InvaderShip class.
+*/
+
+#include "Orxo.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+//#include "Invader.h"
+//#include "InvaderEnemy.h"
+#include "graphics/Camera.h"
+//#include "weapons/projectiles/Projectile.h"
+
+namespace orxonox
+{
+    RegisterClass(Orxo);
+
+    Orxo::Orxo(Context* context) : SpaceShip(context)
+    {
+        RegisterObject(Orxo);
+
+        speed = 500;
+        damping = 10;
+    }
+
+    void Orxo::tick(float dt)
+    {
+        /*Vector3 pos = getPosition();
+
+        //Movement calculation
+        lastTimeFront += dt * damping;
+        lastTimeLeft += dt * damping;
+        lastTime += dt;
+
+        velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
+        velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
+
+        //Execute movement
+        if (this->hasLocalController())
+        {
+            float dist_y = velocity.y * dt;
+            float dist_x = velocity.x * dt;
+            if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
+                posforeward += dist_y;
+            else
+            {
+                velocity.y = 0;
+                // restart if game ended
+                if (getGame())
+                    if (getGame()->bEndGame)
+                    {
+                        getGame()->start();
+                        return;
+                    }
+            }
+            if (pos.z + dist_x > 42*2.5 || pos.z + dist_x < -42*3)
+                velocity.x = 0;
+            pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
+        }
+
+    
+        // Camera
+        Camera* camera = this->getCamera();
+        if (camera != nullptr)
+        {
+            camera->setPosition(Vector3(-pos.z, -posforeward, 0));
+            camera->setOrientation(Vector3::UNIT_Z, Degree(90));
+        }
+
+
+
+        // bring back on track!
+        if(pos.y != 0)
+            pos.y = 0;
+
+        setPosition(pos);
+        setOrientation(Vector3::UNIT_Y, Degree(270));
+
+        // Level up!
+        if (pos.x > 42000)
+        {
+            updateLevel();
+            setPosition(Vector3(0, 0, pos.z)); // pos - Vector3(30000, 0, 0)
+        }*/
+
+        SUPER(Orxo, tick, dt);
+    }
+
+    void Orxo::updateLevel()
+    {
+        lastTime = 0;
+        /*if (getGame())
+            getGame()->levelUp();*/
+    }
+
+    void Orxo::moveFrontBack(const Vector2& value)
+    {
+        Pawn::moveFrontBack(value);
+        lastTimeLeft = 0;
+        desiredVelocity.x = -value.x * speed;
+    }
+
+    void Orxo::moveRightLeft(const Vector2& value)
+    {
+        lastTimeFront = 0;
+        desiredVelocity.y = value.y * speed * 42;
+    }
+    void Orxo::boost(bool bBoost)
+    {
+       // isFireing = bBoost;
+    }
+    void Orxo::rotateRoll(const Vector2& value)
+    {/*
+        if (getGame())
+            if (getGame()->bEndGame)
+                getGame()->end();
+    */}
+    inline bool Orxo::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
+    {
+        /*// orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
+        InvaderEnemy* enemy = orxonox_cast<InvaderEnemy*>(otherObject);
+        Projectile* shot = orxonox_cast<Projectile*>(otherObject);
+        // ensure that this gets only called once per enemy.
+        if (enemy != nullptr && lastEnemy != enemy)
+        {
+            lastEnemy = enemy;
+
+            removeHealth(20);
+            if (getGame())
+            {
+                getGame()->multiplier = 1;                   
+            }
+        }
+        // was shot, decrease multiplier
+        else if (shot != nullptr  && lastShot != shot)
+        {
+            if (getGame() && orxonox_cast<InvaderEnemy*>(shot->getShooter()) != nullptr)
+            {
+                if (getGame()->multiplier > 1)
+                {
+                    lastShot = shot;
+                    getGame()->multiplier -= 1;     
+                }
+            }
+        }
+        return false;
+        // SUPER(InvaderShip, collidesAgainst, otherObject, contactPoint);
+        */
+        return false;
+    }
+
+    /*SOB* Orxo::getGame()
+    {
+        if (game == nullptr)
+        {
+            for (SOB* sob : ObjectList<SOB>())
+                game = sob;
+        }
+        return game;
+    }*/
+
+    void Orxo::death()
+    {
+        //getGame()->costLife();
+        Pawn::death();
+    }
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/Orxo.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/Orxo.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/Orxo.h	(revision 11502)
@@ -0,0 +1,95 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderShip.h
+    @brief Declaration of the InvaderShip class.
+*/
+
+#ifndef _Orxo_H__
+#define _Orxo_H__
+
+//#include "invader/InvaderPrereqs.h"
+
+//#include "weapons/WeaponsPrereqs.h"
+#include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+    class Orxo : public SpaceShip
+    {
+    public:
+        Orxo(Context* context);
+
+        virtual void tick(float dt) override;
+
+
+            // overwrite for 2d movement
+        virtual void moveFrontBack(const Vector2& value) override;
+        virtual void moveRightLeft(const Vector2& value) override;
+
+            // Starts or stops fireing
+        virtual void boost(bool bBoost) override;
+
+            //no rotation!
+        virtual void rotateYaw(const Vector2& value) override{};
+        virtual void rotatePitch(const Vector2& value) override{};
+            //return to main menu if game has ended.
+        virtual void rotateRoll(const Vector2& value) override;
+
+        virtual void updateLevel();
+
+        virtual inline bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+
+
+
+
+      
+
+
+    protected:
+        virtual void death() override;
+    private:
+            //SOB* getGame();
+            //WeakPtr<SOB> game;
+        Camera* camera;
+        float speed, damping, posforeward;
+        float lastTimeFront, lastTimeLeft, lastTime;
+        struct Velocity
+        {
+            float x;
+            float y;
+        } velocity, desiredVelocity;
+
+           // WeakPtr<InvaderEnemy> lastEnemy;
+            //WeakPtr<Projectile> lastShot;
+
+    };
+}
+
+#endif /* _InvaderShip_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOB.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOB.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOB.cc	(revision 11502)
@@ -0,0 +1,187 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOB.cc
+    @brief Implementation of the SOB class.
+*/
+
+#include "SOB.h"
+#include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "core/Game.h"
+#include "gamestates/GSLevel.h"
+#include "chat/ChatManager.h"
+#include "infos/PlayerInfo.h"
+#include "SOBCenterpoint.h"
+#include "SOBFigure.h"
+#include "graphics/Camera.h"
+
+
+
+namespace orxonox
+{
+
+    RegisterUnloadableClass(SOB);
+
+    /**
+    @brief
+        Constructor. Registers and initializes the object.
+    */
+    SOB::SOB(Context* context) : Deathmatch(context)
+    {
+        RegisterObject(SOB);
+        camera = nullptr;
+
+        this->center_ = nullptr;
+        figure_ = nullptr;
+        setHUDTemplate("SOBHUD");
+        coins_=0;
+        points_=0;
+        timeLeft_=400.0;
+        done_ = true;
+        lvl_ = 1;
+
+    }
+
+    /**
+    @brief
+        Destructor. Cleans up, if initialized.
+    */
+    SOB::~SOB()
+    {
+        if (this->isInitialized())
+            this->cleanup();
+    }
+
+    void SOB::cleanup()
+    {
+        camera = nullptr;
+    }
+
+
+
+    void SOB::start()
+    {
+        if (center_ != nullptr) // There needs to be a SOBCenterpoint, i.e. the area the game takes place.
+        {
+            if (figure_ == nullptr)
+            {
+                figure_ = new SOBFigure(center_->getContext());     //add a new instance of a player to the game
+                figure_->addTemplate(center_->getFigureTemplate());
+            }
+
+            center_->attach(figure_);
+            figure_->setPosition(0, 0, 0);
+        }
+        else // If no centerpoint was specified, an error is thrown and the level is exited.
+        {
+            orxout(internal_error) << "SOB: No Centerpoint specified." << endl;
+            GSLevel::startMainMenu();
+            return;
+        }
+
+        // Call start for the parent class.
+        Gametype::start();
+
+        if (figure_ != nullptr)
+        {
+            camera = figure_->getCamera();
+        }
+
+    }
+
+    void SOB::end()
+    {
+        cleanup();
+        GSLevel::startMainMenu();
+        Deathmatch::end();
+    }
+
+    void SOB::restart() {
+        cleanup();
+
+        // HACK - only method I found to simply reload the level
+        Game::getInstance().popState();
+        Game::getInstance().popState();
+        Game::getInstance().requestStates("standalone, level");
+
+        
+    }
+    void SOB::spawnPlayer(PlayerInfo* player)
+    {
+        assert(player);
+
+        if (figure_->getPlayer() == nullptr)
+        {
+            player->startControl(figure_); //Give the control of the instance player to the real person
+            players_[player].state_ = PlayerState::Alive;
+            done_ = false;
+        }
+    }
+
+    PlayerInfo* SOB::getPlayer() const
+    {
+        if (this->figure_ != nullptr)
+        {
+            return this->figure_->getPlayer();
+        }
+        else
+        {
+            return nullptr;
+        }
+    }
+
+    void SOB::tick(float dt)
+    {
+        SUPER(SOB, tick, dt);
+
+        //If player has reached end of level
+        if (this->figure_ != nullptr && figure_->lvlEnded_) {
+            std::stringstream a;
+            a << "Nice! " << getPoints() << " Points in " << (400-getTimeLeft())/2 <<"s.\n\nPress <Space> to restart";
+            info_ =a.str();
+
+        //If player has died
+        } else if (this->figure_ != nullptr && figure_->dead_) {
+            info_ = "Game over. Press <Space> to restart";
+        }
+        
+
+        //Kill the player if time is up
+        if (this->figure_ != nullptr && timeLeft_ <= 0)
+            this->figure_->dead_ = true;
+        //The time on the HUD
+        if (!done_)
+            timeLeft_-=dt*2.5;
+    }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOB.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOB.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOB.h	(revision 11502)
@@ -0,0 +1,123 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOB.h
+    @brief Declaration of the SOB class.
+*/
+
+#ifndef _SOB_H__
+#define _SOB_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "gametypes/Deathmatch.h"
+#include "SOBCenterpoint.h"
+
+namespace orxonox
+{
+
+    class _SOBExport SOB : public Deathmatch
+    {
+    public:
+            SOB(Context* context); //!< Constructor. Registers and initializes the object.
+            virtual ~SOB(); //!< Destructor. Cleans up, if initialized.
+            virtual void tick(float dt) override;
+
+
+            void setCenterpoint(SOBCenterpoint* center)
+            { this->center_ = center; }
+            virtual void start() override;
+            virtual void end() override;
+            virtual void spawnPlayer(PlayerInfo* player) override;
+            PlayerInfo* getPlayer() const;
+
+            void restart();
+
+            //Functions for points and coins
+            int getPoints() {
+                return points_;
+            }
+            int getCoins() {
+                return coins_;
+            }
+            void addCoin() {
+                ++coins_;
+                points_+=200;
+            }
+            void addMushroom() {
+                points_+=1000;
+            }
+            void addGumba() {
+                points_+=100;
+            }
+            void addPoints(int poi) {
+                points_+=poi;
+            }
+            int getTimeLeft() {
+                return timeLeft_;
+            }
+            std::string getInfoText() {
+                return info_;
+            }    
+            void setDone(bool tr) {
+                done_ = tr;
+            }
+
+
+            //Not used yet - placed if somebody wants to develop lvl 1-2 etc
+            void setLvl(int lvl) {
+                lvl_ = lvl;
+            }
+            int getLvl() {
+                return lvl_;
+            }
+            virtual void playerEntered(PlayerInfo* player) override
+            {
+                Gametype::playerEntered(player);
+            }  
+
+            WeakPtr<SOBCenterpoint> center_;
+
+        protected:
+
+
+            void cleanup(); //!< Cleans up the Gametype 
+            WeakPtr<SOBFigure> figure_;
+            WeakPtr<Camera> camera;
+            int points_;
+            int coins_;
+            float timeLeft_;
+            bool done_;
+            int lvl_;
+            std::string info_;
+
+
+        };
+    }
+
+#endif /* _SOB_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.cc	(revision 11502)
@@ -0,0 +1,59 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBCastlestone.cc
+    @brief Mainly used to guide the player into the castle after he has touched the flag and the control goes to the game
+*/
+
+#include "SOBCastlestone.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBCastlestone);
+
+    SOBCastlestone::SOBCastlestone(Context* context) : StaticEntity(context)
+    {
+        RegisterObject(SOBCastlestone);
+        setAngularFactor(0.0);
+        this->enableCollisionCallback();
+        hasCollided_=false;
+    
+    }
+
+    bool SOBCastlestone::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+        return true;
+    }
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCastlestone.h	(revision 11502)
@@ -0,0 +1,53 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBCastlestone.h
+    @brief Declaration of the SOBCastlestone class.
+*/
+
+#ifndef _SOBCastlestone_H__
+#define _SOBCastlestone_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/StaticEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBCastlestone : public StaticEntity
+    {
+    public:
+        SOBCastlestone(Context* context);
+        virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+        bool hasCollided_;
+        
+    };
+}
+
+#endif /* _SOBCastlestone_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.cc	(revision 11502)
@@ -0,0 +1,70 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBCenterpoint.cc
+    @brief The SOBCenterpoint is a StaticEntity which represents the level of the minigame. 
+*/
+
+#include "SOBCenterpoint.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOB.h"
+
+namespace orxonox
+{
+    RegisterClass(SOBCenterpoint);
+
+    SOBCenterpoint::SOBCenterpoint(Context* context) : StaticEntity(context)
+    {
+        RegisterObject(SOBCenterpoint);
+        checkGametype();
+    }
+
+    void SOBCenterpoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBCenterpoint, XMLPort, xmlelement, mode);
+
+      
+        
+        XMLPortParam(SOBCenterpoint, "cameraOffset", setCameraOffset, getCameraOffset, xmlelement, mode);
+        
+        XMLPortParam(SOBCenterpoint, "figureTemplate", setFigureTemplate, getFigureTemplate, xmlelement, mode);
+        
+    }
+
+    void SOBCenterpoint::checkGametype()
+    {
+        if (getGametype() != nullptr && this->getGametype()->isA(Class(SOB)))
+        {
+            SOB* SOBGametype = orxonox_cast<SOB*>(this->getGametype());
+            SOBGametype->setCenterpoint(this);
+        }
+    }
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCenterpoint.h	(revision 11502)
@@ -0,0 +1,72 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+#ifndef _SOBCenterpoint_H__
+#define _SOBCenterpoint_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/StaticEntity.h"
+
+namespace orxonox
+{
+    
+    /**
+    @brief
+        @brief The SOBCenterpoint is a StaticEntity which represents the level of the minigame. Everybody used it so I used it too, do not ask my why..
+    */
+    class _SOBExport SOBCenterpoint : public StaticEntity
+    {
+        public:
+            SOBCenterpoint(Context* context); //!< Constructor. Registers and initializes the object and checks whether the gametype is actually SOB.
+            virtual ~SOBCenterpoint() {}
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a SOBCenterpoint through XML.
+            
+            void setFigureTemplate(const std::string& newTemplate)
+                { this->figureTemplate_ = newTemplate;
+                }
+            const std::string& getFigureTemplate() const
+                { return this->figureTemplate_; }
+            
+
+            void setCameraOffset(const float cameraOffset)
+                { this->cameraOffset_ = cameraOffset; }
+            float getCameraOffset() const
+                { return cameraOffset_; }
+
+
+        private:
+            void checkGametype();
+           
+            std::string figureTemplate_;
+    
+       
+            float cameraOffset_;
+    };
+}
+
+#endif /* _SOBCenterpoint_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.cc	(revision 11502)
@@ -0,0 +1,83 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBCoin.cc
+    @brief This is the object that appears when player hits a QBlock with type coin - it should be a coin floating ontop of the QBlock
+*/
+
+#include "SOBCoin.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBCoin);
+
+    SOBCoin::SOBCoin(Context* context) : MovableEntity(context)
+    {
+        RegisterObject(SOBCoin);
+        setAngularFactor(0.0);
+
+    }
+
+    
+    void SOBCoin::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBCoin, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBCoin, "lifetime", setLifetime, getLifetime, xmlelement, mode);
+        XMLPortParam(SOBCoin, "speed", setSpeed, getSpeed, xmlelement, mode);
+
+    }
+
+
+    void SOBCoin::tick(float dt)
+    {
+        SUPER(SOBCoin, tick, dt);
+
+        lifetime_-=dt;
+
+        if (lifetime_ <+ 0) {
+            destroyLater();
+        }
+
+        Vector3 velocity = getVelocity();
+        velocity.z = speed_;
+        setOrientation(Vector3::UNIT_Z, getOrientation().getRoll() + 2*dt*Radian(6));
+        setVelocity(velocity);
+
+
+
+    }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBCoin.h	(revision 11502)
@@ -0,0 +1,72 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBCoin.h
+    @brief Declaration of the SOBCoin class.
+    @ingroup SOB
+*/
+
+#ifndef _SOBCoin_H__
+#define _SOBCoin_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/MovableEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBCoin : public MovableEntity
+    {
+    public:
+        SOBCoin(Context* context);
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+        virtual void tick(float dt) override;
+
+
+        bool attachedToFigure_;
+
+        void setLifetime(const float lt)
+        { this->lifetime_ = lt; }
+        float getLifetime() const
+        { return lifetime_; }
+        void setSpeed(const float lt)
+        { this->speed_ = lt; }
+        float getSpeed() const
+        { return speed_; }
+
+
+    protected:
+
+        float lifetime_;
+        float speed_;
+
+    };
+}
+
+#endif /* _SOBCoin_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.cc	(revision 11502)
@@ -0,0 +1,366 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBFigure.cc
+    @brief This class represents your figure when you play the minigame. Here the movement of the figure, activating items, ... are handled.
+*/
+
+#include "SOBFigure.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "graphics/Model.h"
+#include "graphics/Camera.h"
+#include "graphics/ParticleSpawner.h"
+
+#include "SOBMushroom.h"
+#include "SOBGumba.h"
+#include "SOB.h"
+#include "SOBFlagstone.h"
+#include "SOBCastlestone.h"
+#include <BulletCollision/NarrowPhaseCollision/btManifoldPoint.h>
+
+namespace orxonox
+{
+    RegisterClass(SOBFigure);
+
+    SOBFigure::SOBFigure(Context* context) : ControllableEntity(context)
+    {
+        RegisterObject(SOBFigure);
+
+        // initialize variables
+        gravityAcceleration_ = 350.0;
+
+        //Vars for movement of player
+        moveUpPressed_ = false;
+        moveDownPressed_ = false;
+        moveLeftPressed_ = false;
+        moveDownPressed_ = false;
+        firePressed_ = false;
+        collDisZ_ = 0;
+        //Times and turning
+        timeSinceLastFire_ = 0.0;
+        lastSpeed_z = 0.0;
+        pitch_ = 0.0;
+        timeCounter_ = 0;
+
+        //Properties of player
+        gotPowerUp_ = false;
+        isColliding_ = true;
+        particlespawner_ = NULL;
+
+        //Properties of players life
+        predead_ = false;
+        dead_ = false;
+        lvlEnded_ = false;
+        reachedLvlEndState_ = 0;
+
+        
+        setAngularFactor(0.0); //Means player doesn't turn on collision, so he doesn't fall over while walking over the ground
+        this->enableCollisionCallback(); // Turns on that on every collision function collidesAgainst is executed
+    }
+
+
+
+    bool SOBFigure::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+        //Inform tick fct that player is colliding and tell him how far away the collision point is from player middle point in z dir
+        isColliding_ = true;
+        collDisZ_ = getPosition().z - contactPoint.getPositionWorldOnB().getZ();
+
+
+        //Orxocast returns object with casted type if otherObject has that class, and if not a nullptr
+        SOBMushroom* mush = orxonox_cast<SOBMushroom*>(otherObject);
+        SOBGumba* gumba = orxonox_cast<SOBGumba*>(otherObject);
+        SOBFlagstone* flagstone = orxonox_cast<SOBFlagstone*>(otherObject);
+        SOBCastlestone* castlestone = orxonox_cast<SOBCastlestone*>(otherObject);
+
+        //Check if otherObject is a powerup
+        if (mush != nullptr && !(mush->hasCollided_)) {
+            otherObject->destroyLater();
+            gotPowerUp_ = true;
+            SOB* SOBGame = orxonox_cast<SOB*>(getGametype()); //Get the Gametype
+            SOBGame->addMushroom(); // Tell the gametype to increase points
+            mush->hasCollided_ = true; // needed because of destroyLater takes some time and player should receive points only once
+
+        //Check if otherObject is a Gumba (that walking enemies)
+        } else if (gumba != nullptr && !(gumba->hasCollided_)) {
+
+            //If player jumps on its head, kill it, else, kill the player
+            if (getVelocity().z >= -20) {
+              Vector3 vel = getVelocity();
+              vel.y = -80;
+              vel.z = 200;
+              setVelocity(vel);
+              predead_=true; 
+              SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+              SOBGame->setDone(true);
+
+          } else {
+            gumba->destroyLater();
+            gumba->hasCollided_ = true;
+            SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+            SOBGame->addGumba();
+
+
+        }
+    }
+
+    //Purpose is that if player hits the flag, he should walk into the castle at the end of the level. For that we use SOBCastlestone
+    if (reachedLvlEndState_ == 0 && flagstone != nullptr && !(flagstone->hasCollided_)) {
+        flagstone->hasCollided_ = true;
+        reachedLvlEndState_ = 1;
+        SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+        SOBGame->setDone(true);
+        SOBGame->addPoints(flagstone->getPoints());
+        
+
+    }
+    if (castlestone != nullptr && !(castlestone->hasCollided_)) {
+        castlestone->hasCollided_ = true;
+        reachedLvlEndState_++;
+
+    }
+
+    return true;
+}
+
+
+//Self implemented sign function that returns either 1 or -1 (and never 0)
+int SOBFigure::sgn(float x) {
+    if (x < 0.0) return -1;
+    return 1;
+}
+
+//For those of you who don't have an idea: the tick function is called about 50 times/sec
+void SOBFigure::tick(float dt)
+{
+    SUPER(SOBFigure, tick, dt);
+
+
+    bool inputAllowed = true;
+
+    //the particle spawner that generates the fire from the backpack when pressed
+    if (particlespawner_ == NULL) {
+        for (WorldEntity* object : this->getAttachedObjects())
+        {
+           if (object->isA(Class(ParticleSpawner)))
+            particlespawner_ = object;
+        }
+    }
+
+
+    //Behavior on level end - this is like described above for the movement from the player when hit the flag. He moves then into the castle
+    if (reachedLvlEndState_ != 0) {
+        timeCounter_+= dt;
+        inputAllowed = false;
+    }
+    if (reachedLvlEndState_ == 1 && timeCounter_ >= 1.5) {
+        timeCounter_ = 0;
+        reachedLvlEndState_ = 2;
+    }
+
+
+    //if input blocked, then cancel every movement operation
+    if (!inputAllowed) {
+        moveUpPressed_ = false;
+        moveDownPressed_ = false;
+        moveLeftPressed_ = false;
+        moveRightPressed_ = false;
+    }
+
+    //set the gravityto standard 350
+    if (firePressed_ == false) {
+        gravityAcceleration_ = 350.0;
+
+    }
+
+    if (hasLocalController())
+    {
+        Vector3 velocity = getVelocity();
+        Vector3 position = getPosition();
+
+        if (!predead_)
+            velocity.y = 0;
+        //If player falls in a hole
+        if (position.z < -100) {
+            dead_ = true;
+            SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+            SOBGame->setDone(true);
+        }
+
+
+        if (dead_) {
+            velocity.x = 0;
+            velocity.z = 0;
+            setVelocity(velocity);
+            SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+            if (firePressed_)
+                SOBGame->restart();
+            return;
+        }
+
+
+        int maxvelocity_x = 100;
+        int speedAddedPerTick = 5;
+        int camMaxOffset = 25;
+
+        timeSinceLastFire_ += dt;
+        lastSpeed_z = velocity.z;
+
+
+
+        //Handle the rocket fire from the jetpack
+        if (velocity.z > 40)
+            particlespawner_->setVisible(true); 
+        else
+            particlespawner_->setVisible(false); 
+
+
+        //If player hits space and collides against an object under him then jump
+        if (inputAllowed && firePressed_ && isColliding_ && (collDisZ_ >= 7.75 && collDisZ_ <+ 8.25)) {
+            gravityAcceleration_ = 100.0;
+            velocity.z = 110; 
+        }
+
+
+        //Left-right movement with acceleration and rotation
+        float rot = getOrientation().getRoll().valueDegrees();
+        if (moveRightPressed_) {
+            if (!(rot < 5.0 && -5.0 < rot))
+                setOrientation(Vector3::UNIT_Z, getOrientation().getRoll() - sgn(rot)*dt*Radian(6));
+
+            if (std::abs(velocity.x) < maxvelocity_x) {
+                velocity.x += speedAddedPerTick;
+
+            }
+        } else if (moveLeftPressed_) {
+            if (!(abs(rot) > 175.0 ))
+                setOrientation(Vector3::UNIT_Z, getOrientation().getRoll() + sgn(rot)*dt*Radian(6));
+
+
+
+            if (std::abs(velocity.x) < maxvelocity_x) {
+                velocity.x -= speedAddedPerTick;
+            }
+        } else {
+            velocity.x /= 1.1;
+        }
+
+
+        //Again another EndOfLevel behavior
+        if (reachedLvlEndState_ == 1)
+            velocity.x = -2;
+        if (reachedLvlEndState_ == 2)
+            velocity.x = 30;
+        if (reachedLvlEndState_ == 3) {
+            velocity.x = 0;
+            velocity.y = 20;
+        }
+        if (reachedLvlEndState_ == 4) {
+            lvlEnded_ = true;
+            dead_ = true;
+        }
+
+        //velocity = acc. * time
+        velocity.z -= gravityAcceleration_*dt;
+        setVelocity(velocity);
+
+
+        //Camera operation - the camera should always follow the player in a specific region
+        Camera* cam = getCamera();
+        Vector3 campos = cam->getPosition();
+
+        if (campos.x + camMaxOffset < position.x) {
+            campos.x = position.x - camMaxOffset;
+            cam->setPosition(campos);
+        }
+        if (campos.x - camMaxOffset > position.x) {
+            campos.x = position.x + camMaxOffset;
+            cam->setPosition(campos);
+        }
+
+
+
+
+    }
+
+
+
+    // Reset key variables
+    moveUpPressed_ = false;
+    moveDownPressed_ = false;
+    moveLeftPressed_ = false;
+    moveRightPressed_ = false;
+
+    isColliding_ = false;
+    collDisZ_ = 0;
+
+}
+
+
+
+
+
+//The following functions read the input of the player and then set the bools for the movement
+void SOBFigure::moveFrontBack(const Vector2& value)
+{
+    if (value.x > 0)
+    {
+        moveUpPressed_ = true;
+        moveDownPressed_ = false;
+    }
+    else
+    {
+        moveUpPressed_ = false;
+        moveDownPressed_ = true;
+    }
+}
+
+void SOBFigure::moveRightLeft(const Vector2& value)
+{
+    if (value.x > 0)
+    {
+        moveLeftPressed_ = false;
+        moveRightPressed_ = true;
+    }
+    else
+    {
+        moveLeftPressed_ = true;
+        moveRightPressed_ = false;
+    }
+}
+
+void SOBFigure::boost(bool boost)
+{
+    firePressed_ = boost;
+}
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBFigure.h	(revision 11502)
@@ -0,0 +1,80 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+#ifndef _SOBFigure_H__
+#define _SOBFigure_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/ControllableEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBFigure : public ControllableEntity
+    {
+    public:
+            SOBFigure(Context* context); //!< Constructor. Registers and initializes the object.
+            virtual ~SOBFigure() {}
+            virtual void tick(float dt) override;
+            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the figure up and down.
+            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the figure up and down.
+            virtual void boost(bool boost) override;
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+
+            bool dead_;
+            bool predead_;
+            bool lvlEnded_;
+
+        private:
+
+            //Soooo many declarations
+            bool gotPowerUp_;
+            bool moveUpPressed_;
+            bool moveDownPressed_;
+            bool moveLeftPressed_;
+            bool moveRightPressed_;
+            bool firePressed_;
+            float gravityAcceleration_;
+            float timeSinceLastFire_;
+            float lastSpeed_z;
+            SOBCenterpoint* sobcenterpoint;
+            float pitch_;
+            bool isColliding_;
+            WorldEntity* particlespawner_;
+            int sgn(float x);
+            int reachedLvlEndState_;
+            float timeCounter_;
+            float collDisZ_;
+
+
+            
+
+        };
+    }
+
+#endif /* _SOBFigure_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.cc	(revision 11502)
@@ -0,0 +1,79 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Julien
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBFlagstone.cc
+    @brief The flagstone, as described in the h file
+*/
+
+#include "SOBFlagstone.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBFlagstone);
+
+    SOBFlagstone::SOBFlagstone(Context* context) : StaticEntity(context)
+    {
+        RegisterObject(SOBFlagstone);
+
+        setAngularFactor(0.0);
+        this->enableCollisionCallback();
+        
+        hasCollided_=false;
+        
+        
+    }
+
+    
+
+    void SOBFlagstone::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBFlagstone, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBFlagstone, "points", setPoints, getPoints, xmlelement, mode);
+
+
+    }
+
+    
+    bool SOBFlagstone::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+        return true;
+    }
+
+
+    
+
+
+    
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBFlagstone.h	(revision 11502)
@@ -0,0 +1,65 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBFlagstone.h
+    @brief Declaration of the SOBFlagstone class. This class is used for the flag - for everz 10x10x10 stone we added a flagstone with different points. The higher you touch the flag, the more points you get.
+    @ingroup SOB
+*/
+
+#ifndef _SOBFlagstone_H__
+#define _SOBFlagstone_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/StaticEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBFlagstone : public StaticEntity
+    {
+        public:
+            SOBFlagstone(Context* context);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+
+            void setPoints(int points) {
+                points_ = points;
+            }
+            int getPoints() {
+                return points_;
+            }
+
+      
+            bool hasCollided_;
+        protected:
+            int points_;
+    };
+}
+
+#endif /* _SOBFlagstone_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.cc	(revision 11502)
@@ -0,0 +1,123 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBGumba.cc
+    @brief All items in this minigame inherit from this class. Items can move around like platforms and enemies.
+*/
+
+#include "SOBGumba.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBGumba);
+
+    SOBGumba::SOBGumba(Context* context) : MovableEntity(context)
+    {
+        RegisterObject(SOBGumba);
+
+        attachedToFigure_ = false;
+        setAngularFactor(0.0);
+        figure_ = nullptr;
+        this->enableCollisionCallback();
+        gravityAcceleration_ = 350.0;
+        speed_ = 0.0;
+        hasCollided_=false;
+        goesRight_ = true;
+        lastPos_ = getPosition();
+        lastPos_.x -= 20;
+        changeAllowed_ = true;
+        changedOn_ = 0.0;
+        
+    }
+
+    
+
+    void SOBGumba::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBGumba, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBGumba, "speed", setSpeed, getSpeed, xmlelement, mode);
+
+
+    }
+
+    
+    bool SOBGumba::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+        //Every object with mass -1 does not change the direction of the Gumba. For example the ground floor! The other objects switch the direction of the gumba.
+        if (changeAllowed_ && otherObject->getMass() != -1) {
+            goesRight_ = !goesRight_;
+            changeAllowed_ = false;
+        }
+
+        return true;
+    }
+
+
+    void SOBGumba::setFigure(SOBFigure* newFigure)
+    {
+        figure_ = newFigure;
+    }
+
+
+
+    void SOBGumba::tick(float dt)
+    {
+        SUPER(SOBGumba, tick, dt);
+
+        if (!changeAllowed_) {
+            changedOn_+= dt;
+            // After a collision, we don't listen for collisions for 200ms - that's because one wall can cause several collisions!
+            if (changedOn_> 0.200) {
+                changeAllowed_ = true;
+                changedOn_ = 0.0;
+
+            }
+        }
+        
+
+        int dir = 1;
+        if (!goesRight_)
+            dir = -1;
+
+        Vector3 velocity = getVelocity();
+        velocity.z -= gravityAcceleration_*dt;
+        velocity.x = dir*speed_;
+        setVelocity(velocity);
+
+        lastPos_ = getPosition();
+    }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBGumba.h	(revision 11502)
@@ -0,0 +1,74 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBGumba.h
+    @brief Declaration of the SOBGumba class. Gumbas are the enemie mushrooms - pretty sure it's written Goomba but, naaah
+    @ingroup SOB
+*/
+
+#ifndef _SOBGumba_H__
+#define _SOBGumba_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/MovableEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBGumba : public MovableEntity
+    {
+        public:
+            SOBGumba(Context* context);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void setFigure(SOBFigure* newFigure);
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+            virtual void tick(float dt) override;
+
+          
+            bool attachedToFigure_;
+
+            void setSpeed(const float speed)
+                { this->speed_ = speed; }
+            float getSpeed() const
+                { return speed_; }
+
+            bool hasCollided_;
+        protected:
+            float gravityAcceleration_;
+            float speed_;
+            WeakPtr<SOBFigure> figure_;
+            bool goesRight_;
+            Vector3 lastPos_;
+            bool changeAllowed_;
+            float changedOn_;
+           
+    };
+}
+
+#endif /* _SOBGumba_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.cc	(revision 11502)
@@ -0,0 +1,113 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *
+ */
+
+#include "SOBHUDInfo.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+#include "SOB.h"
+#include <sstream>
+#include <iomanip>
+
+
+
+namespace orxonox
+{
+    RegisterClass(SOBHUDInfo);
+
+    SOBHUDInfo::SOBHUDInfo(Context* context) : OverlayText(context)
+    {
+        RegisterObject(SOBHUDInfo);
+
+        this->SOBGame = nullptr;
+        
+    }
+
+    void SOBHUDInfo::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBHUDInfo, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBHUDInfo, "type",     setType,     getType,     xmlelement, mode).defaultValues(false);
+
+
+    }
+
+    void SOBHUDInfo::tick(float dt)
+    {
+        SUPER(SOBHUDInfo, tick, dt);
+
+        //If you have a look at the HUD xml file, you can see there are several elements with different types.
+        if (this->SOBGame)
+        {
+          
+          if (this->type_ == "Coins") {            
+            
+            std::stringstream ss;
+            ss << "cc x " << std::setw(2) << std::setfill('0') << SOBGame->getCoins();
+            std::string s = ss.str();
+
+            this->setCaption(s);
+            
+        }
+        if (this->type_ == "Points") {
+            std::stringstream ss;
+            ss << std::setw(6) << std::setfill('0') << SOBGame->getPoints();
+            std::string s = ss.str();
+            this->setCaption(s);
+        }
+        if (this->type_ == "Time") {
+            std::stringstream ss;
+            ss << SOBGame->getTimeLeft();
+            std::string s = ss.str();
+            this->setCaption(s);
+        }
+        if (this->type_ == "Info") {
+            std::stringstream ss;
+            ss << SOBGame->getInfoText();
+            std::string s = ss.str();
+            this->setCaption(s);
+        }
+        
+
+        
+    }
+}
+
+//No idea why, just implement this method
+void SOBHUDInfo::changedOwner()
+{
+    SUPER(SOBHUDInfo, changedOwner);
+
+    if (this->getOwner() && this->getOwner()->getGametype())
+    {
+        this->SOBGame = orxonox_cast<SOB*>(this->getOwner()->getGametype());
+    }
+    else
+    {
+        this->SOBGame = nullptr;
+    }
+}
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBHUDInfo.h	(revision 11502)
@@ -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:
+ *      Julien Kindle
+ *
+ */
+
+#ifndef _SOBHUDInfo_H__
+#define _SOBHUDInfo_H__
+
+#include "superorxobros/SOBPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
+
+namespace orxonox
+{
+    class _SOBExport SOBHUDInfo : public OverlayText, public Tickable
+    {
+        public:
+            SOBHUDInfo(Context* context);
+
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
+
+            inline void setType(std::string type)
+                { this->type_ = type; }
+            inline std::string getType() const
+                { return this->type_; }
+        
+
+        private:
+            SOB* SOBGame;
+            std::string type_;
+      
+    };
+}
+#endif /* _SOBHUDInfo_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.cc	(revision 11502)
@@ -0,0 +1,79 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBItem.cc
+    @brief Not sure if ever used
+*/
+
+#include "SOBItem.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBItem);
+
+    SOBItem::SOBItem(Context* context) : StaticEntity(context)
+    {
+        RegisterObject(SOBItem);
+
+        attachedToFigure_ = false;
+
+        figure_ = nullptr;
+     this->enableCollisionCallback();
+       
+    }
+
+    
+
+    void SOBItem::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBItem, XMLPort, xmlelement, mode);
+
+
+     }
+
+   
+    bool SOBItem::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+        return true;
+    }
+
+
+    void SOBItem::setFigure(SOBFigure* newFigure)
+    {
+        figure_ = newFigure;
+    }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBItem.h	(revision 11502)
@@ -0,0 +1,62 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBItem.h
+    @brief Declaration of the SOBItem class.
+    @ingroup SOB
+*/
+
+#ifndef _SOBItem_H__
+#define _SOBItem_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/StaticEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBItem : public StaticEntity
+    {
+        public:
+            SOBItem(Context* context);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void setFigure(SOBFigure* newFigure);
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+
+          
+            bool attachedToFigure_;
+
+        protected:
+          
+            WeakPtr<SOBFigure> figure_;
+           
+    };
+}
+
+#endif /* _SOBItem_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.cc	(revision 11502)
@@ -0,0 +1,125 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBMushroom.cc
+    @brief This is the class for the powerup mushroom
+*/
+
+#include "SOBMushroom.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOBFigure.h"
+#include "util/Output.h"
+
+
+namespace orxonox
+{
+    RegisterClass(SOBMushroom);
+
+    SOBMushroom::SOBMushroom(Context* context) : MovableEntity(context)
+    {
+        RegisterObject(SOBMushroom);
+
+        attachedToFigure_ = false;
+        setAngularFactor(0.0);
+        figure_ = nullptr;
+        this->enableCollisionCallback();
+        gravityAcceleration_ = 350.0;
+        speed_ = 0.0;
+        hasCollided_=false;
+        goesRight_ = true;
+        lastPos_ = getPosition();
+        lastPos_.x -= 20;
+        changeAllowed_ = true;
+        changedOn_ = 0.0;
+       
+    }
+
+    
+
+    void SOBMushroom::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBMushroom, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBMushroom, "speed", setSpeed, getSpeed, xmlelement, mode);
+
+
+     }
+
+   
+    bool SOBMushroom::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+
+        if (changeAllowed_ && otherObject->getMass() != -1) {
+                goesRight_ = !goesRight_;
+                changeAllowed_ = false;
+        }
+
+        return true;
+    }
+
+
+    void SOBMushroom::setFigure(SOBFigure* newFigure)
+    {
+        figure_ = newFigure;
+    }
+
+
+
+    void SOBMushroom::tick(float dt)
+    {
+        SUPER(SOBMushroom, tick, dt);
+
+        //Exactly like the Gumba class, if collided, turn direction of Mushroom and wait 200ms so we don't get two collisions from the same wall
+        if (!changeAllowed_) {
+            changedOn_+= dt;
+            if (changedOn_> 0.200) {
+                changeAllowed_ = true;
+                changedOn_ = 0.0;
+
+        }
+    }
+        
+
+        int dir = 1;
+        if (!goesRight_)
+            dir = -1;
+
+        Vector3 velocity = getVelocity();
+        velocity.z -= gravityAcceleration_*dt;
+        velocity.x = dir*speed_;
+        setVelocity(velocity);
+
+
+    
+        lastPos_ = getPosition();
+            }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBMushroom.h	(revision 11502)
@@ -0,0 +1,74 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file SOBMushroom.h
+    @brief Declaration of the SOBMushroom class.
+    @ingroup SOB
+*/
+
+#ifndef _SOBMushroom_H__
+#define _SOBMushroom_H__
+
+#include "superorxobros/SOBPrereqs.h"
+#include "worldentities/MovableEntity.h"
+
+
+namespace orxonox
+{
+    class _SOBExport SOBMushroom : public MovableEntity
+    {
+        public:
+            SOBMushroom(Context* context);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void setFigure(SOBFigure* newFigure);
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+            virtual void tick(float dt) override;
+
+          
+            bool attachedToFigure_;
+
+            void setSpeed(const float speed)
+                { this->speed_ = speed; }
+            float getSpeed() const
+                { return speed_; }
+
+            bool hasCollided_;
+        protected:
+            float gravityAcceleration_;
+            float speed_;
+            WeakPtr<SOBFigure> figure_;
+            bool goesRight_;
+            Vector3 lastPos_;
+            bool changeAllowed_;
+            float changedOn_;
+           
+    };
+}
+
+#endif /* _SOBMushroom_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBPrereqs.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBPrereqs.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBPrereqs.h	(revision 11502)
@@ -0,0 +1,84 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the SOB module
+*/
+
+#ifndef _SOBPrereqs_H__
+#define _SOBPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(SOB_STATIC_BUILD)
+#  ifdef SOB_SHARED_BUILD
+#    define _SOBExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _SOBExport
+#    else
+#      define _SOBExport __declspec(dllimport)
+#    endif
+#  endif
+#  define _SOBPrivate
+#elif defined (ORXONOX_GCC_VISIBILITY)
+#  define _SOBExport  __attribute__ ((visibility("default")))
+#  define _SOBPrivate __attribute__ ((visibility("hidden")))
+#else
+#  define _SOBExport
+#  define _SOBPrivate
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+    class SOBCenterpoint;
+    class SOB;
+    class SOBFigure;
+    class SOBItem;
+    class SOBQBlock;
+    class SOBMushroom;
+    class SOBHUDInfo;
+    class SOBGumba;
+    class SOBFlagstone;
+    class SOBCastlestone;
+    class SOBCoin;
+
+}
+
+#endif /* _SOBPrereqs_H__ */
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.cc	(revision 11502)
@@ -0,0 +1,128 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+/**
+    @file SOBQBlock.cc
+    @brief If this QBlock is created, attachedToFigure_ is set to false. When the figure picks it up, the variable is set to true and the figure starts flying fast until the fuel is reduced to zero.
+*/
+
+#include "SOBQBlock.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "SOB.h"
+#include "SOBMushroom.h"
+#include "SOBCoin.h"
+
+namespace orxonox
+{
+    RegisterClass(SOBQBlock);
+
+    SOBQBlock::SOBQBlock(Context* context) : SOBItem(context)
+    {
+        RegisterObject(SOBQBlock);
+        used_ = false;
+
+    }
+
+    SOBQBlock::~SOBQBlock()
+    {
+
+    }
+
+   
+    bool SOBQBlock::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) {
+
+
+        //If you hit the QBlock, the visibility of all attached objects get inverted! Pretty easy way to create changing blocks :)
+        float v_z = otherObject->getVelocity().z;
+        if (!used_ && v_z > 50.0) {
+            used_ = true;
+
+            for (WorldEntity* object : this->getAttachedObjects())
+                object->setVisible(!object->isVisible());            
+
+            SOB* SOBGame = orxonox_cast<SOB*>(getGametype());
+
+            //Spawn either a powerup mushroom or a coin animation (also just an object, have a look at the SOBCoin class)
+            //The spawn methods are declared at the bottom of this file
+            if (type_ == "Coin") {
+                SOBGame->addCoin();
+                spawnCoin();
+            }
+            if (type_ == "Mushroom") {
+                spawnMushroom();
+            }
+
+        }
+        return true;
+    }
+
+
+    void SOBQBlock::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(SOBQBlock, XMLPort, xmlelement, mode);
+        XMLPortParam(SOBQBlock, "type",     setType,     getType,     xmlelement, mode).defaultValues(false);
+
+
+     }
+
+
+     //The spawnmethods from above
+     void SOBQBlock::spawnMushroom() {
+        SOBCenterpoint* center_ = ((SOB*)getGametype())->center_;
+
+         SOBMushroom* mush = new SOBMushroom(center_->getContext());
+         Vector3 spawnpos = this->getWorldPosition();
+         spawnpos.z += 0;
+
+        if (mush != nullptr && center_ != nullptr)
+        {
+            mush->addTemplate("mushroom");
+            mush->setPosition(spawnpos);
+            
+        }
+     }
+
+          void SOBQBlock::spawnCoin() {
+        SOBCenterpoint* center_ = ((SOB*)getGametype())->center_;
+
+         SOBCoin* mush = new SOBCoin(center_->getContext());
+         Vector3 spawnpos = this->getWorldPosition();
+         spawnpos.z += 0;
+
+        if (mush != nullptr && center_ != nullptr)
+        {
+            mush->addTemplate("coin");
+            mush->setPosition(spawnpos);
+       
+        }
+     }
+
+
+}
Index: code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.h
===================================================================
--- code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.h	(revision 11502)
+++ code/branches/HUD_HS16/src/modules/superorxobros/SOBQBlock.h	(revision 11502)
@@ -0,0 +1,60 @@
+/*
+ *   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:
+ *      Julien Kindle
+ *   Co-authors:
+ *      
+ *
+ */
+
+#ifndef _SOBQBlock_H__
+#define _SOBQBlock_H__
+
+#include "SOBPrereqs.h"
+#include "SOBItem.h"
+
+namespace orxonox
+{
+    class _SOBExport SOBQBlock : public SOBItem
+    {
+        public:
+            SOBQBlock(Context* context);
+            virtual ~SOBQBlock();
+            virtual  bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+
+            void setType(std::string type) {
+                this->type_=type;
+            }
+            std::string getType() {
+                return this->type_;
+            }
+        protected:
+            bool used_;
+            std::string type_;
+            void spawnMushroom();
+            void spawnCoin();
+    };
+           
+}
+
+#endif /* _SOBQBlock_H__ */
Index: code/branches/HUD_HS16/src/modules/tetris/Tetris.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/tetris/Tetris.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/tetris/Tetris.cc	(revision 11502)
@@ -39,4 +39,5 @@
 
 #include "Tetris.h"
+#include "Highscore.h"
 
 #include "core/CoreIncludes.h"
@@ -327,5 +328,10 @@
             this->player_->stopControl();
         }
-
+         if (Highscore::exists()){
+                    int score = this->getScore(this->getPlayer());
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Tetris")) 
+                        Highscore::getInstance().storeHighscore("Tetris",score);
+
+          }
         this->cleanup();
 
Index: code/branches/HUD_HS16/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/towerdefense/TowerDefense.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/modules/towerdefense/TowerDefense.cc	(revision 11502)
@@ -81,4 +81,5 @@
 #include "chat/ChatManager.h"
 #include "core/CoreIncludes.h"
+#include "Highscore.h"
 
 namespace orxonox
@@ -197,5 +198,10 @@
     void TowerDefense::end()
     {
-
+        if (Highscore::exists()){
+                    int score = this->getWaveNumber();
+                    if(score > Highscore::getInstance().getHighestScoreOfGame("Tower Defense")) 
+                        Highscore::getInstance().storeHighscore("Tower Defense",score);
+
+          }
         TeamDeathmatch::end();
         ChatManager::message("Match is over! Gameover!");
Index: code/branches/HUD_HS16/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/orxonox/CMakeLists.txt	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/CMakeLists.txt	(revision 11502)
@@ -28,4 +28,5 @@
   LevelInfo.cc
   LevelManager.cc
+  Highscore.cc
   Main.cc
   MoodManager.cc
@@ -61,4 +62,5 @@
     LevelInfo.h
     LevelManager.h
+    Highscore.h
     MoodManager.h
     controllers/HumanController.h
Index: code/branches/HUD_HS16/src/orxonox/Highscore.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/Highscore.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/orxonox/Highscore.cc	(revision 11502)
@@ -0,0 +1,58 @@
+#include "Highscore.h"
+
+#include <vector>
+#include "core/CoreIncludes.h"
+#include "core/config/ConfigValueIncludes.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
+
+namespace orxonox
+{
+
+    ManageScopedSingleton(Highscore, ScopeID::ROOT, false);
+	RegisterClassNoArgs(Highscore);
+
+	Highscore::Highscore()
+    {
+        RegisterObject(Highscore);
+        this->setConfigValues();
+    }
+    /**
+     * @brief set the config values in the orxonox.ini file
+     */
+    void Highscore::setConfigValues()
+    {
+        SetConfigValue(highscores_, std::vector<std::string>()).description("Highscores saved as vector");
+        SetConfigValue(playerName_, "Player").description("Name of the player");
+    }
+    /**
+     * @brief Returns highest score of given game, if exists.
+     * Else returns -1.
+     */
+    int Highscore::getHighestScoreOfGame(std::string game){
+        std::string delimiter = "./."; //score save as "Playername./.game./.score"
+        int best = -1;
+        //check for the highest Score of given game
+        for (std::string score : this->highscores_)
+        {
+            //filter the game string from given highscore
+            score.erase(0, score.find(delimiter) + delimiter.length());
+            if(game.compare(score.substr(0,score.find(delimiter))) == 0){
+                score.erase(0, score.find(delimiter) + delimiter.length());
+                int possibleBest = std::stoi(score);
+                if(possibleBest > best) best = possibleBest;
+            }
+
+
+        }
+        
+        return best;
+        
+    }
+    /**
+     * @brief stores a new highscore in the orxonox.ini file
+     */
+    void Highscore::storeHighscore(std::string level, int points){
+        ModifyConfigValue(highscores_, add, playerName_+"./."+level+"./."+std::to_string(points));
+    }
+    
+}
Index: code/branches/HUD_HS16/src/orxonox/Highscore.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/Highscore.h	(revision 11502)
+++ code/branches/HUD_HS16/src/orxonox/Highscore.h	(revision 11502)
@@ -0,0 +1,39 @@
+#include <string>
+#include "core/config/Configurable.h"
+#include "OrxonoxPrereqs.h"
+#include "util/Singleton.h"
+// tolua_begin
+namespace orxonox
+{
+class _OrxonoxExport Highscore 
+// tolua_end
+ : public Singleton<Highscore>, public Configurable
+{ //tolua_export
+    friend class Singleton<Highscore>;
+    public:
+        Highscore();              // Constructor
+        void setConfigValues(); // Inherited function
+        void storeHighscore(std::string level, int points);
+
+        int getHighestScoreOfGame(std::string game);
+        // tolua_begin
+        inline unsigned int getNumberOfHighscores()
+                { return this->highscores_.size(); }
+            inline const std::string& getHighscore(unsigned int index)
+                { return this->highscores_[index]; }
+
+        static Highscore& getInstance()
+                { return Singleton<Highscore>::getInstance(); }
+
+        // tolua_end 
+
+
+    private:
+        std::vector<std::string> highscores_;
+        float version_;
+        std::string playerName_;
+        static Highscore* singletonPtr_s;
+}; //tolua_export
+
+
+} //tolua_export
Index: code/branches/HUD_HS16/src/orxonox/LevelInfo.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/LevelInfo.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/LevelInfo.cc	(revision 11502)
@@ -151,4 +151,14 @@
     }
 
+    bool LevelInfoItem::addHighscore(const std::string& name, const int score)
+    {
+        std::stringstream stream;
+        stream << name << "/:/" << score;
+        bool success = this->highscores_.insert(stream.str()).second;
+        if(success)
+            this->highscoresUpdated();
+        return success;
+    }
+
     /**
     @brief
@@ -191,4 +201,19 @@
     }
 
+    void LevelInfoItem::highscoresUpdated(void)
+    {
+        std::stringstream stream;
+        std::set<std::string>::iterator temp;
+        for(std::set<std::string>::iterator it = this->highscores_.begin(); it != this->highscores_.end(); )
+        {
+            temp = it;
+            if(++it == this->highscores_.end()) // If this is the last tag we don't add a comma.
+                stream << *temp;
+            else
+                stream << *temp << ", ";
+        }
+
+        this->highscoresString_ = std::string(stream.str());
+    }
     /**
     @brief
Index: code/branches/HUD_HS16/src/orxonox/LevelInfo.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/LevelInfo.h	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/LevelInfo.h	(revision 11502)
@@ -118,4 +118,8 @@
             inline bool hasTag(const std::string& tag) const { return this->tags_.find(tag) != this->tags_.end(); } // tolua_export
 
+            bool addHighscore(const std::string& name,const int score);
+
+            inline const std::string& getHighscores(void) const { return this->highscoresString_; } // tolua_export
+
             void setStartingShips(const std::string& ships); //!< Set the starting ship models of the level
             bool addStartingShip(const std::string& ship, bool update = true); //!< Add a model to shipselection
@@ -154,4 +158,5 @@
             void startingshipsUpdated(void); //!< Updates the comma-seperated string of all possible starting ships.
             void tagsUpdated(void); //!< Updates the comma-seperated string of all tags, if the set of tags has changed.
+            void highscoresUpdated(void);
             static void initializeTags(void); //!< Initialize the set of allowed tags.
             /**
@@ -170,4 +175,8 @@
             std::string screenshot_; //!< The screenshot of the Level.
             std::set<std::string> tags_; //!< The set of tags the Level is tagged with.
+
+            std::set<std::string> highscores_; 
+            std::string highscoresString_;
+
             std::string tagsString_; //!< The comma-seperated string of all the tags the Level is tagged with.
             std::set<std::string> startingShips_; //!< The set of starting ship models the Level allows.
@@ -244,4 +253,7 @@
             inline const std::string& getTags(void) const
                 { return this->LevelInfoItem::getTags(); }
+
+            inline const std::string& getHighscores(void) const
+                { return this->LevelInfoItem::getHighscores(); }
             /**
             @brief Set the starting ship models of the level
Index: code/branches/HUD_HS16/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/controllers/HumanController.h	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/controllers/HumanController.h	(revision 11502)
@@ -92,7 +92,7 @@
             //friend class, for mouselook
             friend class Map;
+            static HumanController* localController_s;
 
         protected:
-            static HumanController* localController_s;
             bool controlPaused_;
 
Index: code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.cc	(revision 11502)
@@ -50,5 +50,4 @@
 #include "PlayerManager.h"
 #include "GSRoot.h"
-// #include "overlays/hud/HUDPickupSystem.h"
 
 namespace orxonox
@@ -127,11 +126,4 @@
             InputManager::getInstance().leaveState("game");
 
-        // HUDPickupSystem* pickupSystem;
-
-        // for (HUDPickupSystem* hud : ObjectList<HUDPickupSystem>())
-        //     pickupSystem = hud;
-
-        // pickupSystem->repaint=false;
-
         // disconnect all HumanPlayers
         PlayerManager::getInstance().disconnectAllClients();
Index: code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.h	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/gamestates/GSLevel.h	(revision 11502)
@@ -31,5 +31,4 @@
 
 #include "OrxonoxPrereqs.h"
-// #include "overlays/OverlaysPrereqs.h"
 
 #include <string>
Index: code/branches/HUD_HS16/src/orxonox/gametypes/CMakeLists.txt
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gametypes/CMakeLists.txt	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/gametypes/CMakeLists.txt	(revision 11502)
@@ -11,3 +11,4 @@
   TeamGametype.cc
   Mission.cc
+  StoryMode.cc
 )
Index: code/branches/HUD_HS16/src/orxonox/gametypes/Gametype.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gametypes/Gametype.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/gametypes/Gametype.cc	(revision 11502)
@@ -96,5 +96,5 @@
         }
     }
-
+    
     /**
      * @brief Initializes sub-objects of the Gametype. This must be called after the constructor.
Index: code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.cc	(revision 11502)
+++ code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.cc	(revision 11502)
@@ -0,0 +1,100 @@
+/*
+ *   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:
+ *      Marvin Haeberle & Julian Huwyler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "StoryMode.h"
+
+#include "items/Engine.h"
+#include "controllers/ArtificialController.h"
+
+#include "core/CoreIncludes.h"
+#include "core/command/ConsoleCommandIncludes.h"
+#include "infos/PlayerInfo.h"
+#include "network/Host.h"
+#include "worldentities/pawns/Pawn.h"
+#include "LevelManager.h"
+
+namespace orxonox
+{
+
+    SetConsoleCommand("StoryMode", "exit", &StoryMode::exit);
+    RegisterUnloadableClass(StoryMode);
+    
+    StoryMode::StoryMode(Context* context) : Gametype(context)
+    {
+        RegisterObject(StoryMode);
+
+        this->gtinfo_ = new GametypeInfo(context);
+        this->bAutoStart_ = true;
+        this->bForceSpawn_ = true;
+    }
+
+    
+  /* 
+    void StoryMode::start()
+    {
+        Gametype::start();
+
+        this->gtinfo_->sendAnnounceMessage("Marvin isch Chef");
+    }
+*/
+    void StoryMode::exit()
+    {
+        orxout() << "s funktioniert"<< endl;
+        for (StoryMode* mission : ObjectList<StoryMode>())
+        { //TODO: make sure that only the desired mission is ended !! This is a dirty HACK, that would end ALL missions!
+            mission->end();
+        }
+        //Gametype::end();
+    }
+/*
+    void Mission::setTeams()
+    { //Set pawn-colours
+        for (Pawn* pawn : ObjectList<Pawn>())
+        {
+            if (!pawn)
+                continue;
+            this->setDefaultObjectColour(pawn);
+        }
+    }
+    void Mission::endMission(bool accomplished)
+    {
+        for (Mission* mission : ObjectList<Mission>())
+        { //TODO: make sure that only the desired mission is ended !! This is a dirty HACK, that would end ALL missions!
+            mission->setMissionAccomplished(accomplished);
+            mission->end();
+        }
+    }
+
+    void Mission::setLivesWrapper(unsigned int amount)
+    {
+        for (Mission* mission : ObjectList<Mission>())
+        { //TODO: make sure that only the desired mission is ended !! This is a dirty HACK, that would affect ALL missions!
+            mission->setLives(amount);
+        }
+    }*/
+}
Index: code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.h	(revision 11502)
+++ code/branches/HUD_HS16/src/orxonox/gametypes/StoryMode.h	(revision 11502)
@@ -0,0 +1,49 @@
+/*
+ *   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:
+ *      Julian Huwyler & Marvin Haeberle
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _Mission_H__
+#define _Mission_H__
+
+#include "OrxonoxPrereqs.h"
+#include "Gametype.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport StoryMode : public Gametype
+    {
+        public:
+            StoryMode(Context* context);
+            virtual ~StoryMode() {}
+            static void exit();
+
+            
+    };
+}
+
+#endif /* _Mission_H__ */
+
Index: code/branches/HUD_HS16/src/orxonox/infos/Bot.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/infos/Bot.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/infos/Bot.cc	(revision 11502)
@@ -68,28 +68,17 @@
         static const std::string names[] =
         {
-            "Dr. Julius No",
-            "Rosa Klebb",
-            "Auric Goldfinger",
-            "Emilio Largo",
-            "Ernst Stavro Blofeld",
-            "Dr. Kananga",
-            "Francisco Scaramanga",
-            "Karl Stromberg",
-            "Sir Hugo Drax",
-            "Aris Kristatos",
+            "Berkay Berabi",
+            "Louis  Meile"
+            "Muten Roshi",
+            "Abradolf Lincler",
+            "Lionel Messi",
             "Kamal Khan",
-            "General Orlov",
-            "Max Zorin",
-            "Brad Whitaker",
-            "General Georgi Koskov",
-            "Franz Sanchez",
-            "Alec Trevelyan",
-            "Elliot Carver",
-            "Elektra King",
-            "Viktor Zokas",
-            "Gustav Graves",
-            "Le Chiffre",
-            "Mr. White",
-            "Dominic Greene"
+            "Karl the Llama",
+            "Thomas the Tankengine",
+            "Rick",
+            "Morty",
+            "Charlie the Unicorn",
+            "Kung Fury",
+            "Postman Pat"
         };
         static std::vector<std::string> defaultnames(names, names + sizeof(names) / sizeof(std::string));
Index: code/branches/HUD_HS16/src/orxonox/infos/GametypeInfo.h
===================================================================
--- code/branches/HUD_HS16/src/orxonox/infos/GametypeInfo.h	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/infos/GametypeInfo.h	(revision 11502)
@@ -83,4 +83,5 @@
             inline bool isStartCountdownRunning() const
                 { return this->bStartCountdownRunning_; }
+            
             void changedStartCountdownRunning(void); // Is called when the start countdown has been either started or stopped.
 
@@ -132,9 +133,10 @@
             void dispatchStaticMessage(const std::string& message,const ColourValue& colour) const;
             void dispatchFadingMessage(const std::string& message) const;
+            void setStartCountdown(float countdown); // Set the start countdown to the input value.
+
 
         protected:
             void start(void); // Inform the GametypeInfo that the game has started.
             void end(void); // Inform the GametypeInfo that the game has ended.
-            void setStartCountdown(float countdown); // Set the start countdown to the input value.
             void countdownStartCountdown(float countDown); // Count down the start countdown by the specified value.
             void countDown(); // Count down the start countdown counter.
Index: code/branches/HUD_HS16/src/orxonox/sound/WorldAmbientSound.cc
===================================================================
--- code/branches/HUD_HS16/src/orxonox/sound/WorldAmbientSound.cc	(revision 11501)
+++ code/branches/HUD_HS16/src/orxonox/sound/WorldAmbientSound.cc	(revision 11502)
@@ -58,4 +58,6 @@
         soundList_.emplace_back("Ganymede.ogg");
         soundList_.emplace_back("luke_grey_-_hypermode.ogg");
+        soundList_.emplace_back("racetheme.ogg");
+
 
     }
Index: code/branches/HUD_HS16/src/test.txt
===================================================================
--- code/branches/HUD_HS16/src/test.txt	(revision 11502)
+++ code/branches/HUD_HS16/src/test.txt	(revision 11502)
@@ -0,0 +1,123 @@
+ #
+ #             ORXONOX - the hottest 3D action shooter ever to exist
+ #                             > www.orxonox.net <
+ #
+ #        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:
+ #    Reto Grieder
+ #  Description:
+ #    Configures the compilers and sets build options.
+ #
+
+# Required macros and functions
+INCLUDE(FlagUtilities)
+INCLUDE(TargetUtilities)
+
+INCLUDE(SourceConfig.cmake)
+
+# Configure the two headers and set some options
+INCLUDE(OrxonoxConfig.cmake)
+
+################ Sub Directories ################
+
+ADD_SUBDIRECTORY(external)
+ADD_SUBDIRECTORY(libraries)
+ADD_SUBDIRECTORY(orxonox)
+SET(ORXONOX_MODULES CACHE INTERNAL "")
+SET(ORXONOX_PLUGINS CACHE INTERNAL "")
+ADD_SUBDIRECTORY(modules)
+
+################## Executable ###################
+
+INCLUDE_DIRECTORIES(
+  ${CMAKE_CURRENT_SOURCE_DIR}/libraries
+  ${CMAKE_CURRENT_SOURCE_DIR}/orxonox
+)
+
+# Translate argument
+IF(ORXONOX_USE_WINMAIN)
+  SET(ORXONOX_WIN32 WIN32)
+ENDIF()
+
+SET(ORXONOX_MAIN_FILES Orxonox.cc)
+
+# Add special source file for OS X
+IF(APPLE)
+  LIST(APPEND ORXONOX_MAIN_FILES OrxonoxMac.mm)
+# Add the icon for win32 builds
+ELSEIF(WIN32)
+  LIST(APPEND ORXONOX_MAIN_FILES ${CMAKE_SOURCE_DIR}/contrib/winresource.rc)
+ENDIF()
+
+ORXONOX_ADD_EXECUTABLE(orxonox-main
+  # When defined as WIN32 this removes the console window on Windows
+  ${ORXONOX_WIN32}
+  LINK_LIBRARIES
+    orxonox
+  SOURCE_FILES
+    ${ORXONOX_MAIN_FILES}
+  OUTPUT_NAME orxonox
+)
+# Main executable should depend on all modules (but not on plugins)
+ADD_DEPENDENCIES(orxonox-main ${ORXONOX_MODULES})
+
+# Get name to configure the run scripts
+IF (POLICY CMP0026)
+  CMAKE_POLICY(PUSH)
+  CMAKE_POLICY(SET CMP0026 OLD) # we only use the file's name, not its actual location, so the old policy is fine
+ENDIF()
+GET_TARGET_PROPERTY(_exec_loc orxonox-main LOCATION)
+GET_FILENAME_COMPONENT(_exec_name ${_exec_loc} NAME)
+SET(ORXONOX_EXECUTABLE_NAME ${_exec_name} CACHE INTERNAL "")
+IF (POLICY CMP0026)
+  CMAKE_POLICY(POP) # set policy back to original settings
+ENDIF()
+
+
+# Apple Mac OS X specific build settings
+IF(APPLE)
+  # On Apple we need to link to AppKit and Foundation frameworks
+  TARGET_LINK_LIBRARIES(orxonox-main 
+    "-framework AppKit"
+    "-framework Foundation"
+  )
+
+  # Post-build step for the creation of the Dev-App bundle
+  INCLUDE(PrepareDevBundle)
+  ADD_CUSTOM_COMMAND(
+    TARGET orxonox-main
+    POST_BUILD 
+    # Copy the executable into the Orxonox.app
+    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${ORXONOX_EXECUTABLE_NAME}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app/Contents/MacOS"
+    # Copy the dev-build marker file to Orxonox.app
+    COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/orxonox_dev_build.keep_me" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app/Contents/MacOS"
+    # Create a shortcut of the application to the root of the build tree
+    COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${PROJECT_NAME}.app" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app" 
+  ) 
+ENDIF(APPLE)
+
+#################### Doxygen ####################
+
+# Prepare include paths for Doxygen. This is necessary to display
+# the correct path to use when including a file, e.g.
+# core/XMLPort.h instead of src/core/XMLPort.h
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/modules)
+GET_DIRECTORY_PROPERTY(_temp INCLUDE_DIRECTORIES)
+# Replace ';' by spaces
+STRING(REPLACE ";" " " _temp "${_temp}")
+SET(DOXYGEN_INCLUDE_DIRECTORIES "${_temp}" PARENT_SCOPE)
