Index: code/trunk/data/defaultConfig/keybindings.ini
===================================================================
--- code/trunk/data/defaultConfig/keybindings.ini	(revision 9938)
+++ code/trunk/data/defaultConfig/keybindings.ini	(revision 9939)
@@ -58,5 +58,5 @@
 KeyLeftWindows=
 KeyLessThan=
-KeyM=
+KeyM="WorldAmbientSound nextsong"
 KeyMail=
 KeyMediaSelect=
Index: code/trunk/data/gui/layouts/UndockingDialog.layout
===================================================================
--- code/trunk/data/gui/layouts/UndockingDialog.layout	(revision 9939)
+++ code/trunk/data/gui/layouts/UndockingDialog.layout	(revision 9939)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+    <Window Type="MenuWidgets/StaticImage" Name="orxonox/Undocking/Background" >
+        <Property Name="FrameEnabled" Value="False" />
+        <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}}" />
+        <Property Name="BackgroundEnabled" Value="False" />
+        <Window Type="MenuWidgets/StaticText" Name="orxonox/Undocking/Title" >
+            <Property Name="Text" Value="Undocking" />
+            <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.25,0},{0.2875,0},{0.75,0},{0.7,0}}" />
+            <Window Type="MenuWidgets/Listbox" Name="orxonox/Undocking/Docks" >
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.85,0}}" />
+            </Window>
+        </Window>
+        <Window Type="MenuWidgets/Button" Name="orxonox/Undocking/DockButton" >
+            <Property Name="Text" Value="Undock" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.725,0},{0.4875,0},{0.775,0}}" />
+            <Event Name="Clicked" Function="UndockingDialog.undockButton_clicked"/>
+        </Window>
+        <Window Type="MenuWidgets/Button" Name="orxonox/Undocking/CancelButton" >
+            <Property Name="Text" Value="Cancel" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.725,0},{0.7125,0},{0.775,0}}" />
+            <Event Name="Clicked" Function="UndockingDialog.cancelButton_clicked"/>
+        </Window>
+    </Window>
+</GUILayout>
Index: code/trunk/data/gui/scripts/MiscConfigMenu.lua
===================================================================
--- code/trunk/data/gui/scripts/MiscConfigMenu.lua	(revision 9938)
+++ code/trunk/data/gui/scripts/MiscConfigMenu.lua	(revision 9939)
@@ -38,4 +38,5 @@
     table.insert(P.commandList, "HUDNavigation MarkerLimit_")
     table.insert(P.commandList, "HUDNavigation showDistance")
+    table.insert(P.commandList, "HUDRadar RadarMode_")
 
     P.nameList = {}
@@ -60,4 +61,5 @@
     table.insert(P.nameList, "Marker Limit")
     table.insert(P.nameList, "Show Distance next to cursor")
+    table.insert(P.nameList, "Set Radar on 3D mode")
 
     P.linesList = {}
Index: code/trunk/data/gui/scripts/UndockingDialog.lua
===================================================================
--- code/trunk/data/gui/scripts/UndockingDialog.lua	(revision 9939)
+++ code/trunk/data/gui/scripts/UndockingDialog.lua	(revision 9939)
@@ -0,0 +1,69 @@
+-- DockingDialog.lua
+
+local P = createMenuSheet("UndockingDialog")
+
+P.docks = {}
+
+function P.onLoad()
+
+     --button are arranged in a 1x2 matrix
+    P:setButton(1, 1, {
+            ["button"] = winMgr:getWindow("orxonox/Undocking/DockButton"),
+            ["callback"]  = P.undockButton_clicked
+    })
+
+    P:setButton(1, 2, {
+            ["button"] = winMgr:getWindow("orxonox/Undocking/CancelButton"),
+            ["callback"]  = P.cancelButton_clicked
+    })
+    
+end
+
+function P.onShow()
+    orxonox.execute("setPause 1")
+    P.update()
+end
+
+function P.onHide()
+    orxonox.execute("setPause 0")
+end
+
+function P.update()
+    -- update dock list
+    P.docks = {}
+    local docks = orxonox.Dock:getNumberOfActiveDocks()
+    for i = 0, docks-1 do
+        table.insert(P.docks, orxonox.Dock:getActiveDockAtIndex(i))
+    end
+
+    local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/Undocking/Docks"))
+    listbox:resetList()
+
+    for k in pairs(P.docks) do
+        local item = CEGUI.createListboxTextItem("Dock " .. k)
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        listbox:addItem(item)
+        if k == 1 then
+            listbox:setItemSelectState(item, true)
+        end
+    end
+end
+
+function P.undockButton_clicked(e)
+    local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/Undocking/Docks"))
+    local choice = listbox:getFirstSelectedItem()
+    if choice ~= nil then
+        local index = listbox:getItemIndex(choice)
+        local dock = P.docks[index+1]
+        if dock ~= nil then
+            dock:undock()
+        end
+    end
+    hideMenuSheet(P.name)
+end
+
+function P.cancelButton_clicked(e)
+    hideMenuSheet(P.name)
+end
+
+return P
Index: code/trunk/data/levels/FPSTest.oxw
===================================================================
--- code/trunk/data/levels/FPSTest.oxw	(revision 9938)
+++ code/trunk/data/levels/FPSTest.oxw	(revision 9939)
@@ -1,2 +1,3 @@
+<!-- -->
 <LevelInfo
  name = "FPS testlevel"
Index: code/trunk/data/levels/HeavyCruiser.oxw
===================================================================
--- code/trunk/data/levels/HeavyCruiser.oxw	(revision 9939)
+++ code/trunk/data/levels/HeavyCruiser.oxw	(revision 9939)
@@ -0,0 +1,902 @@
+<LevelInfo
+ name = "Heavy Cruiser Demo"
+ description = "Demonstration of the Heavy Cruiser."
+ tags = "test"
+ screenshot = "HeavyCruiser_level.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/spaceshipTurret.oxt")
+  include("templates/HeavyCruiser.oxt")
+  include("templates/HeavyCruiserBody.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+
+<!-- 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 >
+    <attached>
+            <Model mesh="HeavyCruiser_body.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_frontR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_frontL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_partL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_partR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_sidearmL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_sidearmLfront.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <Model mesh="HeavyCruiser_sidearmR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+            <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 />
+            <BlinkingBillboard position="74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 quadratic=1 />
+            <BlinkingBillboard position="-74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 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 />
+            <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 />
+            <BlinkingBillboard position="74,103,524" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
+            <BlinkingBillboard position="-74,103,524" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="80,33,-320" halfExtents="7,11,54" info="frontR"/>
+        <BoxCollisionShape position="79,31,-399" halfExtents="3,6,26" info="frontR"/>
+
+
+        <BoxCollisionShape position="-80,33,-320" halfExtents="7,11,54" info="frontL"/>
+        <BoxCollisionShape position="-79,31,-399" halfExtents="3,6,26" info="frontL"/>
+
+
+        <BoxCollisionShape position="94,33,-179" halfExtents="11,13,45" info="partR"/>
+        <BoxCollisionShape position="96,33,-230" halfExtents="13,17,22" info="partR"/>
+
+
+        <BoxCollisionShape position="-94,33,-179" halfExtents="11,13,45" info="partL"/>
+        <BoxCollisionShape position="-96,33,-230" halfExtents="13,17,22" info="partL"/>
+
+
+        <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"/>
+        <BoxCollisionShape position="127,26,115" roll="-15" halfExtents="2,28,105" info="sidearmR, frontInner"/>
+        <BoxCollisionShape position="161,16,115" roll="-15" halfExtents="2,28,105" info="sidearmR, frontOuter"/>
+        <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"/>
+        <BoxCollisionShape position="153,59,96" roll="-15" halfExtents="6,7,60" info="sidearmR, upper beam"/>
+        <BoxCollisionShape position="143,57,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper inner beam"/>
+        <BoxCollisionShape position="142,53,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper inner beam"/>
+        <BoxCollisionShape position="160,52,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper outer beam"/>
+        <BoxCollisionShape position="159,48,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper outer beam"/>
+        <BoxCollisionShape position="152,54,34" pitch="-46" yaw="14" roll="-15" halfExtents="6,7,10" info="sidearmR, upper beam front"/>
+        <BoxCollisionShape position="152,54,162" pitch="30" yaw="-9" roll="-15" halfExtents="6,7,12" info="sidearmR, upper beam back"/>
+        <BoxCollisionShape position="168,21,119" roll="-15" halfExtents="3,5,109" info="sidearmR, outer beam"/>
+        <BoxCollisionShape position="134,-10,169" roll="-15" halfExtents="6,4,55" info="sidearmR, lower beam front"/>
+        <BoxCollisionShape position="131,-20,217" pitch="-20" roll="-15" yaw="5" halfExtents="6,12,3" info="sidearmR, lower beam middle"/>
+        <BoxCollisionShape position="130,-29,233" roll="-15" halfExtents="6,3,15" info="sidearmR, lower beam back"/>
+
+        <BoxCollisionShape position="145,21,71" halfExtents="10,10,1" info="sidearmR, HOOKBOX"/>
+        <BoxCollisionShape position="145,21,29" halfExtents="10,10,1" info="sidearmR, HOOKBOX"/>
+        <BoxCollisionShape position="145,32,50" halfExtents="10,1,20" info="sidearmR, HOOKBOX"/>
+        <BoxCollisionShape position="145,10,50" halfExtents="10,1,20" info="sidearmR, HOOKBOX"/>
+        <BoxCollisionShape position="156,21,50" halfExtents="1,10,20" info="sidearmR, HOOKBOX"/>
+        <BoxCollisionShape position="134,21,50" halfExtents="1,10,20" info="sidearmR, HOOKBOX"/>
+
+
+        <BoxCollisionShape position="141,15,-53" roll="-15" halfExtents="27,44,62" info="sidearmRfront"/>
+        <BoxCollisionShape position="153,59,-30" roll="-15" halfExtents="4,2,38" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,61,-41" roll="-15" halfExtents="4,4,11" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,60,-65" roll="-15" halfExtents="4,3,4" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,59,-41" roll="-15" halfExtents="8,2,11" info="sidearmRfront, top"/>
+
+        <BoxCollisionShape position="145,21,50" halfExtents="10,10,20" info="sidearmRfront, HOOK"/>
+
+
+        <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"/>
+        <BoxCollisionShape position="-127,26,115" roll="15" halfExtents="2,28,105" info="sidearmL, frontInner"/>
+        <BoxCollisionShape position="-161,16,115" roll="15" halfExtents="2,28,105" info="sidearmL, frontOuter"/>
+        <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"/>
+        <BoxCollisionShape position="-153,59,96" roll="15" halfExtents="6,7,60" info="sidearmL, upper beam"/>
+        <BoxCollisionShape position="-143,57,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper inner beam"/>
+        <BoxCollisionShape position="-142,53,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper inner beam"/>
+        <BoxCollisionShape position="-160,52,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper outer beam"/>
+        <BoxCollisionShape position="-159,48,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper outer beam"/>
+        <BoxCollisionShape position="-152,54,34" pitch="-46" yaw="-14" roll="15" halfExtents="6,7,10" info="sidearmL, upper beam front"/>
+        <BoxCollisionShape position="-152,54,162" pitch="30" yaw="9" roll="15" halfExtents="6,7,12" info="sidearmL, upper beam back"/>
+        <BoxCollisionShape position="-168,21,119" roll="15" halfExtents="3,5,109" info="sidearmL, outer beam"/>
+        <BoxCollisionShape position="-134,-10,169" roll="15" halfExtents="6,4,55" info="sidearmL, lower beam front"/>
+        <BoxCollisionShape position="-131,-20,217" pitch="-20" roll="15" yaw="-5" halfExtents="6,12,3" info="sidearmL, lower beam middle"/>
+        <BoxCollisionShape position="-130,-29,233" roll="15" halfExtents="6,3,15" info="sidearmL, lower beam back"/>
+        
+        <BoxCollisionShape position="-145,21,71" halfExtents="10,10,1" info="sidearmL, HOOKBOX"/>
+        <BoxCollisionShape position="-145,21,29" halfExtents="10,10,1" info="sidearmL, HOOKBOX"/>
+        <BoxCollisionShape position="-145,32,50" halfExtents="10,1,20" info="sidearmL, HOOKBOX"/>
+        <BoxCollisionShape position="-145,10,50" halfExtents="10,1,20" info="sidearmL, HOOKBOX"/>
+        <BoxCollisionShape position="-156,21,50" halfExtents="1,10,20" info="sidearmL, HOOKBOX"/>
+        <BoxCollisionShape position="-134,21,50" halfExtents="1,10,20" info="sidearmL, HOOKBOX"/>
+
+
+        <BoxCollisionShape position="-141,15,-53" roll="15" halfExtents="27,44,62" info="sidearmLfront"/>
+        <BoxCollisionShape position="-153,59,-30" roll="15" halfExtents="4,2,38" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,61,-41" roll="15" halfExtents="4,4,11" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,60,-65" roll="15" halfExtents="4,3,4" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,59,-41" roll="15" halfExtents="8,2,11" info="sidearmLfront, top"/>
+
+        <BoxCollisionShape position="-145,21,50" halfExtents="10,10,20" info="sidearmLfront, HOOK"/>
+
+
+        <BoxCollisionShape position="60,35,-310" halfExtents="13,28,60" info="body, bay1, Rwall"/>
+        <BoxCollisionShape position="-60,35,-310" halfExtents="13,28,60" info="body, bay1, Lwall"/>
+        <BoxCollisionShape position="0,56,-310" halfExtents="65,6,60" info="body, bay1, Twall"/>
+        <BoxCollisionShape position="0,33,-260" halfExtents="65,28,5" info="body, bay1, Bwall"/>
+        <BoxCollisionShape position="0,10,-310" halfExtents="65,5,60" info="body, bay1, BottomWall"/>
+
+        <BoxCollisionShape position="0,35,-125" halfExtents="83,30,130" info="body, front"/>
+        <BoxCollisionShape position="0,6,-307" halfExtents="19,3,43" info="body, frontbottom"/>
+        <BoxCollisionShape position="0,5,-196" halfExtents="27,3,24" info="body, dock"/>
+        <BoxCollisionShape position="0,7,-248" pitch="25" halfExtents="63,4,12" info="body, dockF"/>
+        <BoxCollisionShape position="70,6,-120" roll="20" halfExtents="12,6,120" info="body, dockR"/>
+        <BoxCollisionShape position="63,-2,-180" halfExtents="3,3,60" info="body, dockR"/>
+        <BoxCollisionShape position="-70,6,-120" roll="-20" halfExtents="12,6,120" info="body, dockL"/>
+        <BoxCollisionShape position="-63,-2,-180" halfExtents="3,3,60" info="body, dockL"/>
+        <BoxCollisionShape position="87,32,-63" halfExtents="4,23,50" info="body, frontCR"/>
+        <BoxCollisionShape position="-87,32,-63" halfExtents="4,23,50" info="body, frontCL"/>
+
+        <BoxCollisionShape position="0,72,-213" halfExtents="37,8,60" info="body, Fbridge"/>
+        <BoxCollisionShape position="0,72,-110" halfExtents="53,11,53" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,86,-110" halfExtents="40,4,40" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,70,-60" halfExtents="65,11,30" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,84,-45" halfExtents="33,11,26" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,79,-6" pitch="10" halfExtents="32,13,17" info="body, Bbridge"/>
+        <BoxCollisionShape position="38,67,-45" roll="50" halfExtents="16,23,25" info="body, BbridgeR"/>
+        <BoxCollisionShape position="35,63,-17" pitch="25" yaw="-20" roll="40" halfExtents="16,23,16" info="body, BbridgeR"/>
+        <BoxCollisionShape position="-38,67,-45" roll="-50" halfExtents="16,23,25" info="body, BbridgeL"/>
+        <BoxCollisionShape position="-35,63,-17" pitch="25" yaw="20" roll="-40" halfExtents="16,23,16" info="body, BbridgeL"/>
+
+        <BoxCollisionShape position="0,69,80" halfExtents="8,4,80" info="body, Cbeam"/>
+        <BoxCollisionShape position="-67,18,58" roll="-22" halfExtents="13,5,53" info="body, CF, L"/>
+        <BoxCollisionShape position="-76,36,86" halfExtents="5,18,81" info="body, C, L"/>
+        <BoxCollisionShape position="-91,46,86" halfExtents="11,6,20" info="body, C, L upper beam"/>
+        <BoxCollisionShape position="-64,8,79" roll="10" halfExtents="8,3,8" info="body, C, L lower beam"/>
+        <BoxCollisionShape position="-71,55,140" pitch="-4" roll="31" halfExtents="9,5,27" info="body, CB, TopL"/>
+        <BoxCollisionShape position="-62,2,140" roll="24" halfExtents="10,24,32" info="body, CB, BottomL"/>
+        <BoxCollisionShape position="67,18,58" roll="22" halfExtents="13,5,53" info="body, CF, R"/>
+        <BoxCollisionShape position="76,36,86" halfExtents="5,18,81" info="body, C, R"/>
+        <BoxCollisionShape position="91,46,86" halfExtents="11,6,20" info="body, C, R upper beam"/>
+        <BoxCollisionShape position="64,8,79" roll="-10" halfExtents="8,3,8" info="body, C, R lower beam"/>
+        <BoxCollisionShape position="71,55,140" pitch="-4" roll="-31" halfExtents="9,5,27" info="body, CB, TopR"/>
+        <BoxCollisionShape position="62,2,140" roll="-24" halfExtents="10,24,32" info="body, CB, BottomR"/>
+        <BoxCollisionShape position="0,60,12" halfExtents="81,5,11" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,55,40" pitch="15" halfExtents="81,5,20" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,50,85" pitch="1" halfExtents="81,5,29" info="body, C, Top"/>
+        <BoxCollisionShape position="0,59,140" pitch="-4" halfExtents="68,5,27" info="body, CB, Top"/>
+        
+
+
+        <BoxCollisionShape position="0,-7,90" halfExtents="40,4,90" info="body, bay3, Twall"/>
+        <BoxCollisionShape position="0,-15,-60" halfExtents="60,25,65" info="body, bay3, Fwall"/>
+        <BoxCollisionShape position="47,-11,90" halfExtents="13,20,90" info="body, bay3, Rwall"/>
+        <BoxCollisionShape position="-47,-11,90" halfExtents="13,20,90" info="body, bay3, Lwall"/>
+        <BoxCollisionShape position="0,-29,149" halfExtents="10,2,11" info="body, bay3, platform"/>
+        <BoxCollisionShape position="0,-20,227" halfExtents="60,20,65" info="body, bay3, Bwall"/>
+
+        <BoxCollisionShape position="0,81,238" halfExtents="26,5,59" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,67,234" halfExtents="54,5,67" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,77,175" pitch="-36" halfExtents="26,5,9" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,62,161" pitch="-30" halfExtents="56,5,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,69,162" halfExtents="16,7,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="31,76,238" roll="-46" halfExtents="10,3,59" info="body, BF, TopR"/>
+        <BoxCollisionShape position="64,64,234" roll="-24" halfExtents="13,3,67" info="body, BF, TopR"/>
+        <BoxCollisionShape position="-31,76,238" roll="46" halfExtents="10,3,59" info="body, BF, TopL"/>
+        <BoxCollisionShape position="-64,64,234" roll="24" halfExtents="13,3,67" info="body, BF, TopL"/>
+
+        <BoxCollisionShape position="77,40,244" roll="16" halfExtents="7,20,79" info="body, BF, R"/>
+        <BoxCollisionShape position="95,9,234" roll="2" halfExtents="18,16,59" info="body, BF, R"/>
+        <BoxCollisionShape position="74,1,255" roll="-20" halfExtents="18,19,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="66,-21,255" roll="9" halfExtents="17,5,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="-77,40,244" roll="-16" halfExtents="7,20,79" info="body, BF, L"/>
+        <BoxCollisionShape position="-95,9,234" roll="-2" halfExtents="18,16,59" info="body, BF, L"/>
+        <BoxCollisionShape position="-74,1,255" roll="20" halfExtents="18,19,82" info="body, BF, BottomL"/>
+        <BoxCollisionShape position="-66,-21,255" roll="-9" halfExtents="17,5,82" info="body, BF, BottomL"/>
+
+        <BoxCollisionShape position="0,106,381" halfExtents="36,5,71" info="body, BTop"/>
+        <BoxCollisionShape position="0,93,299" pitch="-49" halfExtents="34,5,20" info="body, BTop"/>
+        <BoxCollisionShape position="41,101,381" roll="-42" halfExtents="10,4,71" info="body, BTopR"/>
+        <BoxCollisionShape position="-41,101,381" roll="42" halfExtents="10,4,71" info="body, BTopL"/>
+
+        <BoxCollisionShape position="78,45,332" pitch="-10" roll="-10" yaw="20" halfExtents="10,20,30" info="body, back, R"/>
+        <BoxCollisionShape position="68,77,332" pitch="-10" roll="35" yaw="20" halfExtents="10,20,30" info="body, back, TR"/>
+        <BoxCollisionShape position="50,70,290" pitch="-10" roll="35" yaw="43" halfExtents="5,20,20" info="body, back, TR"/>
+        <BoxCollisionShape position="37,95,307" pitch="-10" roll="30" yaw="43" halfExtents="5,8,8" info="body, back, TR"/>
+        <BoxCollisionShape position="52,92,332" pitch="-10" yaw="30" halfExtents="10,5,30" info="body, back, TR"/>
+        <BoxCollisionShape position="88,4,322" halfExtents="10,24,30" info="body, back, RB"/>
+        <BoxCollisionShape position="54,-24,314" roll="35" pitch="-10" halfExtents="8,5,23" info="body, back, RB"/>
+        <BoxCollisionShape position="68,-19,346" pitch="-17" roll="8" halfExtents="16,4,11" info="body, back, bottomR"/>
+        <BoxCollisionShape position="-78,45,332" pitch="-10" roll="10" yaw="-20" halfExtents="10,20,30" info="body, back, L"/>
+        <BoxCollisionShape position="-68,77,332" pitch="-10" roll="-35" yaw="-20" halfExtents="10,20,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-50,70,290" pitch="-10" roll="-35" yaw="-43" halfExtents="5,20,20" info="body, back, TL"/>
+        <BoxCollisionShape position="-37,95,307" pitch="-10" roll="-30" yaw="-43" halfExtents="5,8,8" info="body, back, TL"/>
+        <BoxCollisionShape position="-52,92,332" pitch="-10" yaw="-30" halfExtents="10,5,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-88,4,322" halfExtents="10,24,30" info="body, back, LB"/>
+        <BoxCollisionShape position="-54,-24,314" roll="-35" pitch="-10" halfExtents="8,5,23" info="body, back, LB"/>
+        <BoxCollisionShape position="-68,-19,346" pitch="-17" roll="-8" halfExtents="16,4,11" info="body, back, bottomL"/>
+        <BoxCollisionShape position="0,-30,314" pitch="-8" halfExtents="52,4,23" info="body, back, bottom"/>
+        <BoxCollisionShape position="0,-22,346" pitch="-24" halfExtents="52,4,11" info="body, back, bottom"/>
+
+        <BoxCollisionShape position="48,-29,400" halfExtents="5,8,58" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="48,-29,451" halfExtents="10,13,14" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="-48,-29,400" halfExtents="5,8,58" info="body, BBottomLBeam"/>
+        <BoxCollisionShape position="-48,-31,451" halfExtents="10,13,14" info="body, BBottomLBeam"/>
+
+        <BoxCollisionShape position="103,60,420" halfExtents="18,9,64" info="body, back, Rextrusion"/>
+        <BoxCollisionShape position="-103,60,420" halfExtents="18,9,64" info="body, back, Lextrusion"/>
+        <BoxCollisionShape position="-85,7,417" halfExtents="10,21,67" info="body, back, LB"/>
+        <BoxCollisionShape position="85,7,417" halfExtents="10,21,67" info="body, back, RB"/>
+        <BoxCollisionShape position="0,-8,473" halfExtents="90,6,10" info="body, back, Bback"/>
+        <BoxCollisionShape position="0,-13,474" pitch="-23" halfExtents="76,5,8" info="body, back, Bback"/>
+        <BoxCollisionShape position="-79,-13,405" roll="-12" halfExtents="15,5,73" info="body, back, BL"/>
+        <BoxCollisionShape position="79,-13,405" roll="12" halfExtents="15,5,73" info="body, back, BR"/>
+        <BoxCollisionShape position="0,-15,410" halfExtents="66,6,58" info="body, back, B"/>
+
+        <BoxCollisionShape position="78,32,440" roll="-18" halfExtents="18,35,85" info="body, bay2, Rwall"/>
+        <BoxCollisionShape position="75,71,440" roll="35" halfExtents="18,27,85" info="body, bay2, Rwall"/>
+        <BoxCollisionShape position="-78,32,440" roll="18" halfExtents="18,35,85" info="body, bay2, Lwall"/>
+        <BoxCollisionShape position="-75,71,440" roll="-35" halfExtents="18,27,85" info="body, bay2, Lwall"/>
+        <BoxCollisionShape position="0,75,435" halfExtents="72,28,90" info="body, bay2, Twall"/>
+        <BoxCollisionShape position="0,35,423" halfExtents="85,35,5" info="body, bay2, Fwall"/>
+        <BoxCollisionShape position="0,-3,465" halfExtents="84,5,60" info="body, bay2, BottomWall"/>
+        <BoxCollisionShape position="0,78,526" halfExtents="43,17,5" info="body, bay2, Twall"/>
+        
+        
+        <BoxCollisionShape position="0,7,80" halfExtents="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+        <BoxCollisionShape position="0,29,80" halfExtents="23,1,34" info="HOOKBOX, top"/>
+        <BoxCollisionShape position="-22,18,80" halfExtents="1,12,34" info="HOOKBOX, left long"/>
+        <BoxCollisionShape position="0,18,80" halfExtents="1,12,34" info="HOOKBOX, center long"/>
+        <BoxCollisionShape position="22,18,80" halfExtents="1,12,34" info="HOOKBOX, right long"/>
+        <BoxCollisionShape position="0,18,113" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+        <BoxCollisionShape position="0,18,91" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+        <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>
+
+    <!-- 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 >
+    <attached>
+        <Model position="80,33,-320" mesh="cube.mesh" scale3D="7,11,54" info="frontR"/>
+        <Model position="79,31,-399" mesh="cube.mesh" scale3D="3,6,26" info="frontR"/>
+
+
+        <Model position="-80,33,-320" mesh="cube.mesh" scale3D="7,11,54" info="frontL"/>
+        <Model position="-79,31,-399" mesh="cube.mesh" scale3D="3,6,26" info="frontL"/>
+
+
+        <Model position="94,33,-179" mesh="cube.mesh" scale3D="11,13,45" info="partR"/>
+        <Model position="96,33,-230" mesh="cube.mesh" scale3D="13,17,22" info="partR"/>
+
+
+        <Model position="-94,33,-179" mesh="cube.mesh" scale3D="11,13,45" info="partL"/>
+        <Model position="-96,33,-230" mesh="cube.mesh" scale3D="13,17,22" info="partL"/>
+
+
+        <Model position="109,47,87" mesh="cube.mesh" scale3D="29,8,26" info="sidearmR, upper connection"/>
+        <Model position="99,-1,79" roll="-15" mesh="cube.mesh" scale3D="40,4,9" info="sidearmR, lower connection"/>
+        <Model position="151,47,115" roll="-15" mesh="cube.mesh" scale3D="16,2,105" info="sidearmR, frontTop"/>
+        <Model position="136,-7,115" roll="-15" mesh="cube.mesh" scale3D="16,2,105" info="sidearmR, frontBottom"/>
+        <Model position="127,26,115" roll="-15" mesh="cube.mesh" scale3D="2,28,105" info="sidearmR, frontInner"/>
+        <Model position="161,16,115" roll="-15" mesh="cube.mesh" scale3D="2,28,105" info="sidearmR, frontOuter"/>
+        <Model position="145,21,12" roll="-15" mesh="cube.mesh" scale3D="16,28,2" info="sidearmR, front"/>
+        <Model position="140,12,261" roll="-15" mesh="cube.mesh" scale3D="22,41,43" info="sidearmR, back"/>
+        <Model position="145,25,5" roll="-15" mesh="cube.mesh" scale3D="10,18,5" info="sidearmR, front break"/>
+        <Model position="133,-13,29" roll="-15" mesh="cube.mesh" scale3D="12,6,17" info="sidearmR, bottom cylinder"/>
+        <Model position="165,-4,31" roll="-15" mesh="cube.mesh" scale3D="7,21,13" info="sidearmR, box"/>
+        <Model position="153,59,96" roll="-15" mesh="cube.mesh" scale3D="6,7,60" info="sidearmR, upper beam"/>
+        <Model position="143,57,119" roll="-15" mesh="cube.mesh" scale3D="3,4,85" info="sidearmR, upper inner beam"/>
+        <Model position="142,53,212" pitch="21" yaw="-5" roll="-15" mesh="cube.mesh" scale3D="3,4,10" info="sidearmR, upper inner beam"/>
+        <Model position="160,52,119" roll="-15" mesh="cube.mesh" scale3D="3,4,85" info="sidearmR, upper outer beam"/>
+        <Model position="159,48,212" pitch="21" yaw="-5" roll="-15" mesh="cube.mesh" scale3D="3,4,10" info="sidearmR, upper outer beam"/>
+        <Model position="152,54,34" pitch="-46" yaw="14" roll="-15" mesh="cube.mesh" scale3D="6,7,10" info="sidearmR, upper beam front"/>
+        <Model position="152,54,162" pitch="30" yaw="-9" roll="-15" mesh="cube.mesh" scale3D="6,7,12" info="sidearmR, upper beam back"/>
+        <Model position="168,21,119" roll="-15" mesh="cube.mesh" scale3D="3,5,109" info="sidearmR, outer beam"/>
+        <Model position="134,-10,169" roll="-15" mesh="cube.mesh" scale3D="6,4,55" info="sidearmR, lower beam front"/>
+        <Model position="131,-20,217" pitch="-20" roll="-15" yaw="5" mesh="cube.mesh" scale3D="6,12,3" info="sidearmR, lower beam middle"/>
+        <Model position="130,-29,233" roll="-15" mesh="cube.mesh" scale3D="6,3,15" info="sidearmR, lower beam back"/>
+
+        <Model position="145,21,71" mesh="cube.mesh" scale3D="10,10,1" info="sidearmR, HOOKBOX"/>
+        <Model position="145,21,29" mesh="cube.mesh" scale3D="10,10,1" info="sidearmR, HOOKBOX"/>
+        <Model position="145,32,50" mesh="cube.mesh" scale3D="10,1,20" info="sidearmR, HOOKBOX"/>
+        <Model position="145,10,50" mesh="cube.mesh" scale3D="10,1,20" info="sidearmR, HOOKBOX"/>
+        <Model position="156,21,50" mesh="cube.mesh" scale3D="1,10,20" info="sidearmR, HOOKBOX"/>
+        <Model position="134,21,50" mesh="cube.mesh" scale3D="1,10,20" info="sidearmR, HOOKBOX"/>
+
+
+        <Model position="141,15,-53" roll="-15" mesh="cube.mesh" scale3D="27,44,62" info="sidearmRfront"/>
+        <Model position="153,59,-30" roll="-15" mesh="cube.mesh" scale3D="4,2,38" info="sidearmRfront, top"/>
+        <Model position="153,61,-41" roll="-15" mesh="cube.mesh" scale3D="4,4,11" info="sidearmRfront, top"/>
+        <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"/>-->
+
+
+        <Model position="-109,47,87" mesh="cube.mesh" scale3D="29,8,26" info="sidearmL, upper connection"/>
+        <Model position="-99,-1,79" roll="15" mesh="cube.mesh" scale3D="40,4,9" info="sidearmL, lower connection"/>
+        <Model position="-151,47,115" roll="15" mesh="cube.mesh" scale3D="16,2,105" info="sidearmL, frontTop"/>
+        <Model position="-136,-7,115" roll="15" mesh="cube.mesh" scale3D="16,2,105" info="sidearmL, frontBottom"/>
+        <Model position="-127,26,115" roll="15" mesh="cube.mesh" scale3D="2,28,105" info="sidearmL, frontInner"/>
+        <Model position="-161,16,115" roll="15" mesh="cube.mesh" scale3D="2,28,105" info="sidearmL, frontOuter"/>
+        <Model position="-145,21,12" roll="15" mesh="cube.mesh" scale3D="16,28,2" info="sidearmL, front"/>
+        <Model position="-140,12,261" roll="15" mesh="cube.mesh" scale3D="22,41,43" info="sidearmL, back"/>
+        <Model position="-145,25,5" roll="15" mesh="cube.mesh" scale3D="10,18,5" info="sidearmL, front break"/>
+        <Model position="-133,-13,29" roll="15" mesh="cube.mesh" scale3D="12,6,17" info="sidearmL, bottom cylinder"/>
+        <Model position="-165,-4,31" roll="15" mesh="cube.mesh" scale3D="7,21,13" info="sidearmL, box"/>
+        <Model position="-153,59,96" roll="15" mesh="cube.mesh" scale3D="6,7,60" info="sidearmL, upper beam"/>
+        <Model position="-143,57,119" roll="15" mesh="cube.mesh" scale3D="3,4,85" info="sidearmL, upper inner beam"/>
+        <Model position="-142,53,212" pitch="21" yaw="5" roll="15" mesh="cube.mesh" scale3D="3,4,10" info="sidearmL, upper inner beam"/>
+        <Model position="-160,52,119" roll="15" mesh="cube.mesh" scale3D="3,4,85" info="sidearmL, upper outer beam"/>
+        <Model position="-159,48,212" pitch="21" yaw="5" roll="15" mesh="cube.mesh" scale3D="3,4,10" info="sidearmL, upper outer beam"/>
+        <Model position="-152,54,34" pitch="-46" yaw="-14" roll="15" mesh="cube.mesh" scale3D="6,7,10" info="sidearmL, upper beam front"/>
+        <Model position="-152,54,162" pitch="30" yaw="9" roll="15" mesh="cube.mesh" scale3D="6,7,12" info="sidearmL, upper beam back"/>
+        <Model position="-168,21,119" roll="15" mesh="cube.mesh" scale3D="3,5,109" info="sidearmL, outer beam"/>
+        <Model position="-134,-10,169" roll="15" mesh="cube.mesh" scale3D="6,4,55" info="sidearmL, lower beam front"/>
+        <Model position="-131,-20,217" pitch="-20" roll="15" yaw="-5" mesh="cube.mesh" scale3D="6,12,3" info="sidearmL, lower beam middle"/>
+        <Model position="-130,-29,233" roll="15" mesh="cube.mesh" scale3D="6,3,15" info="sidearmL, lower beam back"/>
+        
+        <Model position="-145,21,71" mesh="cube.mesh" scale3D="10,10,1" info="sidearmL, HOOKBOX"/>
+        <Model position="-145,21,29" mesh="cube.mesh" scale3D="10,10,1" info="sidearmL, HOOKBOX"/>
+        <Model position="-145,32,50" mesh="cube.mesh" scale3D="10,1,20" info="sidearmL, HOOKBOX"/>
+        <Model position="-145,10,50" mesh="cube.mesh" scale3D="10,1,20" info="sidearmL, HOOKBOX"/>
+        <Model position="-156,21,50" mesh="cube.mesh" scale3D="1,10,20" info="sidearmL, HOOKBOX"/>
+        <Model position="-134,21,50" mesh="cube.mesh" scale3D="1,10,20" info="sidearmL, HOOKBOX"/>
+
+
+        <Model position="-141,15,-53" roll="15" mesh="cube.mesh" scale3D="27,44,62" info="sidearmLfront"/>
+        <Model position="-153,59,-30" roll="15" mesh="cube.mesh" scale3D="4,2,38" info="sidearmLfront, top"/>
+        <Model position="-153,61,-41" roll="15" mesh="cube.mesh" scale3D="4,4,11" info="sidearmLfront, top"/>
+        <Model position="-153,60,-65" roll="15" mesh="cube.mesh" scale3D="4,3,4" info="sidearmLfront, top"/>
+        <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"/>
+        <Model position="-60,35,-310" mesh="cube.mesh" scale3D="13,28,60" info="body, bay1, Lwall"/>
+        <Model position="0,56,-310" mesh="cube.mesh" scale3D="65,6,60" info="body, bay1, Twall"/>
+        <Model position="0,33,-260" mesh="cube.mesh" scale3D="65,28,5" info="body, bay1, Bwall"/>
+        <Model position="0,10,-310" mesh="cube.mesh" scale3D="65,5,60" info="body, bay1, BottomWall"/>
+
+        <Model position="0,35,-125" mesh="cube.mesh" scale3D="83,30,130" info="body, front"/>
+        <Model position="0,6,-307" mesh="cube.mesh" scale3D="19,3,43" info="body, frontbottom"/>
+        <Model position="0,5,-196" mesh="cube.mesh" scale3D="27,3,24" info="body, dock"/>
+        <Model position="0,7,-248" pitch="25" mesh="cube.mesh" scale3D="63,4,12" info="body, dockF"/>
+        <Model position="70,6,-120" roll="20" mesh="cube.mesh" scale3D="12,6,120" info="body, dockR"/>
+        <Model position="63,-2,-180" mesh="cube.mesh" scale3D="3,3,60" info="body, dockR"/>
+        <Model position="-70,6,-120" roll="-20" mesh="cube.mesh" scale3D="12,6,120" info="body, dockL"/>
+        <Model position="-63,-2,-180" mesh="cube.mesh" scale3D="3,3,60" info="body, dockL"/>
+        <Model position="87,32,-63" mesh="cube.mesh" scale3D="4,23,50" info="body, frontCR"/>
+        <Model position="-87,32,-63" mesh="cube.mesh" scale3D="4,23,50" info="body, frontCL"/>
+
+        <Model position="0,72,-213" mesh="cube.mesh" scale3D="37,8,60" info="body, Fbridge"/>
+        <Model position="0,72,-110" mesh="cube.mesh" scale3D="53,11,53" info="body, Cbridge"/>
+        <Model position="0,86,-110" mesh="cube.mesh" scale3D="40,4,40" info="body, Cbridge"/>
+        <Model position="0,70,-60" mesh="cube.mesh" scale3D="65,11,30" info="body, Bbridge"/>
+        <Model position="0,84,-45" mesh="cube.mesh" scale3D="33,11,26" info="body, Bbridge"/>
+        <Model position="0,79,-6" pitch="10" mesh="cube.mesh" scale3D="32,13,17" info="body, Bbridge"/>
+        <Model position="38,67,-45" roll="50" mesh="cube.mesh" scale3D="16,23,25" info="body, BbridgeR"/>
+        <Model position="35,63,-17" pitch="25" yaw="-20" roll="40" mesh="cube.mesh" scale3D="16,23,16" info="body, BbridgeR"/>
+        <Model position="-38,67,-45" roll="-50" mesh="cube.mesh" scale3D="16,23,25" info="body, BbridgeL"/>
+        <Model position="-35,63,-17" pitch="25" yaw="20" roll="-40" mesh="cube.mesh" scale3D="16,23,16" info="body, BbridgeL"/>
+
+        <Model position="0,69,80" mesh="cube.mesh" scale3D="8,4,80" info="body, Cbeam"/>
+        <Model position="-67,18,58" roll="-22" mesh="cube.mesh" scale3D="13,5,53" info="body, CF, L"/>
+        <Model position="-76,36,86" mesh="cube.mesh" scale3D="5,18,81" info="body, C, L"/>
+        <Model position="-91,46,86" mesh="cube.mesh" scale3D="11,6,20" info="body, C, L upper beam"/>
+        <Model position="-64,8,79" roll="10" mesh="cube.mesh" scale3D="8,3,8" info="body, C, L lower beam"/>
+        <Model position="-71,55,140" pitch="-4" roll="31" mesh="cube.mesh" scale3D="9,5,27" info="body, CB, TopL"/>
+        <Model position="-62,2,140" roll="24" mesh="cube.mesh" scale3D="10,24,32" info="body, CB, BottomL"/>
+        <Model position="67,18,58" roll="22" mesh="cube.mesh" scale3D="13,5,53" info="body, CF, R"/>
+        <Model position="76,36,86" mesh="cube.mesh" scale3D="5,18,81" info="body, C, R"/>
+        <Model position="91,46,86" mesh="cube.mesh" scale3D="11,6,20" info="body, C, R upper beam"/>
+        <Model position="64,8,79" roll="-10" mesh="cube.mesh" scale3D="8,3,8" info="body, C, R lower beam"/>
+        <Model position="71,55,140" pitch="-4" roll="-31" mesh="cube.mesh" scale3D="9,5,27" info="body, CB, TopR"/>
+        <Model position="62,2,140" roll="-24" mesh="cube.mesh" scale3D="10,24,32" info="body, CB, BottomR"/>
+        <Model position="0,60,12" mesh="cube.mesh" scale3D="81,5,11" info="body, CF, Top"/>
+        <Model position="0,55,40" pitch="15" mesh="cube.mesh" scale3D="81,5,20" info="body, CF, Top"/>
+        <Model position="0,50,85" pitch="1" mesh="cube.mesh" scale3D="81,5,29" info="body, C, Top"/>
+        <Model position="0,59,140" pitch="-4" mesh="cube.mesh" scale3D="68,5,27" info="body, CB, Top"/>
+        
+
+
+        <Model position="0,-7,90" mesh="cube.mesh" scale3D="40,4,90" info="body, bay3, Twall"/>
+        <Model position="0,-15,-60" mesh="cube.mesh" scale3D="60,25,65" info="body, bay3, Fwall"/>
+        <Model position="47,-11,90" mesh="cube.mesh" scale3D="13,20,90" info="body, bay3, Rwall"/>
+        <Model position="-47,-11,90" mesh="cube.mesh" scale3D="13,20,90" info="body, bay3, Lwall"/>
+        <Model position="0,-29,149" mesh="cube.mesh" scale3D="10,2,11" info="body, bay3, platform"/>
+        <Model position="0,-20,227" mesh="cube.mesh" scale3D="60,20,65" info="body, bay3, Bwall"/>
+
+        <Model position="0,81,238" mesh="cube.mesh" scale3D="26,5,59" info="body, BF, Top"/>
+        <Model position="0,67,234" mesh="cube.mesh" scale3D="54,5,67" info="body, BF, Top"/>
+        <Model position="0,77,175" pitch="-36" mesh="cube.mesh" scale3D="26,5,9" info="body, BF, Top"/>
+        <Model position="0,62,161" pitch="-30" mesh="cube.mesh" scale3D="56,5,10" info="body, BF, Top"/>
+        <Model position="0,69,162" mesh="cube.mesh" scale3D="16,7,10" info="body, BF, Top"/>
+        <Model position="31,76,238" roll="-46" mesh="cube.mesh" scale3D="10,3,59" info="body, BF, TopR"/>
+        <Model position="64,64,234" roll="-24" mesh="cube.mesh" scale3D="13,3,67" info="body, BF, TopR"/>
+        <Model position="-31,76,238" roll="46" mesh="cube.mesh" scale3D="10,3,59" info="body, BF, TopL"/>
+        <Model position="-64,64,234" roll="24" mesh="cube.mesh" scale3D="13,3,67" info="body, BF, TopL"/>
+
+        <Model position="77,40,244" roll="16" mesh="cube.mesh" scale3D="7,20,79" info="body, BF, R"/>
+        <Model position="95,9,234" roll="2" mesh="cube.mesh" scale3D="18,16,59" info="body, BF, R"/>
+        <Model position="74,1,255" roll="-20" mesh="cube.mesh" scale3D="18,19,82" info="body, BF, BottomR"/>
+        <Model position="66,-21,255" roll="9" mesh="cube.mesh" scale3D="17,5,82" info="body, BF, BottomR"/>
+        <Model position="-77,40,244" roll="-16" mesh="cube.mesh" scale3D="7,20,79" info="body, BF, L"/>
+        <Model position="-95,9,234" roll="-2" mesh="cube.mesh" scale3D="18,16,59" info="body, BF, L"/>
+        <Model position="-74,1,255" roll="20" mesh="cube.mesh" scale3D="18,19,82" info="body, BF, BottomL"/>
+        <Model position="-66,-21,255" roll="-9" mesh="cube.mesh" scale3D="17,5,82" info="body, BF, BottomL"/>
+
+        <Model position="0,106,381" mesh="cube.mesh" scale3D="36,5,71" info="body, BTop"/>
+        <Model position="0,93,299" pitch="-49" mesh="cube.mesh" scale3D="34,5,20" info="body, BTop"/>
+        <Model position="41,101,381" roll="-42" mesh="cube.mesh" scale3D="10,4,71" info="body, BTopR"/>
+        <Model position="-41,101,381" roll="42" mesh="cube.mesh" scale3D="10,4,71" info="body, BTopL"/>
+
+        <Model position="78,45,332" pitch="-10" roll="-10" yaw="20" mesh="cube.mesh" scale3D="10,20,30" info="body, back, R"/>
+        <Model position="68,77,332" pitch="-10" roll="35" yaw="20" mesh="cube.mesh" scale3D="10,20,30" info="body, back, TR"/>
+        <Model position="50,70,290" pitch="-10" roll="35" yaw="43" mesh="cube.mesh" scale3D="5,20,20" info="body, back, TR"/>
+        <Model position="37,95,307" pitch="-10" roll="30" yaw="43" mesh="cube.mesh" scale3D="5,8,8" info="body, back, TR"/>
+        <Model position="52,92,332" pitch="-10" yaw="30" mesh="cube.mesh" scale3D="10,5,30" info="body, back, TR"/>
+        <Model position="88,4,322" mesh="cube.mesh" scale3D="10,24,30" info="body, back, RB"/>
+        <Model position="54,-24,314" roll="35" pitch="-10" mesh="cube.mesh" scale3D="8,5,23" info="body, back, RB"/>
+        <Model position="68,-19,346" pitch="-17" roll="8" mesh="cube.mesh" scale3D="16,4,11" info="body, back, bottomR"/>
+        <Model position="-78,45,332" pitch="-10" roll="10" yaw="-20" mesh="cube.mesh" scale3D="10,20,30" info="body, back, L"/>
+        <Model position="-68,77,332" pitch="-10" roll="-35" yaw="-20" mesh="cube.mesh" scale3D="10,20,30" info="body, back, TL"/>
+        <Model position="-50,70,290" pitch="-10" roll="-35" yaw="-43" mesh="cube.mesh" scale3D="5,20,20" info="body, back, TL"/>
+        <Model position="-37,95,307" pitch="-10" roll="-30" yaw="-43" mesh="cube.mesh" scale3D="5,8,8" info="body, back, TL"/>
+        <Model position="-52,92,332" pitch="-10" yaw="-30" mesh="cube.mesh" scale3D="10,5,30" info="body, back, TL"/>
+        <Model position="-88,4,322" mesh="cube.mesh" scale3D="10,24,30" info="body, back, LB"/>
+        <Model position="-54,-24,314" roll="-35" pitch="-10" mesh="cube.mesh" scale3D="8,5,23" info="body, back, LB"/>
+        <Model position="-68,-19,346" pitch="-17" roll="-8" mesh="cube.mesh" scale3D="16,4,11" info="body, back, bottomL"/>
+        <Model position="0,-30,314" pitch="-8" mesh="cube.mesh" scale3D="52,4,23" info="body, back, bottom"/>
+        <Model position="0,-22,346" pitch="-24" mesh="cube.mesh" scale3D="52,4,11" info="body, back, bottom"/>
+
+        <Model position="48,-29,400" mesh="cube.mesh" scale3D="5,8,58" info="body, BBottomRBeam"/>
+        <Model position="48,-29,451" mesh="cube.mesh" scale3D="10,13,14" info="body, BBottomRBeam"/>
+        <Model position="-48,-29,400" mesh="cube.mesh" scale3D="5,8,58" info="body, BBottomLBeam"/>
+        <Model position="-48,-31,451" mesh="cube.mesh" scale3D="10,13,14" info="body, BBottomLBeam"/>
+
+        <Model position="103,60,420" mesh="cube.mesh" scale3D="18,9,64" info="body, back, Rextrusion"/>
+        <Model position="-103,60,420" mesh="cube.mesh" scale3D="18,9,64" info="body, back, Lextrusion"/>
+        <Model position="-85,7,417" mesh="cube.mesh" scale3D="10,21,67" info="body, back, LB"/>
+        <Model position="85,7,417" mesh="cube.mesh" scale3D="10,21,67" info="body, back, RB"/>
+        <Model position="0,-8,473" mesh="cube.mesh" scale3D="90,6,10" info="body, back, Bback"/>
+        <Model position="0,-13,474" pitch="-23" mesh="cube.mesh" scale3D="76,5,8" info="body, back, Bback"/>
+        <Model position="-79,-13,405" roll="-12" mesh="cube.mesh" scale3D="15,5,73" info="body, back, BL"/>
+        <Model position="79,-13,405" roll="12" mesh="cube.mesh" scale3D="15,5,73" info="body, back, BR"/>
+        <Model position="0,-15,410" mesh="cube.mesh" scale3D="66,6,58" info="body, back, B"/>
+
+        <Model position="78,32,440" roll="-18" mesh="cube.mesh" scale3D="18,35,85" info="body, bay2, Rwall"/>
+        <Model position="75,71,440" roll="35" mesh="cube.mesh" scale3D="18,27,85" info="body, bay2, Rwall"/>
+        <Model position="-78,32,440" roll="18" mesh="cube.mesh" scale3D="18,35,85" info="body, bay2, Lwall"/>
+        <Model position="-75,71,440" roll="-35" mesh="cube.mesh" scale3D="18,27,85" info="body, bay2, Lwall"/>
+        <Model position="0,75,435" mesh="cube.mesh" scale3D="72,28,90" info="body, bay2, Twall"/>
+        <Model position="0,35,423" mesh="cube.mesh" scale3D="85,35,5" info="body, bay2, Fwall"/>
+        <Model position="0,-3,465" mesh="cube.mesh" scale3D="84,5,60" info="body, bay2, BottomWall"/>
+        <Model position="0,78,526" mesh="cube.mesh" scale3D="43,17,5" info="body, bay2, Twall"/>
+
+        
+        <Model position="0,7,80" mesh="cube.mesh" scale3D="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+        <Model position="0,29,80" mesh="cube.mesh" scale3D="23,1,34" info="HOOKBOX, top"/>
+        <Model position="-22,18,80" mesh="cube.mesh" scale3D="1,12,34" info="HOOKBOX, left long"/>
+        <Model position="0,18,80" mesh="cube.mesh" scale3D="1,12,34" info="HOOKBOX, center long"/>
+        <Model position="22,18,80" mesh="cube.mesh" scale3D="1,12,34" info="HOOKBOX, right long"/>
+        <Model position="0,18,113" mesh="cube.mesh" scale3D="23,12,1" info="HOOKBOX, wide"/>
+        <Model position="0,18,91" mesh="cube.mesh" scale3D="23,12,1" info="HOOKBOX, wide"/>
+        <Model position="0,18,69" mesh="cube.mesh" scale3D="23,12,1" info="HOOKBOX, wide"/>
+        <Model position="0,18,47" mesh="cube.mesh" scale3D="23,12,1" info="HOOKBOX, wide"/>
+        
+        <Model position="-11,18,102" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, frontL"/>
+        <Model position="11,18,102" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, frontR"/>
+        <Model position="-11,18,80" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, partL"/>
+        <Model position="11,18,80" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, partR"/>
+        <Model position="-11,18,58" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, sidearmL"/>
+        <Model position="11,18,58" mesh="cube.mesh" scale3D="10,10,10" info="HOOK, sidearmR"/>
+    </attached>
+    <collisionShapes>
+    </collisionShapes>
+    </StaticEntity>
+
+
+
+<!-- 9 Pawns, each being a part of HeavyCruiser.
+    The first Pawn, being the ships main body, is in comments, allowing the playable SpaceShip to be spawned there instead.
+    All Pawns can easily be included into a level using the lua file "HeavyCruiserParts" -->
+
+    <Pawn team=1 health=1000 initialhealth=1000 maxhealth=1000 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=10000 name=HeavyCruiser_body radarname = "HeavyCruiser" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_body.mesh" scale="40" />
+
+            <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 />
+            <BlinkingBillboard position="74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 quadratic=1 />
+            <BlinkingBillboard position="-74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 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 />
+            <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="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 />
+            
+            <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 />
+            <BlinkingBillboard position="74,103,524" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
+            <BlinkingBillboard position="-74,103,524" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="60,35,-310" halfExtents="13,28,60" info="body, bay1, Rwall"/>
+            <BoxCollisionShape position="-60,35,-310" halfExtents="13,28,60" info="body, bay1, Lwall"/>
+            <BoxCollisionShape position="0,56,-310" halfExtents="65,6,60" info="body, bay1, Twall"/>
+            <BoxCollisionShape position="0,33,-260" halfExtents="65,28,5" info="body, bay1, Bwall"/>
+            <BoxCollisionShape position="0,10,-310" halfExtents="65,5,60" info="body, bay1, BottomWall"/>
+
+            <BoxCollisionShape position="0,35,-125" halfExtents="83,30,130" info="body, front"/>
+            <BoxCollisionShape position="0,6,-307" halfExtents="19,3,43" info="body, frontbottom"/>
+            <BoxCollisionShape position="0,5,-196" halfExtents="27,3,24" info="body, dock"/>
+            <BoxCollisionShape position="0,7,-248" pitch="25" halfExtents="63,4,12" info="body, dockF"/>
+            <BoxCollisionShape position="70,6,-120" roll="20" halfExtents="12,6,120" info="body, dockR"/>
+            <BoxCollisionShape position="63,-2,-180" halfExtents="3,3,60" info="body, dockR"/>
+            <BoxCollisionShape position="-70,6,-120" roll="-20" halfExtents="12,6,120" info="body, dockL"/>
+            <BoxCollisionShape position="-63,-2,-180" halfExtents="3,3,60" info="body, dockL"/>
+            <BoxCollisionShape position="87,32,-63" halfExtents="4,23,50" info="body, frontCR"/>
+            <BoxCollisionShape position="-87,32,-63" halfExtents="4,23,50" info="body, frontCL"/>
+
+            <BoxCollisionShape position="0,72,-213" halfExtents="37,8,60" info="body, Fbridge"/>
+            <BoxCollisionShape position="0,72,-110" halfExtents="53,11,53" info="body, Cbridge"/>
+            <BoxCollisionShape position="0,86,-110" halfExtents="40,4,40" info="body, Cbridge"/>
+            <BoxCollisionShape position="0,70,-60" halfExtents="65,11,30" info="body, Bbridge"/>
+            <BoxCollisionShape position="0,84,-45" halfExtents="33,11,26" info="body, Bbridge"/>
+            <BoxCollisionShape position="0,79,-6" pitch="10" halfExtents="32,13,17" info="body, Bbridge"/>
+            <BoxCollisionShape position="38,67,-45" roll="50" halfExtents="16,23,25" info="body, BbridgeR"/>
+            <BoxCollisionShape position="35,63,-17" pitch="25" yaw="-20" roll="40" halfExtents="16,23,16" info="body, BbridgeR"/>
+            <BoxCollisionShape position="-38,67,-45" roll="-50" halfExtents="16,23,25" info="body, BbridgeL"/>
+            <BoxCollisionShape position="-35,63,-17" pitch="25" yaw="20" roll="-40" halfExtents="16,23,16" info="body, BbridgeL"/>
+
+            <BoxCollisionShape position="0,69,80" halfExtents="8,4,80" info="body, Cbeam"/>
+            <BoxCollisionShape position="-67,18,58" roll="-22" halfExtents="13,5,53" info="body, CF, L"/>
+            <BoxCollisionShape position="-76,36,86" halfExtents="5,18,81" info="body, C, L"/>
+            <BoxCollisionShape position="-91,46,86" halfExtents="11,6,20" info="body, C, L upper beam"/>
+            <BoxCollisionShape position="-64,8,79" roll="10" halfExtents="8,3,8" info="body, C, L lower beam"/>
+            <BoxCollisionShape position="-71,55,140" pitch="-4" roll="31" halfExtents="9,5,27" info="body, CB, TopL"/>
+            <BoxCollisionShape position="-62,2,140" roll="24" halfExtents="10,24,32" info="body, CB, BottomL"/>
+            <BoxCollisionShape position="67,18,58" roll="22" halfExtents="13,5,53" info="body, CF, R"/>
+            <BoxCollisionShape position="76,36,86" halfExtents="5,18,81" info="body, C, R"/>
+            <BoxCollisionShape position="91,46,86" halfExtents="11,6,20" info="body, C, R upper beam"/>
+            <BoxCollisionShape position="64,8,79" roll="-10" halfExtents="8,3,8" info="body, C, R lower beam"/>
+            <BoxCollisionShape position="71,55,140" pitch="-4" roll="-31" halfExtents="9,5,27" info="body, CB, TopR"/>
+            <BoxCollisionShape position="62,2,140" roll="-24" halfExtents="10,24,32" info="body, CB, BottomR"/>
+            <BoxCollisionShape position="0,60,12" halfExtents="81,5,11" info="body, CF, Top"/>
+            <BoxCollisionShape position="0,55,40" pitch="15" halfExtents="81,5,20" info="body, CF, Top"/>
+            <BoxCollisionShape position="0,50,85" pitch="1" halfExtents="81,5,29" info="body, C, Top"/>
+            <BoxCollisionShape position="0,59,140" pitch="-4" halfExtents="68,5,27" info="body, CB, Top"/>
+
+            <BoxCollisionShape position="0,-7,90" halfExtents="40,4,90" info="body, bay3, Twall"/>
+            <BoxCollisionShape position="0,-15,-60" halfExtents="60,25,65" info="body, bay3, Fwall"/>
+            <BoxCollisionShape position="47,-11,90" halfExtents="13,20,90" info="body, bay3, Rwall"/>
+            <BoxCollisionShape position="-47,-11,90" halfExtents="13,20,90" info="body, bay3, Lwall"/>
+            <BoxCollisionShape position="0,-29,149" halfExtents="10,2,11" info="body, bay3, platform"/>
+            <BoxCollisionShape position="0,-20,227" halfExtents="60,20,65" info="body, bay3, Bwall"/>
+
+            <BoxCollisionShape position="0,81,238" halfExtents="26,5,59" info="body, BF, Top"/>
+            <BoxCollisionShape position="0,67,234" halfExtents="54,5,67" info="body, BF, Top"/>
+            <BoxCollisionShape position="0,77,175" pitch="-36" halfExtents="26,5,9" info="body, BF, Top"/>
+            <BoxCollisionShape position="0,62,161" pitch="-30" halfExtents="56,5,10" info="body, BF, Top"/>
+            <BoxCollisionShape position="0,69,162" halfExtents="16,7,10" info="body, BF, Top"/>
+            <BoxCollisionShape position="31,76,238" roll="-46" halfExtents="10,3,59" info="body, BF, TopR"/>
+            <BoxCollisionShape position="64,64,234" roll="-24" halfExtents="13,3,67" info="body, BF, TopR"/>
+            <BoxCollisionShape position="-31,76,238" roll="46" halfExtents="10,3,59" info="body, BF, TopL"/>
+            <BoxCollisionShape position="-64,64,234" roll="24" halfExtents="13,3,67" info="body, BF, TopL"/>
+
+            <BoxCollisionShape position="77,40,244" roll="16" halfExtents="7,20,79" info="body, BF, R"/>
+            <BoxCollisionShape position="95,9,234" roll="2" halfExtents="18,16,59" info="body, BF, R"/>
+            <BoxCollisionShape position="74,1,255" roll="-20" halfExtents="18,19,82" info="body, BF, BottomR"/>
+            <BoxCollisionShape position="66,-21,255" roll="9" halfExtents="17,5,82" info="body, BF, BottomR"/>
+            <BoxCollisionShape position="-77,40,244" roll="-16" halfExtents="7,20,79" info="body, BF, L"/>
+            <BoxCollisionShape position="-95,9,234" roll="-2" halfExtents="18,16,59" info="body, BF, L"/>
+            <BoxCollisionShape position="-74,1,255" roll="20" halfExtents="18,19,82" info="body, BF, BottomL"/>
+            <BoxCollisionShape position="-66,-21,255" roll="-9" halfExtents="17,5,82" info="body, BF, BottomL"/>
+
+            <BoxCollisionShape position="0,106,381" halfExtents="36,5,71" info="body, BTop"/>
+            <BoxCollisionShape position="0,93,299" pitch="-49" halfExtents="34,5,20" info="body, BTop"/>
+            <BoxCollisionShape position="41,101,381" roll="-42" halfExtents="10,4,71" info="body, BTopR"/>
+            <BoxCollisionShape position="-41,101,381" roll="42" halfExtents="10,4,71" info="body, BTopL"/>
+
+            <BoxCollisionShape position="78,45,332" pitch="-10" roll="-10" yaw="20" halfExtents="10,20,30" info="body, back, R"/>
+            <BoxCollisionShape position="68,77,332" pitch="-10" roll="35" yaw="20" halfExtents="10,20,30" info="body, back, TR"/>
+            <BoxCollisionShape position="50,70,290" pitch="-10" roll="35" yaw="43" halfExtents="5,20,20" info="body, back, TR"/>
+            <BoxCollisionShape position="37,95,307" pitch="-10" roll="30" yaw="43" halfExtents="5,8,8" info="body, back, TR"/>
+            <BoxCollisionShape position="52,92,332" pitch="-10" yaw="30" halfExtents="10,5,30" info="body, back, TR"/>
+            <BoxCollisionShape position="88,4,322" halfExtents="10,24,30" info="body, back, RB"/>
+            <BoxCollisionShape position="54,-24,314" roll="35" pitch="-10" halfExtents="8,5,23" info="body, back, RB"/>
+            <BoxCollisionShape position="68,-19,346" pitch="-17" roll="8" halfExtents="16,4,11" info="body, back, bottomR"/>
+            <BoxCollisionShape position="-78,45,332" pitch="-10" roll="10" yaw="-20" halfExtents="10,20,30" info="body, back, L"/>
+            <BoxCollisionShape position="-68,77,332" pitch="-10" roll="-35" yaw="-20" halfExtents="10,20,30" info="body, back, TL"/>
+            <BoxCollisionShape position="-50,70,290" pitch="-10" roll="-35" yaw="-43" halfExtents="5,20,20" info="body, back, TL"/>
+            <BoxCollisionShape position="-37,95,307" pitch="-10" roll="-30" yaw="-43" halfExtents="5,8,8" info="body, back, TL"/>
+            <BoxCollisionShape position="-52,92,332" pitch="-10" yaw="-30" halfExtents="10,5,30" info="body, back, TL"/>
+            <BoxCollisionShape position="-88,4,322" halfExtents="10,24,30" info="body, back, LB"/>
+            <BoxCollisionShape position="-54,-24,314" roll="-35" pitch="-10" halfExtents="8,5,23" info="body, back, LB"/>
+            <BoxCollisionShape position="-68,-19,346" pitch="-17" roll="-8" halfExtents="16,4,11" info="body, back, bottomL"/>
+            <BoxCollisionShape position="0,-30,314" pitch="-8" halfExtents="52,4,23" info="body, back, bottom"/>
+            <BoxCollisionShape position="0,-22,346" pitch="-24" halfExtents="52,4,11" info="body, back, bottom"/>
+
+            <BoxCollisionShape position="48,-29,400" halfExtents="5,8,58" info="body, BBottomRBeam"/>
+            <BoxCollisionShape position="48,-29,451" halfExtents="10,13,14" info="body, BBottomRBeam"/>
+            <BoxCollisionShape position="-48,-29,400" halfExtents="5,8,58" info="body, BBottomLBeam"/>
+            <BoxCollisionShape position="-48,-31,451" halfExtents="10,13,14" info="body, BBottomLBeam"/>
+
+            <BoxCollisionShape position="103,60,420" halfExtents="18,9,64" info="body, back, Rextrusion"/>
+            <BoxCollisionShape position="-103,60,420" halfExtents="18,9,64" info="body, back, Lextrusion"/>
+            <BoxCollisionShape position="-85,7,417" halfExtents="10,21,67" info="body, back, LB"/>
+            <BoxCollisionShape position="85,7,417" halfExtents="10,21,67" info="body, back, RB"/>
+            <BoxCollisionShape position="0,-8,473" halfExtents="90,6,10" info="body, back, Bback"/>
+            <BoxCollisionShape position="0,-13,474" pitch="-23" halfExtents="76,5,8" info="body, back, Bback"/>
+            <BoxCollisionShape position="-79,-13,405" roll="-12" halfExtents="15,5,73" info="body, back, BL"/>
+            <BoxCollisionShape position="79,-13,405" roll="12" halfExtents="15,5,73" info="body, back, BR"/>
+            <BoxCollisionShape position="0,-15,410" halfExtents="66,6,58" info="body, back, B"/>
+
+            <BoxCollisionShape position="78,32,440" roll="-18" halfExtents="18,35,85" info="body, bay2, Rwall"/>
+            <BoxCollisionShape position="75,71,440" roll="35" halfExtents="18,27,85" info="body, bay2, Rwall"/>
+            <BoxCollisionShape position="-78,32,440" roll="18" halfExtents="18,35,85" info="body, bay2, Lwall"/>
+            <BoxCollisionShape position="-75,71,440" roll="-35" halfExtents="18,27,85" info="body, bay2, Lwall"/>
+            <BoxCollisionShape position="0,75,435" halfExtents="72,28,90" info="body, bay2, Twall"/>
+            <BoxCollisionShape position="0,35,423" halfExtents="85,35,5" info="body, bay2, Fwall"/>
+            <BoxCollisionShape position="0,-3,465" halfExtents="84,5,60" info="body, bay2, BottomWall"/>
+            <BoxCollisionShape position="0,78,526" halfExtents="43,17,5" info="body, bay2, Twall"/>
+            
+            
+            <BoxCollisionShape position="0,7,80" halfExtents="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+            <BoxCollisionShape position="0,29,80" halfExtents="23,1,34" info="HOOKBOX, top"/>
+            <BoxCollisionShape position="-22,18,80" halfExtents="1,12,34" info="HOOKBOX, left long"/>
+            <BoxCollisionShape position="0,18,80" halfExtents="1,12,34" info="HOOKBOX, center long"/>
+            <BoxCollisionShape position="22,18,80" halfExtents="1,12,34" info="HOOKBOX, right long"/>
+            <BoxCollisionShape position="0,18,113" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+            <BoxCollisionShape position="0,18,91" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+            <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="0,107,80" halfExtents="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+            <BoxCollisionShape position="0,129,80" halfExtents="23,1,34" info="HOOKBOX, top"/>
+            <BoxCollisionShape position="-22,118,80" halfExtents="1,12,34" info="HOOKBOX, left long"/>
+            <BoxCollisionShape position="0,118,80" halfExtents="1,12,34" info="HOOKBOX, center long"/>
+            <BoxCollisionShape position="22,118,80" halfExtents="1,12,34" info="HOOKBOX, right long"/>
+            <BoxCollisionShape position="0,118,113" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+            <BoxCollisionShape position="0,118,91" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+            <BoxCollisionShape position="0,118,69" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+            <BoxCollisionShape position="0,118,47" halfExtents="23,12,1" info="HOOKBOX, wide"/>
+        </collisionShapes>
+    </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" >
+
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_sidearmL.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <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"/>
+            <BoxCollisionShape position="-127,26,115" roll="15" halfExtents="2,28,105" info="sidearmL, frontInner"/>
+            <BoxCollisionShape position="-161,16,115" roll="15" halfExtents="2,28,105" info="sidearmL, frontOuter"/>
+            <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"/>
+            <BoxCollisionShape position="-153,59,96" roll="15" halfExtents="6,7,60" info="sidearmL, upper beam"/>
+            <BoxCollisionShape position="-143,57,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper inner beam"/>
+            <BoxCollisionShape position="-142,53,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper inner beam"/>
+            <BoxCollisionShape position="-160,52,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper outer beam"/>
+            <BoxCollisionShape position="-159,48,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper outer beam"/>
+            <BoxCollisionShape position="-152,54,34" pitch="-46" yaw="-14" roll="15" halfExtents="6,7,10" info="sidearmL, upper beam front"/>
+            <BoxCollisionShape position="-152,54,162" pitch="30" yaw="9" roll="15" halfExtents="6,7,12" info="sidearmL, upper beam back"/>
+            <BoxCollisionShape position="-168,21,119" roll="15" halfExtents="3,5,109" info="sidearmL, outer beam"/>
+            <BoxCollisionShape position="-134,-10,169" roll="15" halfExtents="6,4,55" info="sidearmL, lower beam front"/>
+            <BoxCollisionShape position="-131,-20,217" pitch="-20" roll="15" yaw="-5" halfExtents="6,12,3" info="sidearmL, lower beam middle"/>
+            <BoxCollisionShape position="-130,-29,233" roll="15" halfExtents="6,3,15" info="sidearmL, lower beam back"/>
+            
+            <BoxCollisionShape position="-145,21,71" halfExtents="10,10,1" info="sidearmL, HOOKBOX"/>
+            <BoxCollisionShape position="-145,21,29" halfExtents="10,10,1" info="sidearmL, HOOKBOX"/>
+            <BoxCollisionShape position="-145,32,50" halfExtents="10,1,20" info="sidearmL, HOOKBOX"/>
+            <BoxCollisionShape position="-145,10,50" halfExtents="10,1,20" info="sidearmL, HOOKBOX"/>
+            <BoxCollisionShape position="-156,21,50" halfExtents="1,10,20" info="sidearmL, HOOKBOX"/>
+            <BoxCollisionShape position="-134,21,50" halfExtents="1,10,20" info="sidearmL, HOOKBOX"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_sidearmLfront radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_sidearmLfront.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="-145,21,50" halfExtents="10,10,20" info="sidearmLfront, HOOK"/>
+            <BoxCollisionShape position="-141,15,-53" roll="15" halfExtents="27,44,62" info="sidearmLfront"/>
+            <BoxCollisionShape position="-153,59,-30" roll="15" halfExtents="4,2,38" info="sidearmLfront, top"/>
+            <BoxCollisionShape position="-153,61,-41" roll="15" halfExtents="4,4,11" info="sidearmLfront, top"/>
+            <BoxCollisionShape position="-153,60,-65" roll="15" halfExtents="4,3,4" info="sidearmLfront, top"/>
+            <BoxCollisionShape position="-153,59,-41" roll="15" halfExtents="8,2,11" info="sidearmLfront, top"/>
+        </collisionShapes>
+    </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_sidearmR radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_sidearmR.mesh" scale="40" />
+        </attached>
+        <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"/>
+            <BoxCollisionShape position="127,26,115" roll="-15" halfExtents="2,28,105" info="sidearmR, frontInner"/>
+            <BoxCollisionShape position="161,16,115" roll="-15" halfExtents="2,28,105" info="sidearmR, frontOuter"/>
+            <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"/>
+            <BoxCollisionShape position="153,59,96" roll="-15" halfExtents="6,7,60" info="sidearmR, upper beam"/>
+            <BoxCollisionShape position="143,57,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper inner beam"/>
+            <BoxCollisionShape position="142,53,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper inner beam"/>
+            <BoxCollisionShape position="160,52,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper outer beam"/>
+            <BoxCollisionShape position="159,48,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper outer beam"/>
+            <BoxCollisionShape position="152,54,34" pitch="-46" yaw="14" roll="-15" halfExtents="6,7,10" info="sidearmR, upper beam front"/>
+            <BoxCollisionShape position="152,54,162" pitch="30" yaw="-9" roll="-15" halfExtents="6,7,12" info="sidearmR, upper beam back"/>
+            <BoxCollisionShape position="168,21,119" roll="-15" halfExtents="3,5,109" info="sidearmR, outer beam"/>
+            <BoxCollisionShape position="134,-10,169" roll="-15" halfExtents="6,4,55" info="sidearmR, lower beam front"/>
+            <BoxCollisionShape position="131,-20,217" pitch="-20" roll="-15" yaw="5" halfExtents="6,12,3" info="sidearmR, lower beam middle"/>
+            <BoxCollisionShape position="130,-29,233" roll="-15" halfExtents="6,3,15" info="sidearmR, lower beam back"/>
+
+            <BoxCollisionShape position="145,21,71" halfExtents="10,10,1" info="sidearmR, HOOKBOX"/>
+            <BoxCollisionShape position="145,21,29" halfExtents="10,10,1" info="sidearmR, HOOKBOX"/>
+            <BoxCollisionShape position="145,32,50" halfExtents="10,1,20" info="sidearmR, HOOKBOX"/>
+            <BoxCollisionShape position="145,10,50" halfExtents="10,1,20" info="sidearmR, HOOKBOX"/>
+            <BoxCollisionShape position="156,21,50" halfExtents="1,10,20" info="sidearmR, HOOKBOX"/>
+            <BoxCollisionShape position="134,21,50" halfExtents="1,10,20" info="sidearmR, HOOKBOX"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=sidearmRfront radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_sidearmRfront.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="145,21,50" halfExtents="10,10,20" info="sidearmRfront, HOOK"/>
+            <BoxCollisionShape position="141,15,-53" roll="-15" halfExtents="27,44,62" info="sidearmRfront"/>
+            <BoxCollisionShape position="153,59,-30" roll="-15" halfExtents="4,2,38" info="sidearmRfront, top"/>
+            <BoxCollisionShape position="153,61,-41" roll="-15" halfExtents="4,4,11" info="sidearmRfront, top"/>
+            <BoxCollisionShape position="153,60,-65" roll="-15" halfExtents="4,3,4" info="sidearmRfront, top"/>
+            <BoxCollisionShape position="153,59,-41" roll="-15" halfExtents="8,2,11" info="sidearmRfront, top"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_frontL radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_frontL.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="-11,18,58" halfExtents="10,10,10" info="HOOK, frontL"/>
+            <BoxCollisionShape position="-80,33,-320" halfExtents="7,11,54" info="frontL"/>
+            <BoxCollisionShape position="-79,31,-399" halfExtents="3,6,26" info="frontL"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_frontR radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_frontR.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="11,18,58" halfExtents="10,10,10" info="HOOK, frontR"/>
+            <BoxCollisionShape position="80,33,-320" halfExtents="7,11,54" info="frontR"/>
+            <BoxCollisionShape position="79,31,-399" halfExtents="3,6,26" info="frontR"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_partL radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_partL.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="-11,18,80" halfExtents="10,10,10" info="HOOK, partL"/>
+            <BoxCollisionShape position="-94,33,-179" halfExtents="11,13,45" info="partL"/>
+            <BoxCollisionShape position="-96,33,-230" halfExtents="13,17,22" info="partL"/>
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn team=1 health=100 initialhealth=100 maxhealth=100 position="0,300,-2000" yaw="180" direction="0,0,0" collisionType=dynamic mass=1000 name=HeavyCruiser_partR radarname = "HIDDEN" >
+        <attached>
+            <Model position="0,0,0" direction="-1,0,0" mesh="HeavyCruiser_partR.mesh" scale="40" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="11,18,80" halfExtents="10,10,10" info="HOOK, partR"/>
+            <BoxCollisionShape position="94,33,-179" halfExtents="11,13,45" info="partR"/>
+            <BoxCollisionShape position="96,33,-230" halfExtents="13,17,22" info="partR"/>
+        </collisionShapes>
+    </Pawn>
+    
+
+    
+    <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="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 /> -->
+    <!-- <SpawnPoint team=0 position="0,-100,0" lookat="0,-100,0" spawnclass=SpaceShip pawndesign=spaceshipassff /> -->
+
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/InsideSpaceStation.oxw
===================================================================
--- code/trunk/data/levels/InsideSpaceStation.oxw	(revision 9939)
+++ code/trunk/data/levels/InsideSpaceStation.oxw	(revision 9939)
@@ -0,0 +1,88 @@
+<!-- -->
+<LevelInfo
+ name = "Inside Space Station"
+ description = "Level to test the Space Station"
+ tags = "test"
+ screenshot = "InsideSpaceStation.png"
+/>
+
+<?lua
+  include("HUDTemplates3.oxo")
+  include("stats.oxo")
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipH2.oxt")
+  include("templates/FPS.oxt")
+  include("templates/lodInformation.oxt")
+?>
+
+<Level>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <Scene
+   ambientlight = "0.3, 0.3, 0.3"
+   skybox       = "Orxonox/skyBoxBasic"
+   gravity      = "0,-1000,0"
+   negativeWorldRange = "-100000, -100000, -100000"
+   positiveWorldRange = " 100000,  100000,  100000"
+   hasPhysics   = true
+  >
+    <Light type=directional position="0,-100000,0" direction="0.02, -1, 0.05" diffuse="1.0, 1.0, 1.0, 1.0" specular="1.0, 1.0, 1.0, 1.0" />
+
+  <StaticEntity position="0,0,0" direction="1,0,0" pitch=180 collisionType=static mass=100000 friction=0.01 >
+      <attached>
+        <Model position="0,0,0" mesh="ss_tube.mesh" scale3D="100,100,100" />
+	<Model position="500,0,0" mesh="ss_tube.mesh" scale3D="100,100,100" />
+	<Model position="1200,0,0" mesh="ss_tube_x.mesh" scale3D="100,100,100" />
+	<Model position="-5000,0,0" mesh="ss_curve.mesh" scale3D="100,100,100" />
+	<Model position="-250,-16,0" pitch=-90 mesh="ss_flag_room.mesh" scale3D="100,100,100" />
+	<Model position="1200,100,-100" roll=180 mesh="ss_machine.mesh" scale3D="0.15,0.15,0.15" />
+	<Model position="-100,100,0" roll=180 mesh="ss_table.mesh" scale3D="25,25,25" />
+	<Model position="-300,100,0" roll=180 mesh="ss_table_cracked.mesh" scale3D="25,25,25" />
+	<Model position="600,75,0" roll=180 mesh="ss_cylinder.mesh" scale3D="25,25,25" />
+	<Model position="300,50,0" roll=180  pitch=20 mesh="ss_chair.mesh" scale3D="20,20,20" />
+	<Model position="1000,50,0" roll=180 mesh="ss_wall.mesh" scale3D="20,20,20" />
+	<Model position="-830,20,0" roll=180 mesh="ss_flag_aean.mesh" scale3D="40,40,40" />
+	<Model position="-1900,50,0" roll=180 mesh="ss_flag_eu.mesh" scale3D="20,20,20" />
+	<Model position="-1500,50,0" roll=180 mesh="ss_flag_cau.mesh" scale3D="20,20,20" />
+	<Model position="-1650,50,0" roll=180 mesh="ss_flag_csa.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,-100,0" halfExtents="5000000,0,100000" />
+	<BoxCollisionShape position="0,50,0" halfExtents="500000,0,100000" />
+	<BoxCollisionShape position="0,0,100" halfExtents="50000,100000,0" />
+	<BoxCollisionShape position="0,0,-100" halfExtents="500000,100000,0" />
+      </collisionShapes>
+  </StaticEntity>
+
+<?lua
+for i = 1, 10, 1
+do ?>
+    <SpawnPoint position="0,0,0" direction="-1, 0, 0" scale3D="0.5,100,0.5" lookat="0,0,0" spawnclass=FpsPlayer pawndesign=fps />
+<?lua
+end
+?>
+
+
+<?lua
+for i = 1, 200, 1
+do
+j = math.random()
+?>
+  <MovableEntity position="<?lua print(math.random() * 5000-2000) ?>,<?lua print(math.random() * 5000-2000) ?>,<?lua print(math.random() * 5000 - 2000) ?>" collisionType=dynamic linearDamping=0.8 angularDamping=0 mass=<?lua print(j * 100) ?> scale=<?lua print(j * 5) ?> rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>" >
+      <attached>
+        <Model position="0,0,0" scale="<?lua print(j * 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" />
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="<?lua print(j * 100) ?>" />
+      </collisionShapes>
+  </MovableEntity>
+<?lua
+end
+?>
+
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/Invaders.oxw
===================================================================
--- code/trunk/data/levels/Invaders.oxw	(revision 9939)
+++ code/trunk/data/levels/Invaders.oxw	(revision 9939)
@@ -0,0 +1,77 @@
+<LevelInfo
+ name = "Orxonox Arcade"
+ description = "2D Arcade shooter. Maximise your points!!!\nTip: try to keep the multiplier high by avoiding shots and enemies."
+ tags = "minigame"
+ screenshot = "orxonoxArcade.png"
+/>
+<?lua
+  include("stats.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipInvader.oxt")
+  include("templates/enemyInvader.oxt")
+  include("templates/enemyInvaderShooter.oxt")
+  include("overlays/InvaderHUD.oxo")
+?>
+
+<Level gametype = Invader>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+    <!-- ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox" -->
+  <Scene
+    ambientlight = "0.8, 0.7, 0.4"
+    skybox     = "Orxonox/skyBoxBasic"
+  >
+
+  <WorldAmbientSound
+    source="Earth.ogg"
+    looping="true"
+    playOnLoad="true"
+  />
+
+    <!-- <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"/> -->
+    <Light type=directional position="1100, 11000, -7000" lookat="0, 0, 0" 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=InvaderShip pawndesign=spaceshipinvader />
+
+    <DistanceTrigger name="start" position="-200,0,0" target="Pawn" distance=10 stayActive="true" delay=0 />
+
+
+    <InvaderCenterPoint name=invadercenter />
+    
+    <?lua
+      for i = 1, 300, 1 do
+        j = math.random()
+    ?>
+
+    <MovableEntity
+      position = "<?lua print(math.random()* 40000 + 1000) ?>,-1000,<?lua print(math.random() * 4000 - 2000) ?>"
+      collisionType = dynamic
+      linearDamping = 0.8
+      angularDamping = 0
+      scale = "<?lua print(j * 150)?>"
+      collisiondamage = 0
+      enablecollisiondamage = true
+    >
+      <attached>
+        <Model mass="<?lua print(j * 1000) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" />
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="<?lua print(j * 350) ?>" />
+      </collisionShapes>
+    </MovableEntity>
+
+    <?lua
+      end
+    ?>
+    
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/Spacerace2.oxw
===================================================================
--- code/trunk/data/levels/Spacerace2.oxw	(revision 9938)
+++ code/trunk/data/levels/Spacerace2.oxw	(revision 9939)
@@ -14,4 +14,5 @@
 
 ?>
+
 
 <?lua
@@ -107,5 +108,16 @@
 
     <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----------------- -->
Index: code/trunk/data/levels/_temp.oxw
===================================================================
--- code/trunk/data/levels/_temp.oxw	(revision 9939)
+++ code/trunk/data/levels/_temp.oxw	(revision 9939)
@@ -0,0 +1,377 @@
+<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
+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=spaceshipspacecruiser />
+
+
+    <!-- -----------------------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/trunk/data/levels/asteroidField.oxw
===================================================================
--- code/trunk/data/levels/asteroidField.oxw	(revision 9938)
+++ code/trunk/data/levels/asteroidField.oxw	(revision 9939)
@@ -11,4 +11,5 @@
   include("templates/lodInformation.oxt")
 ?>
+<WorldAmbientSound source="Asteroid_rocks.ogg" looping="true" playOnLoad="true" />
 
 <?lua
Index: code/trunk/data/levels/asteroids.oxw
===================================================================
--- code/trunk/data/levels/asteroids.oxw	(revision 9938)
+++ code/trunk/data/levels/asteroids.oxw	(revision 9939)
@@ -5,4 +5,5 @@
  screenshot = "asteroids.png"
 />
+<WorldAmbientSound source="Asteroid_rocks.ogg" looping="true" playOnLoad="true" />
 
 <?lua
Index: code/trunk/data/levels/docking.oxw
===================================================================
--- code/trunk/data/levels/docking.oxw	(revision 9938)
+++ code/trunk/data/levels/docking.oxw	(revision 9939)
@@ -1,2 +1,3 @@
+<!-- -->
 <LevelInfo
  name = "Transporter"
Index: code/trunk/data/levels/dockingToASpaceStation.oxw
===================================================================
--- code/trunk/data/levels/dockingToASpaceStation.oxw	(revision 9939)
+++ code/trunk/data/levels/dockingToASpaceStation.oxw	(revision 9939)
@@ -0,0 +1,182 @@
+<!--  -->
+<LevelInfo
+ name = "Docking to a Space Station"
+ description = "Docking into a spacestation."
+ tags = "showcase"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/pickupRepresentationTemplates.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/bigship.oxt")
+  include("templates/spaceshipTurret.oxt")
+  include("templates/spaceshipCollateralDamage.oxt")
+  include("templates/FPS.oxt")
+?>
+
+<Level
+  gametype = Deathmatch
+>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+
+  <Scene
+    ambientlight = "0.5, 0.5, 0.5"
+    skybox       = "Orxonox/Starbox"
+    negativeWorldRange = "-100000, -100000, -100000"
+    positiveWorldRange = " 100000,  100000,  100000"
+    gravity      = "0,0,0"
+    hasPhysics   = true
+  >
+
+    <?lua
+      include("includes/pickups.oxi")
+    ?>
+
+    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0,1.0,1.0,0.5" specular="1.0, 0.9, 0.9, 1.0"/>
+    <SpawnPoint team=0 position="3200,0,0" lookat="2800,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+    <StaticEntity position  = "2800,0,0" mass=10000 collisionType=static >
+      <attached>
+        <Model mesh="HydroHarvester.mesh" mass=10 position="0,0,0" scale=50 />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
+        <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
+        <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
+        <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
+        <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
+        <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
+        <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
+        <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
+        <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
+        <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
+        <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
+      </collisionShapes>
+    </StaticEntity>
+
+<!-- Docking  -->
+    <Dock position="2830,20,50" roll=0 yaw=0 >
+        <animations>
+            <MoveToDockingTarget target="destroyer" />
+        </animations>
+        <effects>
+            <DockToShip target="spaceShip" />
+        </effects>
+        <events>
+            <execute>
+                <EventListener event="dockMe" />
+            </execute>
+
+	    <undocking>
+		<EventListener event="undockMe" />
+	    </undocking>
+	
+            <activity>
+                <EventListener event=notGameEnd />
+            </activity>
+        </events>
+        <attached>
+	<!-- Trigger for docking with billboard -->
+            <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.2,0.4,0.8" scale=1 />
+            <DistanceTrigger position="0,0,0" distance="200" target="Pawn"
+                beaconMode="exclude" targetname="bcnDestroyer" name="dockMe"
+            />
+	<!-- Trigger for undocking with billboard -->
+	    <Billboard position="-2630,-19970,150" material="Flares/ringflare2" colour="0.2,0.4,0.8" scale=1 />
+	    <DistanceTrigger position="-2630,-19970,150" distance="50" target="Pawn"
+                beaconMode="identify" targetname="bcnDestroyer" name="undockMe"
+            />
+        </attached>
+
+    </Dock>
+
+<!-- FPS Player as destination of the dock -->
+<FpsPlayer template = "fps" radarname = "First Person Player" position = "0,-19900,0" >
+      <attached>
+        <DockingTarget name="spaceShip" />
+        <DistanceTriggerBeacon name="bcnDestroyer" />
+        <DockingTarget name="destroyer" />
+      </attached>
+</FpsPlayer>
+
+
+<!-- Cube as test SpaceStation
+
+The station can either be hidden outside of the skybox, within the hull of the space station if it is big enough or within a planet.
+Complex spacestations can be placed very far away from the spaceship so it is rendered at low resolution while the player uses the space ship.
+
+-->
+  <StaticEntity position="0,-20000,0" direction="0,-1,0" collisionType=static mass=100000 friction=0.01 >
+      <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="80,80,5" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="400,400,25" />
+      </collisionShapes>
+  </StaticEntity>
+
+<!-- Homogenous gravitationfield to simulate local gravity (activating the normal gravity will affect the spaceship terribly) -->
+<ForceField position="0,-20000,0" mode="homogen" diameter="2000" forcedirection = "0,-500,0" />
+
+
+<!-- Some more stuff -->
+
+    <!-- triple large belt around the planet  -->
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(15000, 0, 0, 30, 0, 30, 30, 50, 7190, 7800, 250, 1)
+    ?>
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(15000, 0, 0, 30, 0, 30, 30, 50, 10000, 11000, 300, 1)
+    ?>
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(15000, 0, 0, 30, 0, 30, 30, 50, 14000, 15000, 350, 1)
+    ?>
+
+    <Planet
+      position="15000,0,-1000"
+      scale="5000"
+      collisionType="dynamic"
+      linearDamping="0.8"
+      angularDamping="0"
+      mass="10000000"
+      pitch="0"
+      mesh="planets/ganymede.mesh"
+      atmosphere="atmosphere1"
+      rotationaxis="1,0,0"
+      rotationrate="1.0"
+      atmospheresize="80.0f"
+      imagesize="1024.0f"
+      collisiondamage = 2
+      enablecollisiondamage = true
+    >
+      <attached>
+        <ForceField position="5000,0,0" mode="sphere" diameter="10000" velocity="-50" />
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="5000" position="0,0,0" />
+      </collisionShapes>
+    </Planet>
+
+  </Scene>
+
+</Level>
+
Index: code/trunk/data/levels/dynamicMatch.oxw
===================================================================
--- code/trunk/data/levels/dynamicMatch.oxw	(revision 9938)
+++ code/trunk/data/levels/dynamicMatch.oxw	(revision 9939)
@@ -5,4 +5,5 @@
  screenshot = "dynamicMatch.png"
 />
+<WorldAmbientSound source="Mars.ogg" looping="true" playOnLoad="true" />
 
 <?lua
Index: code/trunk/data/levels/gallery.oxw
===================================================================
--- code/trunk/data/levels/gallery.oxw	(revision 9938)
+++ code/trunk/data/levels/gallery.oxw	(revision 9939)
@@ -36,4 +36,29 @@
     all Objects are organized in columns
 ---->
+
+<!--- Spacestation --->
+      <!--Model position="0,0,-160" yaw="90" pitch="-90" roll="0" scale="1" mesh="ss_box_lowpoly.mesh" /-->
+      <Model position="0, 20,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_box_lowpoly_ad1.mesh" />
+      <Model position="0, 40,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_box_lowpoly_ad2.mesh" />
+      <Model position="0, 60,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_box_lowpoly_ad3.mesh" />
+      <Model position="0, 80,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_box_lowpoly_ad4.mesh" />
+      <Model position="0,-20,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_tube.mesh" />
+      <Model position="0,-40,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_tube_twd.mesh" />
+      <Model position="0,-60,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_tube_x.mesh" />
+      <Model position="0,-80,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_wall.mesh" />
+      <Model position="0,-100,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_table_cracked.mesh" />
+      <Model position="0,-120,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_table.mesh" />
+      <Model position="0,-140,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_spind.mesh" />
+      <Model position="0,-160,-160" yaw="90" pitch="-90" roll="0" scale="0.01" mesh="ss_machine.mesh" />
+      <Model position="0,-180,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_flag_room.mesh" />
+      <Model position="0,-200,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_flag_eu.mesh" />
+      <Model position="0,-220,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_flag_csa.mesh" />
+      <Model position="0,-240,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_flag_cau.mesh" />
+      <Model position="0,-260,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_flag_aean.mesh" />
+      <Model position="0,-280,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_door.mesh" />
+      <Model position="0,-300,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_cylinder.mesh" />
+      <Model position="0,-320,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_curve.mesh" />
+      <Model position="0,-340,-160" yaw="90" pitch="-90" roll="0" scale="5" mesh="ss_chair.mesh" />
+      
 
 <!--- Whole Objects --->
@@ -152,5 +177,5 @@
       <!--Model position="0,80,200" yaw="90" pitch="-90" roll="0" scale="5" mesh="SmallPart1.mesh" /-->
       <Model position="0,-20,200" yaw="90" pitch="-90" roll="0" scale="4" mesh="raceCheckPoint.mesh" />
-      <Model position="0,-40,200" yaw="90" pitch="-90" roll="0" scale="0.5" mesh="Spacegate.mesh" />
+      <Model position="0,-40,200" yaw="90" pitch="0" roll="0" scale="0.5" mesh="Spacegate.mesh" />
 
       <Model position="0,-60,200" yaw="90" pitch="-90" roll="0" scale="0.5" mesh="BigSpacegate.mesh" />
Index: code/trunk/data/levels/iJohnVane_TriptoArea51.oxw
===================================================================
--- code/trunk/data/levels/iJohnVane_TriptoArea51.oxw	(revision 9939)
+++ code/trunk/data/levels/iJohnVane_TriptoArea51.oxw	(revision 9939)
@@ -0,0 +1,592 @@
+<!-- -->
+
+<LevelInfo
+   name = "(i) John Vane - Trip to Area 51"
+   description = "John Vane's first mission to rescue the Commander"
+   tags = "mission"
+   screenshot = "JohnVane.png" 
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/spaceshipCollateralDamage.oxt")
+?>
+
+<Level gametype="Mission">
+
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+  <?lua include("includes/notifications.oxi") ?>
+
+  <NotificationQueueCEGUI
+    name="narrative"
+    targets="simpleNotification"
+    size=3
+    displayTime=3.9
+    position="0.2, 0, 0.1, 0"
+    fontSize="23"
+    fontColor="0.3, 1, 0.2, 0.8"
+    alignment="HorzCentred"
+    displaySize="0.6, 0, 0, 0"
+    />
+
+  <Scene
+    ambientlight = "0.5, 0.5, 0.5"
+    skybox       = "Orxonox/Starbox"
+    hasPhysics   = true
+
+  >
+
+   <?lua
+      include("includes/pickups.oxi")
+   ?>
+
+   <?lua
+    dofile("includes/CuboidSpaceStation.lua")
+   ?>
+
+
+   <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"/>	
+
+   <TeamSpawnPoint team=0 position="0,0,0" direction="1,1,1" spawnclass=SpaceShip pawndesign=spaceshipescort> <!--spaceshipescort-->
+ 	<events>
+            <activity>
+                <EventListener event="start" />
+            </activity>
+        </events>
+    </TeamSpawnPoint>
+
+   <DistanceTrigger name="spawntrigger" position="0,0,0" distance=10 target="SpaceShip" stayActive="true" delay=0.1/>
+
+<!----------------------------------------------------------------------------------------------------->
+<!-------------------------------------- PART ZERO: Docking on  --------------------------------------->
+<!----------------------------------------------------------------------------------------------------->
+
+<!-- OBJECTS IN THIS PART -->
+
+<!-- @Objects: HYDROGEN FARMER & DOCKING -->
+   
+<!-- @Objects: HYDROGEN FARMER & DOCKING -->
+   <SpaceShip
+        team      = 0
+        position  = "5000,5100,5000"
+        roll      = 90   yaw=0  pitch=20
+        mass      = 10000
+        health    = 100000 initialhealth=100000 maxhealth="100000"
+        name      = "HydroFarmer"
+        radarname = "Main station" > 
+      <attached>
+        <!-- Docking -->
+         <DistanceTriggerBeacon name="bcnDestroyer" />
+         <DockingTarget name="destroyer" />
+
+        <Model mesh="HydroHarvester.mesh" mass=10 position="0,0,0" scale=50 />
+   <!-- <Model mesh="cube.mesh" mass=10 position="-560,0,0" scale3D="115,100,245"  />
+        <Model mesh="cube.mesh" mass=10 position="290,0,-480" scale3D="115,100,245" yaw=-120 />
+        <Model mesh="cube.mesh" mass=10 position="290,0,480" scale3D="115,100,245" yaw=-240 />
+        <Model mesh="cube.mesh" mass=10 position="-280,0,0" scale3D="163,50,50" />
+        <Model mesh="cube.mesh" mass=10 position="140,0,-240" scale3D="163,50,50"  yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="140,0,240" scale3D="163,50,50" yaw=-240/>
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" />
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-240/>
+        <Model mesh="cube.mesh" mass=10 position="0,400,0" scale3D="43,110,26" yaw=-30 />
+        <Model mesh="cube.mesh" mass=10 position="-200,100,0" scale3D="26,50,43" />
+        <Model mesh="cube.mesh" mass=10 position="100,100,-173" scale3D="43,50,26" yaw=-30/>
+        <Model mesh="cube.mesh" mass=10 position="100,100,173" scale3D="43,50,26" yaw=30/>
+        <Model mesh="cube.mesh" mass=10 position="-100,264,0" scale3D="26,105,43" roll=-49/>
+        <Model mesh="cube.mesh" mass=10 position="50,264,-87" scale3D="26,105,43" roll=-49 yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="50,264,87" scale3D="26,105,43" roll=-49 yaw=-240/>     -->
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
+        <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
+        <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
+        <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
+        <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
+        <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
+        <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
+        <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
+        <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
+        <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
+        <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
+      </collisionShapes>
+    </SpaceShip>
+
+   <Dock position="5000,5000,5000" roll=90 yaw=180 >
+      <animations>
+         <MoveToDockingTarget target="destroyer" />
+      </animations>
+      <effects>
+         <DockToShip target="spaceShip" />
+      </effects>
+      <events>
+            <execute>
+                <EventListener event="dockMe" />
+            </execute>
+            <activity>
+                <EventListener event=notGameEnd />
+            </activity>
+        </events>
+        <attached>
+            <DistanceTrigger position="10,-202, -42" distance="800" target="Pawn"
+                beaconMode="exclude" targetname="bcnDestroyer" name="dockMe"/>
+	   <Billboard position="10,-202,-42" material="Flares/ringflare" colour="0.7,0.4,0.1" scale=1/>
+        </attached>
+
+    </Dock> 
+
+<!--@Objects: SpaceCruiser as docking target -->
+    <SpaceShip
+        template            = "spaceshipcollateraldamage"
+        team                = "0"
+        position            = "5000,5800,5000"
+        orientation         = "-0.14, 0.68, 0.68, 0.223"
+        health              = "400"
+        initialhealth       = "400"
+        maxhealth           = "500"
+        shieldhealth        = "80"
+        initialshieldhealth = "80"
+        maxshieldhealth     = "120"
+        shieldabsorption    = "0.8"
+        reloadrate          = "1"
+        reloadwaittime      = "1"
+        name                = "cruiser"
+        radarname           = "Spacecruiser" >
+      <attached>
+        <DockingTarget name="spaceShip" />
+      </attached>
+    </SpaceShip>
+
+
+<BlinkingBillboard position="1500,1500,1500" frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,1,0.05">
+          <events>
+            <visibility>
+              <EventTrigger invert=true>
+                <events>
+                  <trigger>
+                    <EventListener event=flying3 />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</BlinkingBillboard>
+<Billboard position="1500,1500,1500" amplitude=1 material="Flares/lensflare" colour="0,0.8,0.1">
+          <events>
+            <visibility>
+              <EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event=flying4 />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</Billboard>
+
+  <DistanceTrigger name="flying1" position="0,0,0" target="Pawn" distance=100 stayActive="true" delay=1/>
+    <SimpleNotification message="Housten: John Vane do you hear us?">
+        <events>
+            <trigger>
+                <EventListener event="flying1" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+   <DistanceTrigger name="flying2" position="0,0,0" target="Pawn" distance=100 stayActive="true" delay=5/>
+   <SimpleNotification message="Housten: We got a new mission for you">
+        <events>
+            <trigger>
+                <EventListener event="flying2" />
+            </trigger>
+        </events>
+   </SimpleNotification>
+
+
+  <DistanceTrigger name="flying3" position="0,0,0" target="Pawn" distance=10 stayActive="true" delay=9/>
+    <SimpleNotification message="John: I hear you. What is it about?">
+        <events>
+            <trigger>
+                <EventListener event="flying3" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+ <DistanceTrigger name="flying4" position="0,0,0" target="Pawn" distance=100 stayActive="true" delay=13/>
+    <SimpleNotification message="Housten: Our Commander got kidnapped">
+        <events>
+            <trigger>
+                <EventListener event="flying4" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+ <DistanceTrigger name="flying5" position="0,0, 0" target="Pawn" distance=100 stayActive="true" delay=17/>
+    <SimpleNotification message="Housten: We need you to rescue him.">
+        <events>
+            <trigger>
+                <EventListener event="flying5" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+<DistanceTrigger name="flying6" position="0,0, 0" target="Pawn" distance=100 stayActive="true" delay=21/>
+    <SimpleNotification message="John: I'm right on the way.">
+        <events>
+            <trigger>
+                <EventListener event="flying6" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+<DistanceTrigger name="flying7" position="0,0,0" target="Pawn" distance=100 stayActive="true" delay=25/>
+    <SimpleNotification message="Houston: First dock on the station">
+        <events>
+            <trigger>
+                <EventListener event="flying7" />
+            </trigger>
+        </events>
+    </SimpleNotification> 
+
+   <QuestEffectBeacon times=1>
+      <effects>
+                <AddQuest questId="Level_Kaan.docking" />
+      </effects>
+            <events>
+                <execute>
+                    <EventListener event=spawntrigger />
+                </execute>
+            </events>
+   </QuestEffectBeacon>
+
+   <QuestEffectBeacon times=1>
+            <effects>
+                <CompleteQuest questId="Level_Kaan.docking" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event="dockMe" />
+                </execute>
+            </events>
+   </QuestEffectBeacon>
+
+   <LocalQuest id="Level_Kaan.docking">
+      <QuestDescription title="Docking" description="Our Commander got kidnapped in Area 51. Fly to the Main Station and get a better Spaceship to rescue him.
+
+	Flying moves:
+	break (S)
+	roll     (Q) and (E)
+	boost (Space)
+
+	Whenever a new quest is added you can view it by pressing (F3). Quit this menu via (Esc)." failmessage="" completeMessage="" />
+      <complete-effects>
+         <AddQuest questId="Level_Kaan.portals" />
+      </complete-effects>
+   </LocalQuest> 
+
+   <LocalQuest id="Level_Kaan.portals">
+      <QuestDescription title="Portals" description="Now you've got a Spaceship with more health and weapons. Your next goal is to pass through the portal and find there the 		wormhole to Area 51" failmessage="" completeMessage="" />
+      <complete-effects>
+         <AddQuest questId="Level_Kaan.asteroids" />
+      </complete-effects>
+   </LocalQuest> 
+
+
+   <QuestEffectBeacon times=1>
+      <effects>
+         <CompleteQuest questId="Level_Kaan.portals" />
+      </effects>
+      <events>
+         <execute>
+            <EventListener event=start />
+         </execute>
+      </events>
+   </QuestEffectBeacon>
+
+ <LocalQuest id="Level_Kaan.asteroids">
+      <QuestDescription title="Asteroids" description="The wormhole is at the end of the asteroid shower. Find your way through the asteroids without hitting the rocks and reach Area 51. " failmessage="" completeMessage="" />
+   </LocalQuest> 
+
+ <QuestEffectBeacon times=1>
+      <effects>
+         <CompleteQuest questId="Level_Kaan.asteroids" />
+      </effects>
+      <events>
+         <execute>
+            <EventListener event=endOfLevel />
+         </execute>
+      </events>
+   </QuestEffectBeacon>
+
+<!----------------------------------------------------------------------------------------------------->
+<!-------------------------------- PART ONE: Passing throug wormhole  --------------------------------->
+<!----------------------------------------------------------------------------------------------------->
+
+
+<!------------------------------------- OBJECTS IN THIS PART ------------------------------------------>
+
+   <Template name=PortalDefault>
+      <PortalEndPoint>
+         <attached>
+            <Model mesh="Spacegate.mesh" />
+         </attached>
+      </PortalEndPoint>
+   </Template>
+
+   <PortalEndPoint position="4000,2500,4000" id="1" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0"/>
+   <PortalEndPoint position="0,94000,0" id="2" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0"/>
+   <PortalLink fromID="1" toID="2" />
+   <!--<PortalLink fromID="2" toID="1" />-->
+
+<!-- Meteoriten, die sich bewegen -->
+   <?lua
+      for i = 1, 600, 1
+      do
+      j = math.random()
+	x = math.random()
+      y = math.random()
+	z = math.random()
+   ?>
+
+   <MovableEntity	
+      position = "<?lua print(math.random()* 1000-500) ?>,<?lua print(math.random() * 10000 + 110000) ?>,<?lua print(math.random() * 1000-500) ?>"
+      scale = "<?lua print(j * 40)?>"
+      velocity = "<?lua print(x*60-30)?>, <?lua print(y*60-160)?>, <?lua print(z*60-30)?>"
+      collisionType = dynamic
+      collisiondamage = 0.05
+      enablecollisiondamage = true 
+	active = true
+   >  	 	 
+	      <events> 	 	 
+	         <activity> 	 	 
+	        <EventListener event="start" /> 	 	 
+	     </activity> 	 	 
+	      </events> 	 	 
+	      <attached> 	 	 
+	         <Model mass="<?lua print(j * 1000) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" /> 	 	 	 	 
+	      </attached> 
+         <collisionShapes>
+            <SphereCollisionShape radius="<?lua print(j * 50) ?>" />
+         </collisionShapes>   
+   </MovableEntity>
+
+   <?lua
+      end
+   ?>
+
+<BlinkingBillboard position="5000,5700,5000" frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,1,0.05">
+          <events>
+            <visibility>
+              <EventTrigger invert=true>
+                <events>
+                  <trigger>
+                    <EventListener event=portal2 />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</BlinkingBillboard>
+
+<Billboard position="5000,5700,5000" amplitude=1 material="Flares/lensflare" colour="0,0.8,0.1">
+          <events>
+            <visibility>
+              <EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event=portal2 />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</Billboard>
+
+<DistanceTrigger name="start" position="0,94000,0" target="SpaceShip" beaconMode="exclude" targetname="bcnDestroyer" distance=20 stayActive="true" delay=0 />
+
+<DistanceTrigger name="portal2" position="5000,5700,5000" target="Pawn" distance=20 stayActive="true" delay=3/>
+    <SimpleNotification message="Housten: Now go through the portal!">
+        <events>
+            <trigger>
+                <EventListener event="portal2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+
+<!----------------------------------------------------------------------------------------------------->
+<!--------------------------- PART TWO: Passing throug area with meteorits ---------------------------->
+<!----------------------------------------------------------------------------------------------------->
+   
+  <SpaceShip
+        team      = 0
+        position  = "0,118000,0"
+        roll      = 0   yaw=90  pitch=0
+        mass      = 10000
+        health    = 100000 initialhealth=100000 maxhealth="100000"
+        name      = "wormhole"
+        radarname = "Wormhole to Area 51" > 
+      <attached>
+         <DistanceTriggerBeacon name="bcnDestroyer" />
+         <Billboard position="0,0,0" material="Portals/Default" />
+	<DistanceTrigger name="endOfLevel" position="0,0,0" target="SpaceShip" beaconMode="exclude" targetname="bcnDestroyer" distance=50 stayActive="true" delay=0/>
+
+        <Model mesh="HydroHarvester.mesh" mass=10 position="0,0,0" scale=50 />
+   <!-- <Model mesh="cube.mesh" mass=10 position="-560,0,0" scale3D="115,100,245"  />
+        <Model mesh="cube.mesh" mass=10 position="290,0,-480" scale3D="115,100,245" yaw=-120 />
+        <Model mesh="cube.mesh" mass=10 position="290,0,480" scale3D="115,100,245" yaw=-240 />
+        <Model mesh="cube.mesh" mass=10 position="-280,0,0" scale3D="163,50,50" />
+        <Model mesh="cube.mesh" mass=10 position="140,0,-240" scale3D="163,50,50"  yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="140,0,240" scale3D="163,50,50" yaw=-240/>
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" />
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="0,530,0" scale3D="172,52,298" yaw=-240/>
+        <Model mesh="cube.mesh" mass=10 position="0,400,0" scale3D="43,110,26" yaw=-30 />
+        <Model mesh="cube.mesh" mass=10 position="-200,100,0" scale3D="26,50,43" />
+        <Model mesh="cube.mesh" mass=10 position="100,100,-173" scale3D="43,50,26" yaw=-30/>
+        <Model mesh="cube.mesh" mass=10 position="100,100,173" scale3D="43,50,26" yaw=30/>
+        <Model mesh="cube.mesh" mass=10 position="-100,264,0" scale3D="26,105,43" roll=-49/>
+        <Model mesh="cube.mesh" mass=10 position="50,264,-87" scale3D="26,105,43" roll=-49 yaw=-120/>
+        <Model mesh="cube.mesh" mass=10 position="50,264,87" scale3D="26,105,43" roll=-49 yaw=-240/>     -->
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
+        <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
+        <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
+        <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
+        <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
+        <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
+        <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
+        <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
+        <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
+        <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
+        <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
+      </collisionShapes>
+    </SpaceShip>
+
+ <DistanceTrigger name="portal3" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=1/>
+   <SimpleNotification message="Housten: Reach the wormhole to Area 51">
+      <events>
+         <trigger>
+            <EventListener event="portal3" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+  <DistanceTrigger name="portal4" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=5/>
+   <SimpleNotification message="Housten: Hurry up John">
+      <events>
+         <trigger>
+            <EventListener event="portal4"  />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+   <DistanceTrigger name="portal5" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=9/>
+   <SimpleNotification message="Houston: Pay attention to the asteroids!">
+      <events>
+         <trigger>
+            <EventListener event="portal5" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+   <DistanceTrigger name="portal6" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=13/>
+   <SimpleNotification message="John: I see the wormhole station on the radar">
+      <events>
+         <trigger>
+            <EventListener event="portal6" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+
+   <DistanceTrigger name="portal7" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=17/>
+   <SimpleNotification message="Houston: Is it black?">
+      <events>
+         <trigger>
+            <EventListener event="portal7" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+   <DistanceTrigger name="portal8" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=21/>
+   <SimpleNotification message="John: Yes">
+      <events>
+         <trigger>
+            <EventListener event="portal8" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+
+   <DistanceTrigger name="portal9" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=25/>
+   <SimpleNotification message="Houston: It should really look like a black hole.">
+      <events>
+         <trigger>
+            <EventListener event="portal9" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+   <DistanceTrigger name="portal10" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=29/>
+   <SimpleNotification message="John: It does... ">
+      <events>
+         <trigger>
+            <EventListener event="portal10" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+   <DistanceTrigger name="portal11" position="0,94000,0" target="SpaceShip" distance=50 stayActive="true" delay=33/>
+   <SimpleNotification message="Houston: Hahaha ">
+      <events>
+         <trigger>
+            <EventListener event="portal11" />
+         </trigger>
+      </events>
+   </SimpleNotification>
+
+
+    <SimpleNotification message="End of game">
+        <events>
+            <trigger>
+                <EventListener event="endOfLevel" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+   <Script code="Mission endMission true" onLoad="false">
+        <events>
+            <trigger>
+                <EventListener event=endOfLevel />
+            </trigger>
+        </events>
+    </Script> 
+    
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/iiJohnVane_Area51UnderFire.oxw
===================================================================
--- code/trunk/data/levels/iiJohnVane_Area51UnderFire.oxw	(revision 9939)
+++ code/trunk/data/levels/iiJohnVane_Area51UnderFire.oxw	(revision 9939)
@@ -0,0 +1,2045 @@
+<!-- (ii) John Vane : Trip to Area 51-->
+
+<!--
+To Do:
+- Quest-Problem
+- Time the explosion right and no loops
+- Bigger explosion?
+- If possible, do the scout with DistanceTriggerBeacon
+- DistanceTriggerBeacon for Captain Hood
+-->
+
+<LevelInfo
+ name = "(ii) John Vane : Area 51 Under Fire"
+ description = "Level-part with the big Spacefight"
+ tags = "mission"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/spaceshipSwallow.oxt")
+  include("templates/pickupRepresentationTemplates.oxt")
+  include("templates/spaceshipCollateralDamage.oxt")
+?>
+<?lua
+    dofile("includes/CuboidSpaceStation.lua")
+?>
+
+<Level
+  gametype = "Mission"
+>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+
+  <?lua include("includes/notifications.oxi") ?>
+
+
+  <NotificationQueueCEGUI
+    name="narrative"
+    targets="simpleNotification"
+    size=3
+    displayTime=4.9
+    position="0.2, 0, 0.1, 0"
+    fontSize="23"
+    fontColor="0.3, 1, 0.2, 0.8"
+    alignment="HorzCentred"
+    displaySize="0.6, 0, 0, 0"
+    />
+
+<Scene
+    ambientlight = "0.8, 0.8, 0.8"
+    skybox       = "Orxonox/Starbox"
+  >
+  <?lua include("includes/pickups.oxi") ?>
+
+<Script code="showGUI NotificationLayer false true" needsGraphics="true" />
+<OverlayGroup name="spacefightHUD" scale = "1, 1">
+  <CountDown
+     position    = "0.51, 0.05"
+     pickpoint   = "0.0, 0.0"
+     font        = "ShareTechMono"
+     textsize    = 0.1
+     colour      = "1.0, 1.0, 1.0, 1.0"
+     align       = "center"                  
+     counter     = "10.0"
+     speedfactor = "1.0"
+     active      = "false"
+  >
+    <events>
+      <activity>
+        <EventListener event="timer1" />
+      </activity>
+    </events>
+  </CountDown>
+</OverlayGroup>
+
+<!-- SPAWNTRIGGER -->
+	<!-- StartPoint --> 
+	<SpawnPoint team=0 position="0, 0, 0" lookat="100, 0, 0" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage >
+          <events>
+            <activity>
+              <EventListener event="flying12" />
+            </activity>
+          </events>
+	</SpawnPoint>
+
+	<EventTrigger name="flying12" invert="true" >
+	  <events>
+	    <trigger>
+	      <EventListener event="flying1" />
+	    </trigger>
+          </events>
+	</EventTrigger>
+
+	<!-- Second Spawnpoint (after first guard) -->
+	<SpawnPoint team=0 position="13500, 2500, 10500" lookat="18000,5000,18000" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage >
+	  <events>
+            <activity>
+	      <EventTrigger>
+		<EventTrigger invert=true >
+		  <events>
+		    <trigger>
+		      <EventListener event="reached" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+		<events>
+		  <trigger>
+                    <EventListener event="flying1" />
+		  </trigger>
+		</events>
+	      </EventTrigger>
+            </activity>
+          </events>
+        </SpawnPoint>
+	
+	<!-- Thirth Spawnpoint (when reached Captain Hood) -->
+	<SpawnPoint team=0 position="-4000, -18000, 19000" lookat="-12000, -22000, 25000" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage >
+	  <events>
+            <activity>
+	      <EventTrigger>
+		<EventTrigger invert=true >
+		  <events>
+		    <trigger>
+		      <EventListener event="timerEnd" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+		<events>
+		  <trigger>
+                    <EventListener event="reached" />
+		  </trigger>
+		</events>
+	      </EventTrigger>
+            </activity>
+          </events>
+        </SpawnPoint>
+
+	<!-- Distance-Spawn-Trigger -->
+	<DistanceTrigger name=spawntrigger2 position="0, 0, 0" target="SpaceShip" distance=10 stayActive="true" delay=0 />
+
+	<!-- Drone pickup -->
+	<PickupSpawner pickup=dronepickup position="9750, -5350, 5650" triggerDistance="100" respawnTime="30" maxSpawnedItems="2" />
+
+	<!-- QUEST DESCRIPTION -->
+	<LocalQuest id="spacefight.guard1">
+		<QuestDescription 
+			title="The first guard!" 
+			description="You've reached the enemys Station and they haven't seen you yet.
+
+				Ahead you see the first little patrol.
+				There are two little battleships and also two unarmed ships.
+				The unarmed could not attack you. So first destroy the battleships!"
+			failMessage="You've lost all your ships!"
+			completeMessage="Well done!" />
+	</LocalQuest>
+
+	<LocalQuest id="spacefight.upgrade1">
+		<QuestDescription
+			title="Prepare for the fight (optional)"
+			description="Your friends has an arsenal left behind near by your position.
+				perhaps you find something useful there...
+				Hint: look for a big asteroid."
+			failMessage="You've lost all your ships!"
+			completeMessage="Your ship is prepared best for the second and last guard on the way to the mainship.
+				Now attack the second guard!" />
+	</LocalQuest>
+
+	<!-- Quest-Problem: Quests couldn't be started and completed --
+	<LocalQuest id="spacefight.guard2">
+		<QuestDescription
+			title="The second guard!"
+			description="There is also a second guard. The blinking light shows you the direction.
+				Destroy also this guard!"
+			failMessage="You've lost all your ships!"
+			completeMessage="" />
+	</LocalQuest>
+
+	<LocalQuest id="spacefight.escape">
+		<QuestDescription
+			title="Catch the messenger!"
+			description="A messenger is on the way to warn the troups of the mainship.
+				Destroy him before he is near by the mainship. 
+				Else the fight against the enemys troups will be much more difficult."
+			failMessage="The messenger has reached the mainship.
+				Prepare to fight against a strong enmey!"
+			completeMessage="Well done! Now the element of surprise will be ours!" />
+	</LocalQuest>
+
+	<!-- 2 different possibilitys --
+	<!-- Spion is destroyed --
+	<LocalQuest id="spacefight.mainfight(min)" >
+		<QuestDescription
+			title="The big fight!"
+			description="Now the time is come!
+				You've done all you can to prepare you for this spacebattle.
+				Let us see, if it was enough.
+				
+				ATTACK!!!"
+			failMessage="You've lost all your ships!"
+			completeMessage="YEEEHAAA!
+				You managed it! For that you will get the golden medal of the united space armies." />
+		<complete-effects>
+			<AddQuest questId="spacefight.rescue" />
+		</complete-effects>
+	</LocalQuest>
+
+	<!-- Spion isn't destroyed --
+	<LocalQuest id="spacefight.mainfight(max)" >
+		<QuestDescription
+			title="The big fight!"
+			description="Now the time is come!
+				You've done all you can to prepare you for this spacebattle.
+				Unfortunately the spion has alert the mainship. So the soldiers will also be prepared for you.
+				But you can manage it.
+				Good luck!"
+			failMessage="You've lost all your ships!"
+			completeMessage="YEEEHAAA!
+				You managed it! For that you will get the golden medal of the united space armies." />
+		<complete-effects>
+			<AddQuest questId="spacefight.rescue" />
+		</complete-effects>
+	</LocalQuest>
+
+	<LocalQuest id="spacefight.rescue" >
+		<QuestDescription
+			title="Rescue and place the bomb"
+			description="Now you have to free the commander and place a bomb in the pirates' mainship."
+			failMessage="You've lost all your ships!"
+			completeMessage="" />
+		<complete-effects>
+			<AddQuest questId="spacefight.moveAway" />
+		</complete-effects>
+	</LocalQuest>
+
+	<LocalQuest id="spacefight.moveAway" >
+		<QuestDescription
+			title="Get away!"
+			description="Get away of the mainship before the bomb detonates."
+			failMessage="You've lost all your ships!"
+			completeMessage="Done!" />
+	</LocalQuest>
+
+	<!-- End of Mission -->
+	
+<!-- ---------------------------------------------------------------------- -->
+<!-- QuestEffectBeacon's (not all necessary, because not all Quests work -->
+	<!-- START -->
+	<QuestEffectBeacon times=0>
+		<effects>
+			<AddQuest questId="spacefight.guard1" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event=spawntrigger2 />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<QuestEffectBeacon times=0>
+		<events>
+			<execute>
+				<EventListener event="flying1" />
+			</execute>
+		</events>
+		<effects>
+			<CompleteQuest questId="spacefight.guard1" />
+		</effects>
+	</QuestEffectBeacon>
+
+	<SimpleNotification message="Houston: Well done!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="flying1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="flying1delay" activations="1" stayactive="true" delay=5.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="flying1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: The green light shows you the way!"  broadcast="true" >
+		<events>
+			<trigger>
+				<EventListener event="flying1delay" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<!-- Is activ at flying 1 and again inactive when flying2-->
+	<BlinkingBillboard position="11000, 1000, 7000" colour="0.0, 1.0, 0.0" frequency=0.5 amplitude=10 material="Examples/Flare" >
+          <events>
+            <visibility>
+              <EventTrigger>
+		<EventTrigger invert=true>
+		  <events>
+		    <trigger>
+		      <EventListener event="flying2" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event="flying1" />
+                  </trigger>
+                </events>
+	      </EventTrigger>
+            </visibility>
+          </events>
+	</BlinkingBillboard>
+	
+	<!-- Drone (optional quest) -->
+	<QuestEffectBeacon times=0>
+		<effects>
+			<AddQuest questId="spacefight.upgrade1" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="droneTrigger" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>	
+
+	<QuestEffectBeacon times=0>
+		<effects>
+			<CompleteQuest questId="spacefight.upgrade1" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="drone1" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<QuestEffectBeacon times=0>
+		<effects>
+			<CompleteQuest questId="spacefight.upgrade1" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="victory" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+	
+	<!-- Guard 2 -->
+	<QuestEffectBeacon times=0>
+		<effects>
+			<AddQuest questId="spacefight.guard2" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="droneTrigger" />
+			</execute>		
+		</events>
+	</QuestEffectBeacon>
+
+	<QuestEffectBeacon times=0>
+		<effects>
+			<CompleteQuest questId="spacefight.guard2" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="flying2" />
+			</execute>		
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- ESCAPE -->
+	<SimpleNotification message="Houston: A scout is startet to the mainship!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="guard2trigger1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<QuestEffectBeacon times=0>
+		<effects>
+			<AddQuest questId="spacefight.escape" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="escape10" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- ESCAPE ENDING -->
+	<!-- Spion escaped -->
+	<QuestEffectBeacon times=0>
+		<effects>
+			<CompleteQuest questId="spacefight.escape" />
+			<AddQuest questId="spacefight.mainfight(max)" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="spionTrigger" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- Spion destroyed -->
+	<QuestEffectBeacon>
+		<effects>
+			<CompleteQuest questId="spacefight.escape" />
+			<AddQuest questId="spacefight.mainfight(min)" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="spion5" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- LAST FIGHT -->
+	<!-- Spion destroyed -->
+	<QuestEffectBeacon>
+		<effects>
+			<CompleteQuest questId="spacefight.mainfight(min)" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="guard3trigger4" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- Spion escaped -->
+	<QuestEffectBeacon>
+		<effects>
+			<CompleteQuest questId="spacefight.mainfight(max)" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="guard3trigger6" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- COMMANDER RESCUE -->
+	<QuestEffectBeacon>
+		<effects>
+			<CompleteQuest questId="spacefight.rescue" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="dock" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- FLY AWAY -->
+	<QuestEffectBeacon>
+		<effects>
+			<CompleteQuest questId="spacefight.moveAway" />
+		</effects>
+		<events>
+			<execute>
+				<EventListener event="" />
+			</execute>
+		</events>
+	</QuestEffectBeacon>
+
+	<!-- End with explosion -->
+
+<!-- ---------------------------------------------------------------------- -->
+	<!-- Helper-Trigger for first guard -->
+	<EventTrigger name="spawntrigger2Delay" stayactive="true" delay=2 >
+		<events>
+			<trigger>
+				<EventListener event=spawntrigger2 />
+			</trigger>
+		</events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Attack the first guard!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="spawntrigger2Delay" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<DistanceTrigger name="flying1" position="9000, 0, 0" target="SpaceShip" distance=10000 stayActive="true" delay=0.1 >
+		<EventTrigger>
+			<events>
+				<trigger>
+					<EventListener event="guard1trigger4" />
+				</trigger>
+			</events>
+		</EventTrigger>
+	</DistanceTrigger>
+
+	<!-- Trigger to activate the upgrade1-Quest -->
+	<DistanceTrigger name="droneTrigger" position="11000, 1000, 7000" target="SpaceShip" distance=2000 stayActive="true" delay=0.1 />
+	<SimpleNotification message="Houston: Need an Upgrade?"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="droneTrigger" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="droneTriggerDelay" stayactive="true" delay=5 >
+		<events>
+			<trigger>
+				<EventListener event="droneTrigger" />
+			</trigger>
+		</events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Search the drone!"  broadcast="true" >
+		<events>
+			<trigger>
+				<EventListener event="droneTriggerDelay" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="droneTriggerDelay2" stayactive="true" delay=5 >
+		<events>
+			<trigger>
+				<EventListener event="droneTriggerDelay" />
+			</trigger>
+		</events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Else you see the second guard ahead..."  broadcast="true" >
+		<events>
+			<trigger>
+				<EventListener event="droneTriggerDelay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+			
+
+	<!-- Helper-Trigger for the drone -->
+	<DistanceTrigger name="drone1" position="9750, -5350, 5650" target="SpaceShip" distance=100 stayActive="true" delay=0.1 />
+	<SimpleNotification message="Houston: Now your are prepared best!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="drone1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="drone1Delay" stayactive="true" delay=5.1 >
+		<events>
+			<trigger>
+				<EventListener event="drone1" />
+			</trigger>
+		</events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Fly back to the green light."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="drone1Delay" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<Trigger name="secondDroneTrigger" mode="and" stayActive="true">
+	  <DistanceTrigger name="droneTrigger" position="11000, 1000, 7000" target="SpaceShip" distance=1000 stayActive="true" delay=0.1 />
+          <EventTrigger>
+            <events>
+              <trigger>
+                <EventListener event="drone1" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+	<SimpleNotification message="Houston: The red light shows you the direction."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="secondDroneTrigger" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<BlinkingBillboard position="12000, 1500, 10000" colour="1.0, 0.0, 0.0" frequency=0.5 amplitude=5 material="Examples/Flare" >
+	  <events>
+	    <visibility>
+	      <EventTrigger>
+		<EventTrigger invert=true>
+		  <events>
+		    <trigger>
+		      <EventListener event="guard2trigger1" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+	        <events>
+	          <trigger>
+	            <EventListener event="secondDroneTrigger" />
+	          </trigger>
+	        </events>
+	      </EventTrigger>
+	    </visibility>
+	  </events>
+	</BlinkingBillboard>
+
+	<!-- Helper-Trigger for second guard -->
+	<DistanceTrigger name="flying2" position="17000,5000,15000" target="SpaceShip" distance=20000 stayActive="true" delay=0 >
+		<EventTrigger>
+			<events>
+				<trigger>
+					<EventListener event="guard2trigger4" />
+				</trigger>
+			</events>
+		</EventTrigger>
+	</DistanceTrigger>	
+
+	<SimpleNotification message="Houston: Well done!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="flying2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<Trigger name="guard2withoutScout" mode="and" stayActive="true" delay=0 >
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+	        <EventListener event="flying2" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	  <EventTrigger activations="1" invert="true" >
+	    <events>
+	      <trigger>
+	        <EventListener event="spionEnd" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	</Trigger>
+
+	<EventTrigger name="flying2delay1" activations="1" stayactive="true" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="guard2withoutScout" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Catch the scout!"  broadcast="true" >
+		<events>
+			<trigger>
+				<EventListener event="flying2delay1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="flying2delay2" activations="1" stayactive="true" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="flying2delay1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Before he reachs the red light..."  broadcast="true" >
+		<events>
+			<trigger>
+				<EventListener event="flying2delay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<!-- DistanceTrigger for scout -->
+	<Trigger name="spionTrigger" mode="and" stayActive="true">
+	  <DistanceTrigger position="14000, 1000, 22000" target="SpaceShip" distance=50 stayActive="true" delay=0.1 />
+          <EventTrigger activations="1" invert="true">
+            <events>
+              <trigger>
+                <EventListener event="spion5" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+	<SimpleNotification message="Houston: Scout is arrived!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="spionTrigger" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="spionTriggerDelay" stayactive="true" delay=5 >
+		<events>
+			<trigger>
+				<EventListener event="spionTrigger" />
+			</trigger>
+		</events>
+	</EventTrigger>	
+
+	<SimpleNotification message="Houston: Now the mainship is alarmed..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="spionTriggerDelay" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<BlinkingBillboard position="14000, 1000, 22000" colour="1.0, 0.0, 0.0" frequency=0.3 amplitude=7 material="Examples/Flare" >
+	  <events>
+	    <visibility>
+	      <EventTrigger>
+		<EventTrigger invert=true>
+		  <events>
+		    <trigger>
+		      <EventListener event="spionEnd" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+	        <events>
+	          <trigger>
+	            <EventListener event="guard2trigger1" />
+	          </trigger>
+	        </events>
+	      </EventTrigger>
+	    </visibility>
+	  </events>
+	</BlinkingBillboard>
+
+	<!-- If scout destroyed -->
+	<SimpleNotification message="Houston: Scout destroyed!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="spion5" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<Trigger name="scoutDestroydAddon" mode="and" stayActive="true" delay=5 >
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+	        <EventListener event="spion5" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+	        <EventListener event="spionTrigger" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	</Trigger>
+
+	<SimpleNotification message="Houston: But the mainship is already warned."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="scoutDestroydAddon" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<!-- Scout end -->
+	<Trigger name="spionEnd" mode="or" stayActive="true" delay=0 >
+	  <EventTrigger>
+	    <events>
+	      <trigger>
+	        <EventListener event="spion5" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	  <EventTrigger>
+	    <events>
+	      <trigger>
+	        <EventListener event="spionTrigger" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	</Trigger>
+
+	<EventTrigger name="spionEndDelay" activations="1" delay=5>
+	  <events>
+	    <trigger>
+	      <EventListener event="spionEnd" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<!-- Intro to Captain Hood -->
+	<Trigger name="introHood" mode="and" stayActive="true">
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+	        <EventListener event="spionEndDelay" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+	        <EventListener event="guard2trigger4" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	</Trigger>
+
+	<EventTrigger name="introHoodDelay1" activations="1" stayactive="true" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="introHood" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Your friend, Captain Hood, is"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="introHoodDelay1.2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="introHoodDelay1.2" activations="1" stayactive="true" delay=0.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="introHoodDelay1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="near by you!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="introHoodDelay1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="introHoodDelay2" activations="1" stayactive="true" delay=5.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="introHoodDelay1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>	
+
+	<SimpleNotification message="Houston: He'll show you the way"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="introHoodDelay2.2" />
+			</trigger>
+		</events>
+	</SimpleNotification>	
+
+	<EventTrigger name="introHoodDelay2.2" activations="1" stayactive="true" delay=0.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="introHoodDelay2" />
+	    </trigger>
+	  </events>
+	</EventTrigger>	
+
+	<SimpleNotification message="to the mainship!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="introHoodDelay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>	
+
+	<!-- Helper-Trigger for Captain Hood -->
+	<DistanceTrigger name="reached" position="10000, 2000, 17000" target="SpaceShip" distance=1000 stayActive="true" delay=0.1 >
+		<EventTrigger>
+			<events>
+				<trigger>
+					<EventListener event="guard2trigger4" />
+				</trigger>
+			</events>
+		</EventTrigger>
+	</DistanceTrigger>
+
+	<SimpleNotification message="Houston: Follow Captain Hood!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reached" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay1" activations="1" stayactive="true" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reached" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Hood: Hello my friend!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay2" activations="1" stayactive="true" delay=7 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reachedDelay1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Hood: Good work at the first two guards..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay3" activations="1" stayactive="true" delay=7 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reachedDelay2" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Hood: But the heaviest part is waiting"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay4" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay4" activations="1" stayactive="true" delay=0.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reachedDelay3" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="for us..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay3" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay5" activations="1" stayactive="true" delay=7 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reachedDelay4" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+        <Trigger name="reachedDelay6.destroyed" mode="and" stayActive="true">
+	  <EventTrigger>
+	    <events>
+	      <trigger>
+		<EventListener event="reachedDelay5" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+          <EventTrigger invert=true >
+            <events>
+              <trigger>
+                <EventListener event="spionTrigger" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+	<SimpleNotification message="Hood: Good that you've destroyed the scout!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay6.destroyed" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+        <Trigger name="reachedDelay6.arrived" mode="and" stayActive="true">
+	  <EventTrigger>
+	    <events>
+	      <trigger>
+		<EventListener event="reachedDelay5" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+          <EventTrigger>
+            <events>
+              <trigger>
+                <EventListener event="spionTrigger" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+	<SimpleNotification message="Hood: What a pity that you couldn't"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay6.arrived2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="reachedDelay6.arrived2" activations="1" stayactive="true" delay=0.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="reachedDelay6.arrived" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="destroy the scout..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="reachedDelay6.arrived" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<DistanceTrigger name="discuss" position="-4000, -9000, 18000" target="SpaceShip" distance=50 stayActive="true" delay=0.1 />
+	<SimpleNotification message="Hood: Look, there is the mainship!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="discuss" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<!-- End of Mainfight -->
+        <Trigger name="victory1" mode="and" stayActive="true">
+	  <EventTrigger>
+	    <events>
+	      <trigger>
+		<EventListener event="guard3trigger4" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+          <EventTrigger activations="1" >
+            <events>
+              <trigger>
+                <EventListener event="spion5" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+        <Trigger name="victory2" mode="and" stayActive="true">
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+		<EventListener event="guard3trigger6" />
+	        </trigger>
+	    </events>
+	  </EventTrigger>
+          <EventTrigger activations="1" >
+            <events>
+              <trigger>
+                <EventListener event="spionTrigger" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+        <Trigger name="victory" mode="or" stayActive="true">
+	  <EventTrigger activations="1" >
+	    <events>
+	      <trigger>
+		<EventListener event="victory1" />
+	      </trigger>
+	    </events>
+	  </EventTrigger>
+	  <EventTrigger activations="1" >
+            <events>
+              <trigger>
+                <EventListener event="victory2" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </Trigger>
+
+	<SimpleNotification message="Houston: YEEEHAAA! You managed it!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victory" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="victoryDelay1" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="victory" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<EventTrigger name="victoryDelay1.1" delay=5.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="victory" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: For that you will get the golden medal"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victoryDelay1.1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<SimpleNotification message="of the united space armies."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victoryDelay1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="victoryDelay2" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="victoryDelay1.1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<EventTrigger name="victoryDelay2.1" delay=5.1 >
+	  <events>
+	    <trigger>
+	      <EventListener event="victoryDelay1.1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: Now dock at the mainship and"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victoryDelay2.1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<SimpleNotification message="free the Commander!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victoryDelay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="victoryDelay3" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="victoryDelay2" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: The light shows you the hatch"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="victoryDelay3" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<!-- Rescue the commander -->
+	<BlinkingBillboard position="-12470, -21870, 25200" colour="0.0, 0.0, 1.0" frequency=0.5 amplitude=5 material="Examples/Flare" >
+	  <events>
+	    <visibility>
+	      <EventTrigger>
+		<EventTrigger invert=true>
+		  <events>
+		    <trigger>
+		      <EventListener event="dock" />
+		    </trigger>
+		  </events>
+		</EventTrigger>
+	        <events>
+	          <trigger>
+	            <EventListener event="victory" />
+	          </trigger>
+	        </events>
+	      </EventTrigger>
+	    </visibility>
+	  </events>
+	</BlinkingBillboard>
+	
+	<DistanceTrigger name="dock" position="-12470, -21870, 25200" target="SpaceShip" distance=50 stayActive="true" delay=0 />
+	<SimpleNotification message="Houston: The Commander is on board!"  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="dock" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+	
+	<!-- TIMER-EVENTS -->
+	<EventTrigger name="dockDelay1" stayactive="true" delay=5 >
+	  <events>
+	    <trigger>
+	      <EventListener event="dock" />
+	    </trigger>
+	  </events>
+	</EventTrigger>	
+	
+	<SimpleNotification message="Houston: A bomb is placed in the mainship..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="dockDelay1" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+	<EventTrigger name="dockDelay2" activations="1" stayactive="true" delay=5.0 >
+	  <events>
+	    <trigger>
+	      <EventListener event="dockDelay1" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+	<SimpleNotification message="Houston: You have 10 seconds to move away..."  broadcast="true">
+		<events>
+			<trigger>
+				<EventListener event="dockDelay2" />
+			</trigger>
+		</events>
+	</SimpleNotification>
+
+
+    <EventTrigger name="timer1" activations="1" stayactive="true" delay=5 >
+      <events>
+        <trigger>
+          <EventListener event="dockdelay2" />
+        </trigger>
+      </events>
+    </EventTrigger>
+
+    <EventTrigger name="timerEnd" activations="1" stayactive="true" delay=10 >
+      <events>
+        <trigger>
+          <EventListener event="timer1" />
+        </trigger>
+      </events>
+    </EventTrigger>
+
+    <EventTrigger name="negativeTimerEnd" invert="true" delay=0 >
+      <events>
+        <trigger>
+          <EventListener event="timerEnd" />
+        </trigger>
+      </events>
+    </EventTrigger>
+
+<!-- ----------------------------------------------------- -->    
+<!-- For Guard 1 -->
+<!-- @Triggers: attacktriggerX <-> X enemies destroyed , X is an element of [1,4] -->
+    <EventTrigger name="guard1trigger4" activations="1" stayactive="true" delay=0.1>
+      <events>
+        <trigger>
+          <EventListener event="firstPatrol" />
+        </trigger>
+      </events>
+      <EventTrigger name="guard1trigger3" activations="1" stayactive="true" delay=0.1>
+        <events>
+          <trigger>
+            <EventListener event="firstPatrol" />
+          </trigger>
+        </events>
+        <EventTrigger name="guard1trigger2" activations="1" stayactive="true" delay=0.1>
+          <events>
+            <trigger>
+              <EventListener event="firstPatrol" />
+            </trigger>
+          </events>
+          <EventTrigger name="guard1trigger1" activations="1" stayactive="true" delay=0.1>
+            <events>
+              <trigger>
+                <EventListener event="firstPatrol" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </EventTrigger>
+      </EventTrigger>
+    </EventTrigger>
+
+<!-- For Guard 2 -->
+<!-- @Triggers: attacktriggerX <-> X enemies destroyed , X is an element of [1,4] -->
+    <EventTrigger name="guard2trigger4" activations="1" stayactive="true" delay=0.1>
+      <events>
+        <trigger>
+          <EventListener event="secondPatrol" />
+        </trigger>
+      </events>
+      <EventTrigger name="guard2trigger3" activations="1" stayactive="true" delay=0.1>
+        <events>
+          <trigger>
+            <EventListener event="secondPatrol" />
+          </trigger>
+        </events>
+        <EventTrigger name="guard2trigger2" activations="1" stayactive="true" delay=0.1>
+          <events>
+            <trigger>
+              <EventListener event="secondPatrol" />
+            </trigger>
+          </events>
+          <EventTrigger name="guard2trigger1" activations="1" stayactive="true" delay=0.1>
+            <events>
+              <trigger>
+                <EventListener event="secondPatrol" />
+              </trigger>
+            </events>
+          </EventTrigger>
+        </EventTrigger>
+      </EventTrigger>
+    </EventTrigger>
+
+<!-- For Escape -->
+	<EventTrigger name="spion5" stayactive="true" >
+	  <events>
+	    <trigger>
+	      <EventListener event="spion" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+
+<!-- For last fight -->
+    <EventTrigger name="guard3trigger6" activations="1" stayactive="true" delay=0.1 >
+      <events>
+        <trigger>
+          <EventListener event="lastGuard" />
+        </trigger>
+      </events>
+      <EventTrigger name="guard3trigger5" activations="1" stayactive="true" delay=0.1 >
+        <events>
+          <trigger>
+            <EventListener event="lastGuard" />
+          </trigger>
+        </events>
+        <EventTrigger name="guard3trigger4" activations="1" stayactive="true" delay=0.1 >
+          <events>
+            <trigger>
+              <EventListener event="lastGuard" />
+            </trigger>
+          </events>
+          <EventTrigger name="guard3trigger3" activations="1" stayactive="true" delay=0.1 >
+            <events>
+              <trigger>
+                <EventListener event="lastGuard" />
+              </trigger>
+            </events>
+	    <EventTrigger name="guard3trigger2" activations="1" stayactive="true" delay=0.1 >
+	      <events>
+		<trigger>
+		  <EventListener event="lastGuard" />
+		</trigger>
+	      </events>
+	      <EventTrigger name="guard3trigger1" activations="1" stayactive="true" delay=0.1 >
+		<events>
+		  <trigger>
+		    <EventListener event="lastGuard" />
+		  </trigger>
+		</events>
+	      </EventTrigger>
+	    </EventTrigger>
+          </EventTrigger>
+        </EventTrigger>
+      </EventTrigger>
+    </EventTrigger>
+	
+<!-- ----------------------------------------------------- -->
+<!-- Passive Pirates: Guard 1 -->
+<SpaceShip position="8000,1000,0" lookat="8000,-1000,0" name="firstPatrol" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event=spawntrigger2 />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointController team=1>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="8000,-1000,0" />
+        <Model mesh="cube.mesh" scale=0 position="8000,1000,0" />
+      </waypoints>
+    </WaypointController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="8000,0,0" lookat="8000,0,-1000" name="firstPatrol" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event=spawntrigger2 />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointController team=1>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="8000,0,-1000" />
+        <Model mesh="cube.mesh" scale=0 position="8000,0,1000" />
+      </waypoints>
+    </WaypointController>
+  </controller>
+</SpaceShip>
+
+
+<!-- Active Pirates: Guard 1 -->
+<SpaceShip position="8000,-1000,1000" lookat="8000,1000,-1000" name="firstPatrol" visible="true" radarname="Patrol" >
+  <events>
+    <visibility>
+      <EventListener event=spawntrigger2 />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="8000,1000,-1000" />
+        <Model mesh="cube.mesh" scale=0 position="8000,-1000,1000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event=spawntrigger2 />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="8000,-500,-500" lookat="8000,1000,1000" name="firstPatrol" visible="true" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event=spawntrigger2 />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="8000,1000,1000" />
+        <Model mesh="cube.mesh" scale=0 position="8000,-1000,-1000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event=spawntrigger2 />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<!-- Pirates Guard 2 -->
+<SpaceShip position="18000,5000,15000" lookat="17700,4300,15000" name="secondPatrol" visible="true" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event="guard1trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="17700,4300,15000" />
+        <Model mesh="cube.mesh" scale=0 position="17000,4000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,4300,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,5700,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17000,6000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,5700,15000" />
+        <Model mesh="cube.mesh" scale=0 position="18000,5000,15000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event="guard1trigger4" />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="16000,5000,15000" lookat="16300,5700,15000" name="secondPatrol" visible="true" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event="guard1trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="16300,5700,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17000,6000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,5700,15000" />
+        <Model mesh="cube.mesh" scale=0 position="18000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,4300,15000" />
+        <Model mesh="cube.mesh" scale=0 position="17000,4000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,4300,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16000,5000,15000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event="guard1trigger4" />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="17000,4000,15000" lookat="16300,4300,15000" name="secondPatrol" visible="true" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event="guard1trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="16300,4300,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,5700,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17000,6000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,5700,15000" />
+        <Model mesh="cube.mesh" scale=0 position="18000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,4300,15000" />
+        <Model mesh="cube.mesh" scale=0 position="17000,4000,15000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event="guard1trigger4" />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="17000,6000,15000" lookat="17700,5700,15000" name="secondPatrol" visible="true" radarname="Patrol">
+  <events>
+    <visibility>
+      <EventListener event="guard1trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="17700,5700,15000" />
+        <Model mesh="cube.mesh" scale=0 position="18000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17700,4300,15000" />
+        <Model mesh="cube.mesh" scale=0 position="17000,4000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,4300,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16000,5000,15000" />
+	<Model mesh="cube.mesh" scale=0 position="16300,5700,15000" />
+	<Model mesh="cube.mesh" scale=0 position="17000,6000,15000" />
+      </waypoints>
+      <events>
+        <activity>
+          <EventListener event="guard1trigger4" />
+        </activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<!-- Escape-Ship (Scout) -->
+<SpaceShip position="16000,4000,16000" lookat="-12000, -22000, 25000" name="spion" visible="true" radarname="Scout" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger1" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointController team=1>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="14000, 1000, 22000" />
+        <Model mesh="cube.mesh" scale=0 position="0, -10000, 42000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="guard2trigger1" />
+	</activity>
+      </events>
+    </WaypointController>
+  </controller>
+<!--  Should be realized, if possible...
+  <attached>
+    <DistanceTriggerBeacon name="spionBeacon" />
+  </attached>
+-->
+</SpaceShip>
+
+<!-- Pirates Mainship -->
+<SpaceShip position="-10000, -20000, 24000" lookat="-10000, -22000, 24000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="-9500, -22000, 24000" /> <!-- -12000, -22000, 25000    -4000, -18000, 19000 -->
+        <Model mesh="cube.mesh" scale=0 position="-10500, -22000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-11000, -20000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-10000, -20000, 24000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="guard2trigger4" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="-10000, -22000, 24000" lookat="-11000, -22000, 23000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="-10500, -22000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-11000, -20000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-10000, -20000, 24000" />        
+	<Model mesh="cube.mesh" scale=0 position="-9500, -22000, 24000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="guard2trigger4" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="-11000, -22000, 23000" lookat="-11000, -20000, 23000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="-11000, -20000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-10000, -20000, 24000" />        
+	<Model mesh="cube.mesh" scale=0 position="-9500, -22000, 24000" />
+        <Model mesh="cube.mesh" scale=0 position="-10500, -22000, 23000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="guard2trigger4" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="-11000, -20000, 23000" lookat="-10000, -20000, 24000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="-10000, -20000, 24000" />        
+	<Model mesh="cube.mesh" scale=0 position="-9500, -22000, 24000" />
+        <Model mesh="cube.mesh" scale=0 position="-10500, -22000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-11000, -20000, 23000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="guard2trigger4" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<!-- Additional pirates if the scout has warned the mainship -->
+<SpaceShip position="-10500, -20000, 23500" lookat="-10000, -21000, 24000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="spionTrigger" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+        <Model mesh="cube.mesh" scale=0 position="-9750, -21000, 24000" />
+        <Model mesh="cube.mesh" scale=0 position="-10000, -22000, 23500" />
+	<Model mesh="cube.mesh" scale=0 position="-10750, -21000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-10500, -20000, 23500" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="spionTrigger" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<SpaceShip position="-10500, -22000, 23500" lookat="-11000, -21000, 23000" name="lastGuard" visible="true" radarname="Pirate" >
+  <events>
+    <visibility>
+      <EventListener event="spionTrigger" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshippirate />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=1 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="-10750, -21000, 23000" />
+	<Model mesh="cube.mesh" scale=0 position="-10500, -20000, 23500" />
+        <Model mesh="cube.mesh" scale=0 position="-9750, -21000, 24000" />
+        <Model mesh="cube.mesh" scale=0 position="-10000, -22000, 23500" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="spionTrigger" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<!-- Captain Hood (Friend) -->
+<SpaceShip position="8500, 2000, 17000" lookat="0, -1000, 18000" name="friend" visible="true" radarname="Hood" >
+  <events>
+    <visibility>
+      <EventListener event="guard2trigger4" />
+    </visibility>
+  </events>
+  <templates>
+    <Template link=spaceshipswallow />
+  </templates>
+  <controller>
+    <WaypointPatrolController alertnessradius=5000 team=0 active=false>
+      <waypoints>
+	<Model mesh="cube.mesh" scale=0 position="-4000, -9000, 18000" />
+	<Model mesh="cube.mesh" scale=0 position="-11500, -22000, 25000" />
+      </waypoints>
+      <events>
+	<activity>
+	  <EventListener event="reached" />
+	</activity>
+      </events>
+    </WaypointPatrolController>
+  </controller>
+</SpaceShip>
+
+<BlinkingBillboard position="10000, 2000, 17000" colour="1.0, 1.0, 0.0" frequency=0.5 amplitude=20 material="Examples/Flare" >
+  <events>
+    <visibility>
+      <EventTrigger>
+	<EventTrigger invert=true>
+	  <events>
+	    <trigger>
+	      <EventListener event="reached" />
+	    </trigger>
+	  </events>
+	</EventTrigger>
+        <events>
+          <trigger>
+            <EventListener event="spion5" />
+          </trigger>
+        </events>
+      </EventTrigger>
+    </visibility>
+  </events>
+</BlinkingBillboard>
+
+<SimpleNotification message="Houston: Your friend Captain Hood is dead..."  broadcast="true">
+	<events>
+		<trigger>
+			<EventListener event="friend" />
+		</trigger>
+	</events>
+</SimpleNotification>
+
+<EventTrigger name="friendDelay1" stayactive="true" delay=5.0 >
+  <events>
+    <trigger>
+      <EventListener event="friend" />
+    </trigger>
+  </events>
+</EventTrigger>
+
+<SimpleNotification message="Vane: NOOOOO!!!"  broadcast="true">
+	<events>
+		<trigger>
+			<EventListener event="friendDelay1" />
+		</trigger>
+	</events>
+</SimpleNotification>
+
+<EventTrigger name="friendDelay2" stayactive="true" delay=5.0 >
+  <events>
+    <trigger>
+      <EventListener event="friendDelay1" />
+    </trigger>
+  </events>
+</EventTrigger>
+
+<SimpleNotification message="Houston: He died in a fight like he wished it!"  broadcast="true">
+	<events>
+		<trigger>
+			<EventListener event="friendDelay2" />
+		</trigger>
+	</events>
+</SimpleNotification>
+
+<!-- ----------------------------------------------------- -->
+
+<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" />
+
+
+
+<!-- ASTEROIDS & ASTEROID-FIELDS -->
+	<!-- Asteroids -->
+	<Model 	position="9800, -5000, 5700" 
+		yaw="90" 
+		pitch="-90" 
+		roll="0" 
+		scale="200" 
+		mesh="asteroid_ice.mesh" >
+	  <attached>
+<!--	    <Model mass=10 scale3D="0.5,0.5,0.5" mesh="cube.mesh" position = "0,0,0" yaw=0 pitch=0 roll=0 /> -->
+	  </attached>
+	  <collisionShapes>
+	    <SphereCollisionShape radius=0.5 />
+	  </collisionShapes>
+	</Model>
+
+	<!-- triple large belt around the planet  -->
+	<?lua
+		dofile("includes/asteroidField.lua")
+		asteroidBelt(2000, -250, 9000, 30, 0, 30, 30, 50, 7190, 7800, 250, 1)
+	?>
+
+	<?lua
+		dofile("includes/asteroidField.lua")
+		asteroidBelt(2000, -250, 9000, 30, 0, 30, 30, 50, 10000, 11000, 300, 1)
+	?>
+
+	<?lua
+		dofile("includes/asteroidField.lua")
+		asteroidBelt(2000, -250, 9000, 30, 0, 30, 30, 50, 14000, 15000, 350, 1)
+	?>
+
+	<!-- between guard 2 & mainship -->
+		<!-- Core -->	
+		<?lua
+			dofile("includes/asteroidField.lua")
+			asteroidField(-5000, -10000, 30000, 10, 700, 8000, 80, 0)
+		?>
+	
+		<!-- Peripherie -->
+		<?lua
+			dofile("includes/asteroidField.lua")
+			asteroidField(-5000, -10000, 30000, 10, 50, 10000, 100, 0)
+		?>
+
+		<?lua
+	      		dofile("includes/asteroidField.lua")
+			asteroidBelt(-10000, -12500, 0, 0, 0, 30, 30, 500, 0, 7850, 150, 0)
+	    	?>
+
+	<!-- PLANETS -->
+  	<Planet 	position="2000,-250,9000" 
+			scale=5000 
+			pitch=1 
+			mesh="iceplanet.mesh" 
+			atmosphere="atmosphere1" 
+			rotationaxis="1,1,0" 
+			rotationrate="0.5" 
+			atmospheresize=224.0f 
+			imagesize=1024.0f
+			mass="10000000"
+			angularDamping=0
+			collisiondamage=2
+			enablecollisiondamage=true
+			collisionType="dynamic" />
+
+
+<!-- ----------------Rotating SpaceStation--------------- -->
+	<!-- first guard -->
+	<StaticEntity position="9000,0,0" collisionType=static yaw=112 pitch=67 >
+	  <attached>
+	    <?lua
+	      createSpaceStationPar(0,2,1,2,1,4,1,50)
+	    ?>
+	  </attached>
+	</StaticEntity>
+
+	<!-- second guard -->
+	<StaticEntity position="17000,5000,15000" collisionType=static yaw=12 pitch=75 >
+	  <attached>
+	    <?lua
+	      createSpaceStationPar(0,2,1,2,1,4,1,50)
+	    ?>
+	  </attached>
+	</StaticEntity>
+
+<!-- ------------------------- Mainship ------------------ -->
+    <SpaceShip
+        team      = 1
+        position  = "-12000, -22000, 25000"
+        mass      = 10000000000
+        health    = 100000 initialhealth=100000 maxhealth="100000"
+        name      = "Mainship"
+        radarname = "Mainship" 
+	visible	  = "true" >
+      <controller>
+        <WaypointController team=1 active="true" >
+          <waypoints/>
+          <events>
+	    <activity>
+	      <EventListener event=spawntrigger2 />
+	    </activity>
+          </events>
+        </WaypointController>
+      </controller>
+      <attached>
+        <Model scale=200 mesh="drone.mesh" position = "0,0,0" lookat="40000, 4000, 27000" />
+<!--	<Model mesh="cube.mesh" mass=10 position="-445,110,120" scale3D="45,45,150"  yaw=56 pitch=-4 roll=0 />
+        <Model mesh="cube.mesh" mass=10 position="-295,125,220" scale3D="28,28,28" yaw=56 pitch=-4 roll=0 />
+        <Model mesh="cube.mesh" mass=10 position="-400,350,-200" scale3D="80,280,800" yaw=56 pitch=-4 roll=5 />
+        <Model mesh="cube.mesh" mass=10 position="-300,630,-100" scale3D="250,50,500" yaw=56 pitch=-4 roll=5 />
+        <Model mesh="cube.mesh" mass=10 position="-150,-150,-550" scale3D="80,280,800"  yaw=56 pitch=-4 roll=65 />
+        <Model mesh="cube.mesh" mass=10 position="150,-270,-600" scale3D="250,50,500" yaw=56 pitch=-4 roll=65 />
+        <Model mesh="cube.mesh" mass=10 position="-500,-250,0" scale3D="80,280,800" yaw=56 pitch=-4 roll=-50 />
+        <Model mesh="cube.mesh" mass=10 position="-500,-420,250" scale3D="250,50,500" yaw=56 pitch=-4 roll=-50 /> -->
+      </attached>
+      <collisionShapes>
+	<BoxCollisionShape  position="-445,110,120" halfExtents="45,45,150" yaw=56 pitch=-4 roll=0 />
+        <BoxCollisionShape  position="-295,125,220" halfExtents="28,28,28" yaw=56 pitch=-4 roll=0 />
+        <BoxCollisionShape  position="-400,350,-200" halfExtents="80,280,800" yaw=56 pitch=-4 roll=5 />
+        <BoxCollisionShape  position="-300,630,-100" halfExtents="250,50,500" yaw=56 pitch=-4 roll=5 />
+        <BoxCollisionShape  position="-150,-150,-550" halfExtents="80,280,800" yaw=56 pitch=-4 roll=65 />
+        <BoxCollisionShape  position="150,-270,-600" halfExtents="250,50,500" yaw=56 pitch=-4 roll=65 />
+        <BoxCollisionShape  position="-500,-250,0" halfExtents="80,280,800" yaw=56 pitch=-4 roll=-50 />
+        <BoxCollisionShape  position="-500,-420,250" halfExtents="250,50,500" yaw=56 pitch=-4 roll=-50 />
+      </collisionShapes>
+      <events>
+        <visibility>
+	  <EventListener event="negativeTimerEnd" />
+        </visibility>
+      </events>
+    </SpaceShip>
+
+    <!-- PARTICLE EFFECT -->
+    <ParticleSpawner position="-12000, -22000, 25000" source="Orxonox/RingExp" autostart="false" lifetime=500 loop=0 startdelay=0.5>
+        <events>
+            <spawn>
+                <EventListener event="timerEnd" />
+            </spawn>
+        </events>
+    </ParticleSpawner>
+    <ParticleSpawner position="-12000, -22000, 25000" source="Orxonox/RingExp2" autostart="false" lifetime=500 loop=0 startdelay=0>
+        <events>
+            <spawn>
+                <EventListener event="timerEnd" />
+            </spawn>
+        </events>
+    </ParticleSpawner>
+    <ParticleSpawner position="-12000, -22000, 25000" source="Orxonox/RingExp3" autostart="false" lifetime=500 loop=0 startdelay=0>
+        <events>
+            <spawn>
+                <EventListener event="timerEnd" />
+            </spawn>
+        </events>
+    </ParticleSpawner>
+
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/iiiJohnVane_EscapeTheBastards.oxw
===================================================================
--- code/trunk/data/levels/iiiJohnVane_EscapeTheBastards.oxw	(revision 9939)
+++ code/trunk/data/levels/iiiJohnVane_EscapeTheBastards.oxw	(revision 9939)
@@ -0,0 +1,1418 @@
+<!-- -->
+
+<!--TODO
+
+Everything works fine, there are just some design issues:
+
+	- Better Homeplanet Design
+	- Change Boxdesign at the End (metal_crate.mesh instead of crate.mesh)
+	- Apply Boxcollison
+	- Green Box at the end Triangular
+	- Better Portal Jump
+	- better forcefield
+	- Sun Background (Particle Effects)
+	- Asteroid Belts around Planets (without lags!!!)
+-->
+
+
+<!--
+Basic ------------------------------------------------------------------------------------------------------------------------>
+							<!--Basic Infos-->
+
+<LevelInfo
+ name = "(iii) John Vane: Escape the Bastards"
+ description = "You destroyed their Base, you accomplished the mission. Now get out of there, and get rid of the haunters"
+ tags = "mission"
+ screenshot = "EscapeTheBastards.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/pickupRepresentationTemplates.oxt")
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/spaceshipCollateralDamage.oxt")
+  include("templates/spaceshipTurret.oxt")
+?>
+
+  <NotificationQueueCEGUI
+    name="narrative"
+    targets="simpleNotification"
+    size=3
+    displayTime=4
+    position="0.2, 0, 0.1, 0"
+    fontSize="23"
+    fontColor="0, 0.5, 1, 0.9"
+    alignment="HorzCentred"
+    displaySize="0.6, 0, 0, 0"
+    />
+
+<Level
+  name = "Escape the bastards"
+  description = "You destroyed their Base, you accomplished the mission. Now get out of there, and get rid of the haunters"
+  gametype=Mission
+>
+  <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")
+    ?>
+
+    <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="-1000,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff / -->
+
+<!-- Pickups -->
+
+    <PickupSpawner pickup=dronepickup position="-5000,-1300,-209" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
+
+    <PickupSpawner pickup=hugehealthpickup position="0,-4,-1540" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="boxtrigger" />
+                                </visibility>
+                            </events>
+	</PickupSpawner>
+    <PickupSpawner pickup=mediumspeedpickup position="0,4,-1540" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"  visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="boxtrigger" />
+                                </visibility>
+                            </events>
+	</PickupSpawner>
+
+<!-- Pickups heal the box, so one cant destroy the box -->
+
+<!-- Pickups END -->
+							<!--Basic Infos end-->
+
+<!--Story----------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+
+
+<!--Quests (Fly to the Ally)-->
+    <EventMultiTrigger name=spawntrigger>
+        <events>
+            <trigger>
+
+                <TeamSpawnPoint team=0 position="-8050,0,0" direction="1,0.3,0.2" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage>
+<!-- Spawnpoint aendern zu -8050,0,0 nachher direction="1,0.3,0.2"-->
+<!-- Spawnpoint aendern zu 3000,12000,-5500 nachher direction="0.3,1.2,-5.5" Fuer homeplanet-->
+<!-- Spawnpoint aendern zu -46950,-30000,30000 nachher direction="1,0,0" Fuer inBox-->
+                  <EventTrigger invert=true>
+                    <events>
+                      <trigger>
+                        <EventListener event="missionfinish" />
+                      </trigger>
+                    </events>
+                  </EventTrigger>
+                </TeamSpawnPoint>
+            </trigger>
+        </events>
+    </EventMultiTrigger>
+
+
+    <TeamSpawnPoint team=0 position="0,-2500,0" direction="0,-1,0" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage active =false>
+        <events>
+            <activity>
+                <EventListener event="reachedally" />
+            </activity>
+        </events>
+    </TeamSpawnPoint>
+
+    <TeamSpawnPoint team=0 position="-46950,-30000,30000" direction="1,0,0" spawnclass=SpaceShip pawndesign=spaceshipcollateraldamage active =false>
+        <events>
+            <activity>
+                <EventListener event="cave1" />
+            </activity>
+        </events>
+    </TeamSpawnPoint>
+
+
+
+
+        <QuestEffectBeacon times=1>
+            <effects>
+                <AddQuest questId="Helpisontheway.1" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event=spawntrigger />
+                </execute>
+            </events>
+        </QuestEffectBeacon>
+
+        <QuestEffectBeacon times=1>
+            <effects>
+                <CompleteQuest questId="Helpisontheway.1" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event="missionfinish" />
+                </execute>
+            </events>
+        </QuestEffectBeacon>
+
+
+        <QuestEffectBeacon times=1 >
+            <effects>
+                <CompleteQuest questId="defend.2" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event="Boxdestroyed" />
+                </execute>
+            </events>
+        </QuestEffectBeacon>
+
+        <QuestEffectBeacon times=1 >
+            <effects>
+                <CompleteQuest questId="leave.3" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event="reachedhomeplanet" />
+                </execute>
+            </events>
+        </QuestEffectBeacon>
+
+        <QuestEffectBeacon times=1 >
+            <effects>
+                <CompleteQuest questId="wayhome.4" />
+            </effects>
+            <events>
+                <execute>
+                    <EventListener event="reachedend" />
+                </execute>
+            </events>
+        </QuestEffectBeacon>
+
+			<!-- END OF GAME -->
+    <SimpleNotification message="Well done, you've finished">
+        <events>
+            <trigger>
+                <EventListener event=reachedend />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+    <Script code="Mission endMission true" onLoad="false">
+        <events>
+            <trigger>
+                <EventListener event="reachedend" />
+            </trigger>
+        </events>
+    </Script>
+			<!-- END OF GAME END -->
+
+
+        <DistanceTrigger name="missionfinish" position="-120,0,0" target="Pawn" distance=60 stayActive="true" delay=1>
+    </DistanceTrigger>
+ 	<DistanceTrigger name="reachedally" position="-120,0,0" target="Pawn" distance=60 stayActive="true" delay=0>
+    </DistanceTrigger>
+ 	<DistanceTrigger name="reachedhomeplanet" position="-3000,12000,-6990" target="Pawn" distance=100 stayActive="true" delay=0>
+    </DistanceTrigger>
+ 	<DistanceTrigger name="reachedend" position="-41000,-30000,33800" target="Pawn" distance=60 stayActive="true" delay=2>
+    </DistanceTrigger>
+
+          <EventTrigger name="boxtrigger" activations="1" stayactive="true" delay=0.1>
+            <events>
+              <trigger>
+                <EventListener event="box" />
+              </trigger>
+            </events>
+          </EventTrigger>
+
+
+<!-- Billboard Allyplanet -->
+
+<BlinkingBillboard position="-120,0,0" frequency=0.4 amplitude=3 material="Flares/lensflare" colour="1,1,0.05">
+          <events>
+            <visibility>
+              <EventTrigger invert=true>
+                <events>
+                  <trigger>
+                    <EventListener event="missionfinish" />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</BlinkingBillboard>
+
+<Billboard position="-120,0,0" amplitude=1 material="Flares/lensflare" colour="0,0.8,0.1">
+          <events>
+            <visibility>
+              <EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event="missionfinish" />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</Billboard>
+
+<!-- Billboard Allyplanet END-->
+
+
+<!-- Box with Pickups -->
+    <Pawn team=1 health=30 position="0,0,-1500" direction="0,-1,0" collisionType=dynamic mass=100000 name=box radarname = "Something" >
+        <events>
+          <visibility>
+            <EventListener event="target3" />
+          </visibility>
+        </events>
+        <attached>
+            <Model position="0,0,0" mesh="crate.mesh" scale3D="5,5,5" />
+        </attached>
+        <collisionShapes>
+            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+        </collisionShapes>
+	<controller>
+                      <WaypointController team=1>
+                    </WaypointController>
+        </controller>
+    </Pawn>
+
+<Billboard position="0,0,-1540" amplitude=1 material="Flares/lensflare" colour="0,0.8,0.1">
+          <events>
+            <visibility>
+              <EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event="boxtrigger" />
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</Billboard>
+<!-- Box with Pickups END -->
+
+<!-- Billboard Homeplanet -->
+
+<!-- evt Blinking light before landing on planet, Entfernen nach architektur-->
+<BlinkingBillboard position="-3000,12000,-6990" frequency=0.4 amplitude=3 material="Flares/lensflare" colour="1,1,0.05">
+          <events>
+            <visibility>
+              <EventTrigger>
+                <events>
+                  <trigger>
+                    <EventListener event="boxtrigger"/> <!-- reachedhomeplanet--> 
+                  </trigger>
+                </events>
+              </EventTrigger>
+            </visibility>
+          </events>
+</BlinkingBillboard>
+
+
+<!-- Billboard Homeplanet END-->
+
+
+<!--Quests (Fly to the Ally) END-->
+
+<!--Quests (Fight Enemies)-->
+
+
+ <SpaceShip position="1000,0,0" lookat="0,0,1" name="attacker" radarname="Fighter1" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="missionfinish" />
+                                </visibility>
+                            </events>
+
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=750  team=1 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="1000,0,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="500,500,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,1000,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="-500,500,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="-1000,0,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="-500,-500,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,-1000,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="500,-500,0"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="reachedally" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+
+ <SpaceShip position="0,1000,0" lookat="1,0,0" name="attacker" radarname="Fighter2" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="missionfinish" />
+                                </visibility>
+                            </events>
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=750  team=1 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="0,1000,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,500,500"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,0,1000"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,-500,500"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,-1000,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,-500,-500"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,0,-1000"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,500,-500"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="reachedally" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+
+ <SpaceShip position="0,0,1000" lookat="0,1,0" name="attacker" radarname="Fighter3" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="missionfinish" />
+                                </visibility>
+                            </events>
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=750  team=1 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="1000,0,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="500,0,500"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,0,1000"/>
+                        <Model mesh="cube.mesh" scale=0 position="-500,0,500"/>
+                        <Model mesh="cube.mesh" scale=0 position="-1000,0,0"/>
+                        <Model mesh="cube.mesh" scale=0 position="-500,0,-500"/>
+                        <Model mesh="cube.mesh" scale=0 position="0,0,-1000"/>
+                        <Model mesh="cube.mesh" scale=0 position="500,0,-500"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="reachedally" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+
+<!-- @Triggers: Attakers, Fight one by one  -->
+
+	<EventTrigger name="target3" activations="1" stayactive="true" delay=0.1>
+     	 <events>
+     	   <trigger>
+        	  <EventListener event="attacker" />
+      	  </trigger>
+     	 </events>
+   	<EventTrigger name="target2" activations="1" stayactive="true" delay=0.1>
+      	  <events>
+     	     <trigger>
+    	        <EventListener event="attacker" />
+     	     </trigger>
+  	  </events>
+   	<EventTrigger name="target1" activations="1" stayactive="true" delay=0.1>
+      	  <events>
+     	     <trigger>
+    	        <EventListener event="attacker" />
+     	     </trigger>
+  	  </events>
+      	</EventTrigger>
+    	</EventTrigger>
+    	</EventTrigger>
+
+
+    <SimpleNotification message="Wow, That's an explosion."  broadcast="true">
+        <events>
+            <trigger>
+                <EventListener event="target1" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <SimpleNotification message="Booom, you got him!"  broadcast="true">
+        <events>
+            <trigger>
+                <EventListener event="target2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+    <SimpleNotification message="No Mercy!! .. What's that?"  broadcast="true">
+        <events>
+            <trigger>
+                <EventListener event="target3" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+
+
+<!-- @Triggers: Attakers, Fight one by one END  -->
+
+
+<!--Quests (Fight Enemies) END-->
+
+
+<!-- LocalQuests -->
+    <LocalQuest id="Helpisontheway.1">
+        <QuestDescription title="Help is on the way" description="An allied pilot is cast away on a planet in front of you. Pick him up and leave.
+
+
+		Hint: He will blink with his lamp
+
+		PS: Remind the gravitation field"
+
+ 
+	failmessage="Well, you sucked" completeMessage="Well done, You're a hero" />
+        <complete-effects>
+            <AddQuest questId="defend.2" />
+        </complete-effects>
+    </LocalQuest>
+
+
+    <LocalQuest id="defend.2">
+        <QuestDescription title="Defend the Planet" description="Well your enemies trapped you. Kill'em all."
+
+	failmessage="Well, you sucked" completeMessage="Well done, You're a hero" />
+        <complete-effects>
+            <AddQuest questId="leave.3" />
+        </complete-effects>
+    </LocalQuest>
+
+
+
+    <LocalQuest id="leave.3">
+        <QuestDescription title="Leave the Place" description="You've blown their minds. Let's go home. Aim the Big blue planet to reach your home." failmessage="" completeMessage="" />
+        <complete-effects>
+            <AddQuest questId="wayhome.4" />
+        </complete-effects>
+    </LocalQuest>
+
+    <LocalQuest id="wayhome.4">
+        <QuestDescription title="Let's go home" description="You've reached the portal. You've been teleportet to the passage to your home, but your enemies trapped you again" failmessage="" completeMessage="" />
+        <complete-effects>
+            <AddQuest questId="end.5" />
+        </complete-effects>
+    </LocalQuest>
+
+<!-- LocalQuests END -->
+
+<!-- Message Triggers -->
+    <DistanceTrigger name="StartofMission" position="-8050,0,0" target="Pawn" distance=10 stayActive="true" delay=1.2/>
+    <SimpleNotification message="Houston: John can you hear me?">
+        <events>
+            <trigger>
+                <EventListener event="StartofMission" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="Introduction1" position="-8050,0,0" target="Pawn" distance=30 stayActive="true" delay=6.4/>
+    <SimpleNotification message="John: No. Can i go home now?">
+        <events>
+            <trigger>
+                <EventListener event="Introduction1" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="Introduction2" position="-8050,0,0" target="Pawn" distance=30 stayActive="true" delay=10.8/>
+    <SimpleNotification message="Houston: Not yet, another ally needs your help.">
+        <events>
+            <trigger>
+                <EventListener event="Introduction2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="Introduction3" position="-8050,0,0" target="Pawn" distance=30 stayActive="true" delay=15.2/>
+    <SimpleNotification message="Houston: He had to force land near you.">
+        <events>
+            <trigger>
+                <EventListener event="Introduction3" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+    <DistanceTrigger name="PickedUpAlly" position="-120,0,0" target="Pawn" distance=30 stayActive="true" delay=0.1/>
+    <SimpleNotification message="John: Are you kidding me, thats a kitty.">
+        <events>
+            <trigger>
+                <EventListener event="PickedUpAlly" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="PickedUpAlly1" position="-120,0,0" target="Pawn" distance=30 stayActive="true" delay=4.4/>
+    <SimpleNotification message="Houston: ... but if there is no ally...">
+        <events>
+            <trigger>
+                <EventListener event="PickedUpAlly1" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="PickedUpAlly2" position="-120,0,0" target="Pawn" distance=30 stayActive="true" delay=8.8/>
+    <SimpleNotification message="Houston: F***, they trapped us">
+        <events>
+            <trigger>
+                <EventListener event="PickedUpAlly2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+    <SimpleNotification message="Houston: Pickups! Pick them up :-)"  broadcast="true">
+        <events>
+            <trigger>
+                <EventListener event="boxtrigger" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="Boxdestroyed" position="0,0,-1540" target="SpaceShip" distance=50 stayActive="true" delay=0.1 />
+    <SimpleNotification message="Houston: Now aim the blue planet">
+        <events>
+            <trigger>
+                <EventListener event="Boxdestroyed" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <DistanceTrigger name="Boxdestroyed2" position="0,0,-1540" target="SpaceShip" distance=50 stayActive="true" delay=4.4 />
+    <SimpleNotification message="Houston: Land near the blinking light!">
+        <events>
+            <trigger>
+                <EventListener event="Boxdestroyed2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+    <SimpleNotification message="Houston: You're almost there">
+        <events>
+            <trigger>
+                <EventListener event="reachedhomeplanet" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+<DistanceTrigger name="cave1" position="-46300,-30000,30000" target="SpaceShip" distance=100 stayActive="true" delay=0.1 />
+    <SimpleNotification message="Houston: You reached the cave, you're safe!!">
+        <events>
+            <trigger>
+                <EventListener event="cave1" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+<DistanceTrigger name="cave2" position="-46300,-30000,30000" target="SpaceShip" distance=100 stayActive="true" delay=4.4 />
+    <SimpleNotification message="Houston: ... wait it's a tr#@$%&^#$...">
+        <events>
+            <trigger>
+                <EventListener event="cave2" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+<DistanceTrigger name="cave3" position="-46300,-30000,30000" target="SpaceShip" distance=100 stayActive="true" delay=8.8 />
+    <SimpleNotification message="John: not again ...">
+        <events>
+            <trigger>
+                <EventListener event="cave3" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+    <SimpleNotification message="Sanchez: I waited for you ...">
+        <events>
+            <trigger>
+                <EventListener event="Reachedtheend" />
+            </trigger>
+        </events>
+    </SimpleNotification>
+
+
+
+<!-- Message Triggers END -->
+
+<!--Quests____END-->
+
+
+
+<!--Enviroment-------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+
+							<!--Asteroids Field-->
+
+	<?lua for i=0,750,1 do
+		x=math.random(-8000,-1000)
+		y=math.random(-2345,2345)
+		z=math.random(-2500,2500)
+	scale=math.random(20,70)
+	?>
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=0 mass="<?lua print(scale * 5) ?>" position="<?lua print(x) ?>,<?lua print(y) ?>,<?lua print(z) ?>" rotationaxis="<?lua print(math.random()) ?>,<?lua print(math.random()) ?>,<?lua print(math.random()) ?>" rotationrate="<?lua print(math.random()*15) ?>"       collisiondamage = 0.005
+      enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="<?lua print(scale) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="<?lua print(scale * 3) ?>" />
+    	</collisionShapes>
+	</MovableEntity>
+	<?lua end ?>
+
+							<!--Asteroids Field end -->
+
+
+							<!--Asteroids Random
+
+				"The game lags, when you're flying far away"
+
+
+	<?lua for i=0,300,1 do
+		x=math.random(-12000,4000)
+		y=math.random(-8000,8000)
+		z=math.random(-8000,8000)
+	?>
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=0 mass="<?lua print(scale * 5) ?>" position="<?lua print(x) ?>,<?lua print(y) ?>,<?lua print(z) ?>" rotationaxis="<?lua print(math.random()) ?>,<?lua print(math.random()) ?>,<?lua print(math.random()) ?>" rotationrate="<?lua print(math.random()*15) ?>"      collisiondamage = 0.005
+      enablecollisiondamage = true  >
+    	<attached>
+        	<Model scale="<?lua print(math.random(20,70)) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false/>
+    	</attached>
+    	<collisionShapes>
+            <SphereCollisionShape radius="<?lua print(scale * 3) ?>" />
+        </collisionShapes>
+	</MovableEntity>
+	<?lua end ?>
+-->
+							<!--Asteroids  Random end-->
+
+    							<!--Asteroid Elipse-->
+<!-- LAAAGS :-(
+
+				"The game lags, when you're flying far away"		
+
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(-3000,12000,-10000, 30, 0, 30, 30, 50, 7190, 7800, 250, 1)
+    ?>
+
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(-3000,12000,-10000, 30, 0, 30, 30, 50, 14000, 15000, 350, 1)
+    ?>
+-->
+
+
+    <?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 ?>
+							<!--Asteroid Elipse end-->
+
+							<!--Planet sun-->
+    <Planet position="15000,0,0" scale=1500 pitch=-90 mesh="planets/sol.mesh" atmosphere="atmosphere1" rotationaxis="8,1,0" rotationrate="1" atmospheresize=0 imagesize=1024.0f />
+    <StaticEntity position="2600,0,0" collisionType=static>
+        <collisionShapes>
+            <SphereCollisionShape radius="399" />
+        </collisionShapes>
+    </StaticEntity>
+
+    <Billboard position="15100,0,0" material="Flares/backlightflare" colour="0.7,0.4,0.1" scale=600 />
+
+						<!--Planet END-->
+
+							<!--Planet with Ally-->
+    <Planet
+      position="0,0,0"
+      scale="100"
+      collisionType="dynamic"
+      linearDamping="0.8"
+      angularDamping="0"
+      mass="5000000"
+      pitch="0"
+      mesh="planets/muunilinst.mesh"
+      atmosphere="atmosphere1"
+      rotationaxis="1,0,0"
+      rotationrate="1.0"
+      atmospheresize="80.0f"
+      imagesize="1024.0f"
+    >
+      <attached>
+        <ForceField position="0,0,0" mode="sphere" diameter="1000" velocity="-500" />
+                    <ParticleEmitter position="0,0,0" source="Orxonox/fire3" />
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="100" position="0,0,0" />
+      </collisionShapes>
+    </Planet>
+							<!-- Planet with Ally END-->
+
+
+							<!-- Homeplanet -->
+    <Planet
+      position="-3000,12000,-10000"
+      scale="3000"
+      collisionType="dynamic"
+      linearDamping="0.8"
+      angularDamping="0"
+      mass="5000000000000"
+      pitch="0"
+      mesh="iceplanet.mesh"
+      atmosphere="atmosphere1"
+      rotationaxis="0,0,0"
+      rotationrate="0.0"
+      atmospheresize="80.0f"
+      imagesize="1024.0f"
+    >
+      <attached>
+        <ForceField position="0,0,0" mode="sphere" diameter="10000" velocity="-900" />
+      </attached>
+      <collisionShapes>
+        <SphereCollisionShape radius="3000" position="0,0,0" />
+      </collisionShapes>
+    </Planet>
+  							<!-- Homeplanet  END-->
+
+							<!-- Planet around the cave-->
+
+<Planet position="-43500,-30000,31900" scale=5000 pitch=-90 mesh="planets/moon.mesh" atmosphere="atmosphere1" rotationaxis="8,1,0" rotationrate="1" atmospheresize=0 imagesize=1024.0f />
+
+							<!-- Planet around the cave END-->
+
+							<!-- Anotherplanet -->
+    <Planet
+      position="-20000,6000,7000"
+      scale="3000"
+      collisionType="dynamic"
+      linearDamping="0.8"
+      angularDamping="0"
+      mass="5000000000000"
+      pitch="0"
+      mesh="planets/ganymede.mesh"
+      atmosphere="atmosphere1"
+      rotationaxis="0,0,0"
+      rotationrate="0.0"
+      atmospheresize="80.0f"
+      imagesize="1024.0f"
+    >
+      <collisionShapes>
+        <SphereCollisionShape radius="3000" position="0,0,0" />
+      </collisionShapes>
+    </Planet>
+<!-- LAAAGS :-(
+
+				"The game lags, when you're flying far away"
+
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(-20000,6000,7000, 30, 0, 30, 30, 50, 7190, 7800, 250, 1)
+    ?>
+-->
+  							<!-- Anotherplanet  END-->
+
+  							<!-- Homeplanet Architecture-->
+<!-- -3000,12000,-6990  = Billboard position-->
+
+     <!-- 	<Model  position="-3070,12070,-6990" yaw="90" pitch="-90" roll="0" scale="70" mesh="asteroid_ice.mesh" >
+      <collisionShapes>
+        <SphereCollisionShape radius="70" position="0,0,0" />
+      </collisionShapes>
+	</Model>
+-->
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=0 mass="500"  pitch="90" roll="86" yaw="12" position="-2900,12080,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="70" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="70" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500"   pitch="30" roll="11" yaw="51" position="-3200,11950,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="90" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="90" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500"  pitch="0" roll="12" yaw="81"  position="-2800,12150,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="90" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="90" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500"  pitch="0" roll="0" yaw="0" position="-3300,11800,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="155" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="155" />
+    	</collisionShapes>
+	</MovableEntity>
+
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500"  pitch="0" roll="0" yaw="12" position="-3230,12300,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="150" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="150" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500" pitch="13" roll="23"yaw="120" position="-3000,12000,-6820" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="100" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="100" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500" pitch="2" roll="12" yaw="43" position="-3250,12100,-6850" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="70" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="70" />
+    	</collisionShapes>
+	</MovableEntity>
+
+	<MovableEntity collisionType=kinematic linearDamping=0.8 angularDamping=5 mass="500" pitch="0" roll="0" yaw="0"  position="-3230,11800,-6990" rotationaxis="0,0,0" rotationrate="0"       collisiondamage = 0.01  enablecollisiondamage = true >
+    	<attached>
+        	<Model scale="85" mesh="asteroid_ice.mesh"  shadow=false/>
+   	 </attached>
+   	 <collisionShapes>
+      	 	<SphereCollisionShape radius="85" />
+    	</collisionShapes>
+	</MovableEntity>
+
+ 							<!-- Homeplanet Architecture END-->
+
+
+							<!-- Portal-->
+    <Template name=PortalDefault>
+        <PortalEndPoint>
+            <attached>
+                <Model mesh="Spacegate.mesh" yaw="90"/>
+            </attached>
+        </PortalEndPoint>
+    </Template>
+
+    <PortalEndPoint position="-3000,12000,-6990" id="1" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0"/>
+    <PortalEndPoint position="-47000,-30000,30000" id="2" distance="40" target="MobileEntity" design="PortalDefault" reenterDelay="0" pitch = "180"/>
+    <PortalLink fromID="1" toID="2" />
+
+
+							<!-- Portal END-->
+
+
+	<!-- The Cave-->
+<!-- verhaeltniss Cube.mesh <-> Crate.mesh 1:5 -->
+
+					<!-- Enemies-->
+<Turret position="-43700,-30000,30000" pitch="0" yaw="90" roll="90">
+    <templates>
+        <Template link=spaceshipturret />
+    </templates>
+    <controller>
+        <WaypointPatrolController alertnessradius=700 team=3>
+        </WaypointPatrolController>
+     </controller>
+</Turret>
+
+<Turret position="-43700,-30000,33600" pitch="0" yaw="0" roll="0">
+    <templates>
+        <Template link=spaceshipturret />
+    </templates>
+    <controller>
+        <WaypointPatrolController alertnessradius=3000 team=3>
+        </WaypointPatrolController>
+     </controller>
+</Turret>
+
+<Turret position="-43720,-30000,31000" pitch="0" yaw="0" roll="0">
+    <templates>
+        <Template link=spaceshipturret />
+    </templates>
+    <controller>
+        <WaypointPatrolController alertnessradius=3000 team=3>
+        </WaypointPatrolController>
+     </controller>
+</Turret>
+
+<Turret position="-43700,-29980,32100" pitch="0" yaw="0" roll="0">
+    <templates>
+        <Template link=spaceshipturret />
+    </templates>
+    <controller>
+        <WaypointPatrolController alertnessradius=3000 team=3>
+        </WaypointPatrolController>
+     </controller>
+</Turret>
+
+
+ <DistanceTrigger name="Reachedtheend" position="-43700,-29980,33000" target="SpaceShip" distance=300 stayActive="true" delay=0 />
+
+ <SpaceShip position="-42000,-30000,33800" lookat="-1,0,0" name="attacker" radarname="Enemy1" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="Reachedtheend" />
+                                </visibility>
+                            </events>
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=1500  team=3 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="-41200,-30000,33800"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="Reachedtheend" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+ <SpaceShip position="-42200,-30000,33800" lookat="-1,0,0" name="attacker" radarname="Enemy2" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="Reachedtheend" />
+                                </visibility>
+                            </events>
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=1500  team=3 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="-41600,-30000,33800"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="Reachedtheend" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+ <SpaceShip position="-42400,-30000,33800" lookat="-1,0,0" name="attacker" radarname="Sanchez" visible="true">
+                            <events>
+                                <visibility>
+                                    <EventListener event="Reachedtheend" />
+                                </visibility>
+                            </events>
+                    <templates>
+                      <Template link=spaceshippirate />
+                    </templates>
+                    <controller>
+                      <WaypointPatrolController alertnessradius=1500  team=3 active=false>
+                         <waypoints>
+                        <Model mesh="cube.mesh" scale=0 position="-41400,-30000,33800"/>
+                       </waypoints>
+                       <events>
+                         <activity>
+                              <EventListener event="Reachedtheend" />
+                         </activity>
+                       </events>
+                    </WaypointPatrolController>
+                  </controller>
+                </SpaceShip>
+		
+					<!-- Enemies END-->
+
+
+					<!-- 15 Boxes forward-->
+ <?lua
+    max = 15
+    for i = 0, max, 1
+    do
+    y=(i*200)-47200
+
+    ?>
+
+    <?lua
+    for j = 0, 2, 1
+    do
+    z =30200-(j*200)
+    ?>    
+    
+    <?lua
+    for k = 0, 1, 1
+    do
+    x =-30200+(k*400)
+    ?>
+
+
+
+
+  <StaticEntity position="<?lua print(y) ?>,<?lua print(x) ?>,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01 >
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20"  />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+
+    <?lua end ?>
+    <?lua end ?>
+    <?lua end ?>
+
+ <?lua
+    max = 15
+    for i = 0, max, 1
+    do
+    y=(i*200)-47200
+
+    ?>
+    <?lua
+    for j = 0, 1, 1
+    do
+    z =30200-(j*400)
+    ?>    
+  <StaticEntity position="<?lua print(y) ?>,-30000,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+    <?lua end ?>
+    <?lua end ?>
+
+  <StaticEntity position="-47200,-30000,30000" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+					<!-- 15 Boxes forward END -->
+					<!-- 18 Boxes right-->
+
+ <?lua
+    max = 18
+    for i = 0, max, 1
+    do
+    z=29800+(i*200)
+
+    ?>
+
+    <?lua
+    for j = 0, 2, 1
+    do
+    y = (j*200)-44000
+    ?>    
+    
+    <?lua
+    for k = 0, 1, 1
+    do
+    x =-30200+(k*400)
+    ?>
+
+
+
+
+  <StaticEntity position="<?lua print(y) ?>,<?lua print(x) ?>,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+
+    <?lua end ?>
+    <?lua end ?>
+    <?lua end ?>
+
+ <?lua
+    max = 16
+    for i = 0, max, 1
+    do
+    z = 30200+(i*200)
+
+    ?>
+    <?lua
+    for j = 0, 1, 1
+    do
+     y = (j*400)-44000
+    ?>    
+  <StaticEntity position="<?lua print(y) ?>,-30000,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+    <?lua end ?>
+    <?lua end ?>
+
+  <StaticEntity position="-43600,-30000,30000" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+ <?lua
+    for i = 0, 2, 1
+    do
+    y = -44000+(i*200)
+
+    ?>
+  <StaticEntity position="<?lua print(y) ?>,-30000,29800" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+    <?lua end ?>
+
+					<!-- 18 Boxes right END-->
+					<!-- 17 Boxes forward-->
+ <?lua
+    max = 17
+    for i = 0, max, 1
+    do
+    y=(i*200)-44000
+
+    ?>
+
+    <?lua
+    for j = 0, 2, 1
+    do
+    z =34000 - (j*200)
+    ?>    
+    
+    <?lua
+    for k = 0, 1, 1
+    do
+    x =-30200+(k*400)
+    ?>
+
+
+
+
+  <StaticEntity position="<?lua print(y) ?>,<?lua print(x) ?>,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+
+    <?lua end ?>
+    <?lua end ?>
+    <?lua end ?>
+
+ <?lua
+    max = 15
+    for i = 0, max, 1
+    do
+    y=(i*200)-43600
+
+    ?>
+
+    <?lua
+    for j = 0, 0, 1
+    do
+    z =34000 - (i*5.5)
+    ?>
+
+  <StaticEntity position="<?lua print(y) ?>,-30000,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+    <?lua end ?>
+    <?lua end ?>
+ <?lua
+    max = 15
+    for i = 0, max, 1
+    do
+    y=(i*200)-43600
+
+    ?>
+
+    <?lua
+    for j = 0, 0, 1
+    do
+    z =33600 + (i*5.5)
+    ?>
+
+  <StaticEntity position="<?lua print(y) ?>,-30000,<?lua print(z) ?>" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+    <?lua end ?>
+    <?lua end ?>
+
+
+ <?lua
+    for i = 0, 1, 1
+    do
+    y = -44000+(i*200)
+
+    ?>
+  <StaticEntity position="<?lua print(y) ?>,-30000,34000" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+    <?lua end ?>
+
+  <StaticEntity position="-44000,-30000,33800" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+
+  <StaticEntity position="-44000,-30000,33600" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="crate.mesh" scale3D="20,20,20" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+
+      </collisionShapes>
+</StaticEntity>
+					<!-- 17 Boxes forward END-->
+    <Billboard position="-41000,-30000,33800" material="Flares/backlightflare" colour="0,1.4,2.1" scale=15 />
+
+  <StaticEntity position="-40400,-30000,33800" direction="0,0,0" collisionType=static mass=100000 friction=0.01>
+     <attached>
+        <Model position="0,0,0" mesh="cube_green.mesh" scale3D="100,100,100" />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape position="0,0,0" halfExtents="100,100,100" />
+      </collisionShapes>
+</StaticEntity>
+
+<!-- FORCEFIELD -->
+<ForceField position="-47000,-30000,30000" direction="1,0,0" diameter=2000 velocity=2000 length=2000 />
+
+
+	<!-- The Cave END-->
+
+	<!-- Planet around the cave-->
+
+  </Scene>
+</Level>
+
+
+
Index: code/trunk/data/levels/includes/HeavyCruiserParts.lua
===================================================================
--- code/trunk/data/levels/includes/HeavyCruiserParts.lua	(revision 9939)
+++ code/trunk/data/levels/includes/HeavyCruiserParts.lua	(revision 9939)
@@ -0,0 +1,168 @@
+--[[ place all parts
+places all sub-parts of HeavyCruiser as Pawns
+  posX, posY, posZ - position in space
+  dirX, dirY, dirZ - direction
+  team - team
+--]]
+
+function placeAllSubParts(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeSidearmL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeSidearmLfront(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeSidearmR(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeSidearmRfront(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeFrontL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placeFrontR(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placePartL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    placePartR(team, posX, posY, posZ, dirX, dirY, dirZ)
+end
+
+
+--[[ place individual parts
+places sub-parts of HeavyCruiser as Pawns
+  posX, posY, posZ - position in space
+  dirX, dirY, dirZ - direction arguments
+  team - team
+--]]
+
+function placeSidearmL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=300 initialhealth=300 maxhealth=300 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_sidearmL radarname = \"HIDDEN\" >")
+    print("<attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_sidearmL.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"-11,18,102\" halfExtents=\"10,10,10\" info=\"HOOK, sidearmL\"/> <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\"/> <BoxCollisionShape position=\"-127,26,115\" roll=\"15\" halfExtents=\"2,28,105\" info=\"sidearmL, frontInner\"/> <BoxCollisionShape position=\"-161,16,115\" roll=\"15\" halfExtents=\"2,28,105\" info=\"sidearmL, frontOuter\"/> <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=\"-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\"/> <BoxCollisionShape position=\"-153,59,96\" roll=\"15\" halfExtents=\"6,7,60\" info=\"sidearmL, upper beam\"/> <BoxCollisionShape position=\"-143,57,119\" roll=\"15\" halfExtents=\"3,4,85\" info=\"sidearmL, upper inner beam\"/> <BoxCollisionShape position=\"-142,53,212\" pitch=\"21\" yaw=\"5\" roll=\"15\" halfExtents=\"3,4,10\" info=\"sidearmL, upper inner beam\"/> <BoxCollisionShape position=\"-160,52,119\" roll=\"15\" halfExtents=\"3,4,85\" info=\"sidearmL, upper outer beam\"/> <BoxCollisionShape position=\"-159,48,212\" pitch=\"21\" yaw=\"5\" roll=\"15\" halfExtents=\"3,4,10\" info=\"sidearmL, upper outer beam\"/> <BoxCollisionShape position=\"-152,54,34\" pitch=\"-46\" yaw=\"-14\" roll=\"15\" halfExtents=\"6,7,10\" info=\"sidearmL, upper beam front\"/> <BoxCollisionShape position=\"-152,54,162\" pitch=\"30\" yaw=\"9\" roll=\"15\" halfExtents=\"6,7,12\" info=\"sidearmL, upper beam back\"/> <BoxCollisionShape position=\"-168,21,119\" roll=\"15\" halfExtents=\"3,5,109\" info=\"sidearmL, outer beam\"/> <BoxCollisionShape position=\"-134,-10,169\" roll=\"15\" halfExtents=\"6,4,55\" info=\"sidearmL, lower beam front\"/> <BoxCollisionShape position=\"-131,-20,217\" pitch=\"-20\" roll=\"15\" yaw=\"-5\" halfExtents=\"6,12,3\" info=\"sidearmL, lower beam middle\"/> <BoxCollisionShape position=\"-130,-29,233\" roll=\"15\" halfExtents=\"6,3,15\" info=\"sidearmL, lower beam back\"/> <BoxCollisionShape position=\"-145,21,71\" halfExtents=\"10,10,1\" info=\"sidearmL, HOOKBOX\"/> <BoxCollisionShape position=\"-145,21,29\" halfExtents=\"10,10,1\" info=\"sidearmL, HOOKBOX\"/> <BoxCollisionShape position=\"-145,32,50\" halfExtents=\"10,1,20\" info=\"sidearmL, HOOKBOX\"/> <BoxCollisionShape position=\"-145,10,50\" halfExtents=\"10,1,20\" info=\"sidearmL, HOOKBOX\"/> <BoxCollisionShape position=\"-156,21,50\" halfExtents=\"1,10,20\" info=\"sidearmL, HOOKBOX\"/> <BoxCollisionShape position=\"-134,21,50\" halfExtents=\"1,10,20\" info=\"sidearmL, HOOKBOX\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placeSidearmLfront(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_sidearmLfront radarname = \"HIDDEN\" >")
+    print(" <attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_sidearmLfront.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"-145,21,50\" halfExtents=\"10,10,20\" info=\"sidearmLfront, HOOK\"/> <BoxCollisionShape position=\"-141,15,-53\" roll=\"15\" halfExtents=\"27,44,62\" info=\"sidearmLfront\"/> <BoxCollisionShape position=\"-153,59,-30\" roll=\"15\" halfExtents=\"4,2,38\" info=\"sidearmLfront, top\"/> <BoxCollisionShape position=\"-153,61,-41\" roll=\"15\" halfExtents=\"4,4,11\" info=\"sidearmLfront, top\"/> <BoxCollisionShape position=\"-153,60,-65\" roll=\"15\" halfExtents=\"4,3,4\" info=\"sidearmLfront, top\"/> <BoxCollisionShape position=\"-153,59,-41\" roll=\"15\" halfExtents=\"8,2,11\" info=\"sidearmLfront, top\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placeSidearmR(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=300 initialhealth=300 maxhealth=300 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_sidearmR radarname = \"HIDDEN\" >")
+    print("<attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_sidearmR.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"11,18,102\" halfExtents=\"10,10,10\" info=\"HOOK, sidearmR\"/> <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\"/> <BoxCollisionShape position=\"127,26,115\" roll=\"-15\" halfExtents=\"2,28,105\" info=\"sidearmR, frontInner\"/> <BoxCollisionShape position=\"161,16,115\" roll=\"-15\" halfExtents=\"2,28,105\" info=\"sidearmR, frontOuter\"/> <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=\"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\"/> <BoxCollisionShape position=\"153,59,96\" roll=\"-15\" halfExtents=\"6,7,60\" info=\"sidearmR, upper beam\"/> <BoxCollisionShape position=\"143,57,119\" roll=\"-15\" halfExtents=\"3,4,85\" info=\"sidearmR, upper inner beam\"/> <BoxCollisionShape position=\"142,53,212\" pitch=\"21\" yaw=\"-5\" roll=\"-15\" halfExtents=\"3,4,10\" info=\"sidearmR, upper inner beam\"/> <BoxCollisionShape position=\"160,52,119\" roll=\"-15\" halfExtents=\"3,4,85\" info=\"sidearmR, upper outer beam\"/> <BoxCollisionShape position=\"159,48,212\" pitch=\"21\" yaw=\"-5\" roll=\"-15\" halfExtents=\"3,4,10\" info=\"sidearmR, upper outer beam\"/> <BoxCollisionShape position=\"152,54,34\" pitch=\"-46\" yaw=\"14\" roll=\"-15\" halfExtents=\"6,7,10\" info=\"sidearmR, upper beam front\"/> <BoxCollisionShape position=\"152,54,162\" pitch=\"30\" yaw=\"-9\" roll=\"-15\" halfExtents=\"6,7,12\" info=\"sidearmR, upper beam back\"/> <BoxCollisionShape position=\"168,21,119\" roll=\"-15\" halfExtents=\"3,5,109\" info=\"sidearmR, outer beam\"/> <BoxCollisionShape position=\"134,-10,169\" roll=\"-15\" halfExtents=\"6,4,55\" info=\"sidearmR, lower beam front\"/> <BoxCollisionShape position=\"131,-20,217\" pitch=\"-20\" roll=\"-15\" yaw=\"5\" halfExtents=\"6,12,3\" info=\"sidearmR, lower beam middle\"/> <BoxCollisionShape position=\"130,-29,233\" roll=\"-15\" halfExtents=\"6,3,15\" info=\"sidearmR, lower beam back\"/> <BoxCollisionShape position=\"145,21,71\" halfExtents=\"10,10,1\" info=\"sidearmR, HOOKBOX\"/> <BoxCollisionShape position=\"145,21,29\" halfExtents=\"10,10,1\" info=\"sidearmR, HOOKBOX\"/> <BoxCollisionShape position=\"145,32,50\" halfExtents=\"10,1,20\" info=\"sidearmR, HOOKBOX\"/> <BoxCollisionShape position=\"145,10,50\" halfExtents=\"10,1,20\" info=\"sidearmR, HOOKBOX\"/> <BoxCollisionShape position=\"156,21,50\" halfExtents=\"1,10,20\" info=\"sidearmR, HOOKBOX\"/> <BoxCollisionShape position=\"134,21,50\" halfExtents=\"1,10,20\" info=\"sidearmR, HOOKBOX\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placeSidearmRfront(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_sidearmRfront radarname = \"HIDDEN\" >")
+    print("<attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_sidearmRfront.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"145,21,50\" halfExtents=\"10,10,20\" info=\"sidearmRfront, HOOK\"/> <BoxCollisionShape position=\"141,15,-53\" roll=\"-15\" halfExtents=\"27,44,62\" info=\"sidearmRfront\"/> <BoxCollisionShape position=\"153,59,-30\" roll=\"-15\" halfExtents=\"4,2,38\" info=\"sidearmRfront, top\"/> <BoxCollisionShape position=\"153,61,-41\" roll=\"-15\" halfExtents=\"4,4,11\" info=\"sidearmRfront, top\"/> <BoxCollisionShape position=\"153,60,-65\" roll=\"-15\" halfExtents=\"4,3,4\" info=\"sidearmRfront, top\"/> <BoxCollisionShape position=\"153,59,-41\" roll=\"-15\" halfExtents=\"8,2,11\" info=\"sidearmRfront, top\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placeFrontL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_frontL radarname = \"HIDDEN\" >")
+    print(" <attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_frontL.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"-11,18,58\" halfExtents=\"10,10,10\" info=\"HOOK, frontL\"/> <BoxCollisionShape position=\"-80,33,-320\" halfExtents=\"7,11,54\" info=\"frontL\"/> <BoxCollisionShape position=\"-79,31,-399\" halfExtents=\"3,6,26\" info=\"frontL\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placeFrontR(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_frontR radarname = \"HIDDEN\" >")
+    print(" <attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_frontR.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"11,18,58\" halfExtents=\"10,10,10\" info=\"HOOK, frontR\"/> <BoxCollisionShape position=\"80,33,-320\" halfExtents=\"7,11,54\" info=\"frontR\"/> <BoxCollisionShape position=\"79,31,-399\" halfExtents=\"3,6,26\" info=\"frontR\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placePartL(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_partL radarname = \"HIDDEN\" >")
+    print("<attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_partL.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"-11,18,80\" halfExtents=\"10,10,10\" info=\"HOOK, partL\"/> <BoxCollisionShape position=\"-94,33,-179\" halfExtents=\"11,13,45\" info=\"partL\"/> <BoxCollisionShape position=\"-96,33,-230\" halfExtents=\"13,17,22\" info=\"partL\"/> </collisionShapes>")
+    print("</Pawn>")
+end
+
+
+function placePartR(team, posX, posY, posZ, dirX, dirY, dirZ)
+    print("<Pawn health=100 initialhealth=100 maxhealth=100 ")
+        print("position = \"")
+            print(posX) print(",")
+            print(posY) print(",")
+            print(posZ) print("\" ")
+        print("direction = \"")
+            print(dirX) print(",")
+            print(dirY) print(",")
+            print(dirZ) print("\" ")
+        print("team = ")
+            print(team) print(" ")
+    print("collisionType=dynamic mass=100 name=HeavyCruiser_partR radarname = \"HIDDEN\" >")
+    print(" <attached> <Model position=\"0,0,0\" direction=\"-1,0,0\" mesh=\"HeavyCruiser_partR.mesh\" scale=\"40\" /> </attached> <collisionShapes> <BoxCollisionShape position=\"11,18,80\" halfExtents=\"10,10,10\" info=\"HOOK, partR\"/> <BoxCollisionShape position=\"94,33,-179\" halfExtents=\"11,13,45\" info=\"partR\"/> <BoxCollisionShape position=\"96,33,-230\" halfExtents=\"13,17,22\" info=\"partR\"/> </collisionShapes>")
+    print("</Pawn>")
+end
Index: code/trunk/data/levels/includes/invaderWeapon.oxi
===================================================================
--- code/trunk/data/levels/includes/invaderWeapon.oxi	(revision 9939)
+++ code/trunk/data/levels/includes/invaderWeapon.oxi	(revision 9939)
@@ -0,0 +1,27 @@
+    <weaponslots>
+      <WeaponSlot position="-9.2,2,-13" />
+      <WeaponSlot position=" 9.2,2,-13" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+    </weaponsets>
+    <weapons>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+        </links>
+        <Weapon>
+          <InvaderWeapon mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="laserbeam.mesh" />
+        </Weapon>
+        <Weapon>
+          <InvaderWeapon mode=0 munitionpershot=0 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="laserbeam.mesh" />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+      </WeaponPack>
+    </weapons>
Index: code/trunk/data/levels/includes/invaderWeaponEnemy.oxi
===================================================================
--- code/trunk/data/levels/includes/invaderWeaponEnemy.oxi	(revision 9939)
+++ code/trunk/data/levels/includes/invaderWeaponEnemy.oxi	(revision 9939)
@@ -0,0 +1,27 @@
+    <weaponslots>
+      <WeaponSlot position="-9.2,2,-13" />
+      <WeaponSlot position=" 9.2,2,-13" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+    </weaponsets>
+    <weapons>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+        </links>
+        <Weapon>
+          <InvaderWeaponEnemy mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="laserbeam.mesh" />
+        </Weapon>
+        <Weapon>
+          <InvaderWeaponEnemy mode=0 munitionpershot=0 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="laserbeam.mesh" />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+      </WeaponPack>
+    </weapons>
Index: code/trunk/data/levels/includes/weaponSettingsHeavyCruiser.oxi
===================================================================
--- code/trunk/data/levels/includes/weaponSettingsHeavyCruiser.oxi	(revision 9939)
+++ code/trunk/data/levels/includes/weaponSettingsHeavyCruiser.oxi	(revision 9939)
@@ -0,0 +1,53 @@
+    <weaponslots>
+      <WeaponSlot position="79,30,-420" />
+      <WeaponSlot position="-79,30,-420" />  
+      <WeaponSlot position="-60,30,-370" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+      <WeaponSet firemode=2 />
+      <WeaponSet firemode=3 />
+    </weaponsets>
+    <weapons>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+          <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
+          <DefaultWeaponmodeLink firemode=3 weaponmode=3 />
+        </links>
+        <Weapon>
+          <attached>
+            <Model mesh="LightningGun.mesh" pitch="100" roll="90" yaw="90" position="0,-1.3,0" />
+            <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,0" />
+            <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,0.3" scale=0.6 />
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
+        </Weapon>
+        <Weapon>
+          <attached>
+            <Model mesh="LightningGun.mesh" pitch="100" roll="90" yaw="90" position="0,-1.3,-10" />
+            <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,-10" />
+            <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-76" yaw="-90" position="-1.5,1,-10.3" scale=0.6 />
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
+        </Weapon>
+        <Weapon>
+          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
+          <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+        <!--Weapon>
+          <EnergyDrink mode=0 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" />
+        </Weapon-->
+      </WeaponPack>
+    </weapons>
Index: code/trunk/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi
===================================================================
--- code/trunk/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi	(revision 9939)
+++ code/trunk/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi	(revision 9939)
@@ -0,0 +1,47 @@
+    <weaponslots>
+      <WeaponSlot position="79,30,-450" /> <!-- z value should be -420, increased to avoid destroying front parts-->
+      <WeaponSlot position="-79,30,-450" />  
+      <WeaponSlot position="-60,30,-370" />
+    </weaponslots>
+    <weaponsets>
+      <WeaponSet firemode=0 />
+      <WeaponSet firemode=1 />
+      <WeaponSet firemode=2 />
+      <WeaponSet firemode=3 />
+    </weaponsets>
+    <weapons>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
+          <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+          <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
+          <DefaultWeaponmodeLink firemode=3 weaponmode=3 />
+        </links>
+        <Weapon>
+          <attached>
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
+        </Weapon>
+        <Weapon>
+          <attached>
+          </attached>
+          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
+        </Weapon>
+        <Weapon>
+          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
+          <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
+        </Weapon>
+      </WeaponPack>
+      <WeaponPack>
+        <links>
+          <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
+        </links>
+        <!--Weapon>
+          <EnergyDrink mode=0 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" />
+        </Weapon-->
+      </WeaponPack>
+    </weapons>
Index: code/trunk/data/levels/lastManStanding.oxw
===================================================================
--- code/trunk/data/levels/lastManStanding.oxw	(revision 9938)
+++ code/trunk/data/levels/lastManStanding.oxw	(revision 9939)
@@ -32,4 +32,6 @@
       include("includes/pickups.oxi")
     ?>
+    
+    <WorldAmbientSound source="Nebula_metal.ogg" looping="true" playOnLoad="true" />
 
 <!----- Spawnpoints
Index: code/trunk/data/levels/lastTeamStanding.oxw
===================================================================
--- code/trunk/data/levels/lastTeamStanding.oxw	(revision 9938)
+++ code/trunk/data/levels/lastTeamStanding.oxw	(revision 9939)
@@ -33,4 +33,6 @@
       include("includes/pickups.oxi")
     ?>
+    
+    <WorldAmbientSound source="Nebula_metal.ogg" looping="true" playOnLoad="true" />
 
 <Bot />
Index: code/trunk/data/levels/lastTeamStandingII.oxw
===================================================================
--- code/trunk/data/levels/lastTeamStandingII.oxw	(revision 9938)
+++ code/trunk/data/levels/lastTeamStandingII.oxw	(revision 9939)
@@ -27,4 +27,6 @@
     skybox       = "Orxonox/skyBoxBasic"
   >
+  <WorldAmbientSound source="Nebula_metal.ogg" looping="true" playOnLoad="true" />
+  
 <!-- TODO:
 1. make collisionshapes bulletproof: -> attach movable entity with dynamic collisionshape within a static collisionshape 
Index: code/trunk/data/levels/maxim.oxw
===================================================================
--- code/trunk/data/levels/maxim.oxw	(revision 9938)
+++ code/trunk/data/levels/maxim.oxw	(revision 9939)
@@ -1,2 +1,4 @@
+<!-- -->
+
 <LevelInfo
  name = "Maxim's Test"
@@ -25,4 +27,6 @@
   </templates>
   <?lua include("includes/notifications.oxi") ?>
+  
+  <WorldAmbientSound source="Nebula_metal.ogg" looping="true" playOnLoad="true" />
 
   <NotificationQueueCEGUI
Index: code/trunk/data/levels/missionOne.oxw
===================================================================
--- code/trunk/data/levels/missionOne.oxw	(revision 9938)
+++ code/trunk/data/levels/missionOne.oxw	(revision 9939)
@@ -1,2 +1,3 @@
+<!---->
 <LevelInfo
  name = "Mission One"
Index: code/trunk/data/levels/pickups.oxw
===================================================================
--- code/trunk/data/levels/pickups.oxw	(revision 9938)
+++ code/trunk/data/levels/pickups.oxw	(revision 9939)
@@ -1,2 +1,3 @@
+<!-- -->
 <LevelInfo
  name = "Pickups showcase"
Index: code/trunk/data/levels/pirateAttack.oxw
===================================================================
--- code/trunk/data/levels/pirateAttack.oxw	(revision 9938)
+++ code/trunk/data/levels/pirateAttack.oxw	(revision 9939)
@@ -25,4 +25,6 @@
     dofile("includes/CuboidSpaceStation.lua")
 ?>
+
+<WorldAmbientSound source="Mars.ogg" looping="true" playOnLoad="true" />
     
 <Level
Index: code/trunk/data/levels/pong.oxw
===================================================================
--- code/trunk/data/levels/pong.oxw	(revision 9938)
+++ code/trunk/data/levels/pong.oxw	(revision 9939)
@@ -34,5 +34,8 @@
 
 <Template name=pongball>
-  <PongBall>
+  <PongBall 
+   defScoreSound = "sounds/PlayerWinScore_cut.ogg"
+   defBatSound = "sounds/Button.ogg"
+   defBoundarySound = "sounds/Button.ogg">
     <attached>
       <Model mesh="sphere.mesh" scale=2 />
Index: code/trunk/data/levels/portals.oxw
===================================================================
--- code/trunk/data/levels/portals.oxw	(revision 9938)
+++ code/trunk/data/levels/portals.oxw	(revision 9939)
@@ -1,3 +1,3 @@
- 
+<!-- -->
 <LevelInfo
  name = "Portals"
Index: code/trunk/data/levels/presentation.oxw
===================================================================
--- code/trunk/data/levels/presentation.oxw	(revision 9938)
+++ code/trunk/data/levels/presentation.oxw	(revision 9939)
@@ -1,2 +1,4 @@
+<!-- -->
+
 <LevelInfo
  name = "Presentation"
Index: code/trunk/data/levels/presentationFS11.oxw
===================================================================
--- code/trunk/data/levels/presentationFS11.oxw	(revision 9938)
+++ code/trunk/data/levels/presentationFS11.oxw	(revision 9939)
@@ -1,2 +1,4 @@
+<!---->
+
 <LevelInfo
  name = "Presentation FS11"
Index: code/trunk/data/levels/presentationHS13.oxw
===================================================================
--- code/trunk/data/levels/presentationHS13.oxw	(revision 9939)
+++ code/trunk/data/levels/presentationHS13.oxw	(revision 9939)
@@ -0,0 +1,258 @@
+<!--  -->
+<LevelInfo
+ name = "Presentation HS 13"
+ description = "Entering a Space Station."
+ tags = "presentation"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+  include("templates/pickupRepresentationTemplates.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+  include("templates/bigship.oxt")
+  include("templates/spaceshipTurret.oxt")
+  include("templates/spaceshipCollateralDamage.oxt")
+  include("templates/FPS.oxt")
+  include("templates/HeavyCruiser.oxt")
+?>
+
+<Level
+  gametype = Deathmatch
+>
+  <templates>
+    <Template link=lodtemplate_default />
+  </templates>
+
+  <Scene
+    ambientlight = "0.5, 0.5, 0.5"
+    skybox       = "Orxonox/skyBoxMoreNebula"
+    negativeWorldRange = "-100000, -100000, -100000"
+    positiveWorldRange = " 100000,  100000,  100000"
+    gravity      = "0,0,0"
+    hasPhysics   = true
+  >
+
+    <?lua
+      include("includes/pickups.oxi")
+    ?>
+
+    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0,1.0,1.0,0.5" specular="1.0, 0.9, 0.9, 1.0"/>
+    <SpawnPoint team=0 position="4320,1610,-741" lookat="2800,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+
+    <StaticEntity position  = "2800,0,0" mass=10000 collisionType=static >
+      <attached>
+        <Model mesh="HydroHarvester.mesh" mass=10 position="0,0,0" scale=50 />
+      </attached>
+      <collisionShapes>
+        <BoxCollisionShape  position="-560,0,0" halfExtents="115,100,245" /><!-- Three lower boxes -->
+        <BoxCollisionShape  position="290,0,-480" halfExtents="115,100,245" yaw=-120 />
+        <BoxCollisionShape  position="290,0,480" halfExtents="115,100,245" yaw=-240 />
+        <BoxCollisionShape  position="-280,0,0" halfExtents="163,50,50" /><!-- Three lower connections -->
+        <BoxCollisionShape  position="140,0,-240" halfExtents="163,50,50" yaw=-120 />
+        <BoxCollisionShape  position="140,0,240" halfExtents="163,50,50" yaw=-240 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" /><!-- Upper Tower -->
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-120 />
+        <BoxCollisionShape  position="0,530,0" halfExtents="172,52,298" yaw=-240 />
+        <BoxCollisionShape  position="0,400,0" halfExtents="43,110,26" yaw=-30 /><!-- Middle one-->
+        <BoxCollisionShape  position="-200,100,0" halfExtents="26,50,43" /><!--Three lower legs -->
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=-30 />
+        <BoxCollisionShape  position="100,100,-173" halfExtents="43,50,26" yaw=30 />
+        <BoxCollisionShape  position="-100,264,0" halfExtents="26,105,43" roll=-49 /><!--Three upper legs -->
+        <BoxCollisionShape  position="50,264,-87" halfExtents="26,105,43" roll=-49 yaw=-120 />
+        <BoxCollisionShape  position="50,264,87" halfExtents="26,105,43" roll=-49 yaw=-240 />
+      </collisionShapes>
+    </StaticEntity>
+
+<!-- Docking  -->
+    <Dock position="2830,20,50" roll=0 yaw=0 >
+        <animations>
+            <MoveToDockingTarget target="fistperson" />
+        </animations>
+        <effects>
+            <DockToShip target="fistperson" />
+        </effects>
+        <events>
+            <execute>
+                <EventListener event="dockMe" />
+            </execute>
+
+	    <undocking>
+		<EventListener event="undockMe" />
+	    </undocking>
+	
+        </events>
+        <attached>
+	<!-- Trigger for docking with billboard -->
+            <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.2,0.4,0.8" scale=1 />
+            <DistanceTrigger position="0,0,0" distance="200" target="Pawn"
+                beaconMode="exclude" targetname="bcnDestroyer" name="dockMe"
+            />
+	<!-- Trigger for undocking with billboard -->
+	    <Billboard position="-2800,-20055,-700" material="Flares/ringflare2" colour="0.2,0.4,0.8" scale=1 />
+	    <DistanceTrigger position="-2800,-20055,-700" distance="150" target="Pawn"
+                beaconMode="identify" targetname="bcnDestroyer" name="undockMe"
+            />
+        </attached>
+
+    </Dock>
+    
+<!-- FPS Player as destination of the dock -->
+    <FpsPlayer template = "fps" radarname = "First Person Player" position = "172,-20000,-676" >
+      <attached>
+        <DistanceTriggerBeacon name="bcnDestroyer" />
+        <DockingTarget name="fistperson" />
+      </attached>
+    </FpsPlayer>
+
+
+
+
+<!-- Docking  II -->
+    <Dock position="-840,-20055,1.8" roll=0 yaw=0 >
+        <animations>
+            <MoveToDockingTarget target="spaceShip" />
+        </animations>
+        <effects>
+            <DockToShip target="spaceShip" />
+        </effects>
+        <events>
+            <execute>
+                <EventListener event="dockMe" />
+            </execute>
+
+	    <undocking>
+		<EventListener event="undockMe" />
+	    </undocking>
+	
+        </events>
+        <attached>
+	<!-- Trigger for docking with billboard -->
+            <Billboard position="0,0,0" material="Flares/ringflare2" colour="0.3,0.4,0.5" scale=1 />
+            <DistanceTrigger position="0,0,0" distance="200" target="Pawn"
+                beaconMode="exclude" targetname="bcnSpaceShip" name="dockMe"
+            />
+	<!-- Trigger for undocking with billboard -->
+	    <Billboard position="4140,20055,-295" material="Flares/ringflare2" colour="0.3,0.4,0.5" scale=1 />
+	    <DistanceTrigger position="4140,20055,-295" distance="300" target="Pawn"
+                beaconMode="identify" targetname="bcnSpaceShip" name="undockMe"
+            />
+        </attached>
+
+    </Dock>
+
+    <SpaceShip
+        template            = "HeavyCruiser"
+        team                = "0"
+        position            = "3600,-20,-120"
+        orientation         = "1,0,0,0"
+        health              = "400"
+        initialhealth       = "400"
+        maxhealth           = "500"
+        shieldhealth        = "80"
+        initialshieldhealth = "80"
+        maxshieldhealth     = "120"
+        shieldabsorption    = "0.8"
+        reloadrate          = "1"
+        reloadwaittime      = "1"
+        name                = "Tanis1"
+        radarname           = "Tanis Cruiser" >
+      <attached>
+        <DockingTarget name="spaceShip" />
+        <DistanceTriggerBeacon name="bcnSpaceShip" />
+      </attached>
+    </SpaceShip>
+
+
+
+
+<!-- SpaceStation
+
+The station can either be hidden outside of the skybox, within the hull of the space station if it is big enough or within a planet.
+Complex spacestations can be placed very far away from the spaceship so it is rendered at low resolution while the player uses the space ship.
+
+-->
+  <StaticEntity position="0,-20000,0" direction="0,-1,0" collisionType=static mass=100000 friction=0.01 pitch=-90>
+      <attached>
+    <Model position="0,0,0" mesh="ss_tube.mesh" scale3D="100,100,100" />
+	<Model position="500,0,0" mesh="ss_tube.mesh" scale3D="100,100,100" />
+	<Model position="1200,0,0" mesh="ss_tube_x.mesh" scale3D="100,100,100" />
+	<Model position="1900,0,0" mesh="ss_curve.mesh" scale3D="100,100,100" />
+	<Model position="1200,0,703.5" mesh="ss_curve.mesh" scale3D="100,100,100" />
+	<Model position="1805.0,0,-800" mesh="ss_curve.mesh" scale3D="100,100,100" yaw=90 />
+	<Model position="1010.0,0,-700.0" mesh="ss_curve.mesh" scale3D="100,100,100" yaw=-180 />
+	
+	
+	<Model position="750,-16,703.5" pitch=-90 mesh="ss_flag_room.mesh" scale3D="100,100,100" />
+	<Model position="-250,-16,0" pitch=-90 mesh="ss_flag_room.mesh" scale3D="100,100,100" />
+	<Model position="1200,100,-100" roll=180 mesh="ss_machine.mesh" scale3D="0.15,0.15,0.15" />
+	<Model position="-100,100,0" roll=180 mesh="ss_table.mesh" scale3D="25,25,25" />
+	<Model position="-300,100,0" roll=180 mesh="ss_table_cracked.mesh" scale3D="25,25,25" />
+	<Model position="600,75,0" roll=180 mesh="ss_cylinder.mesh" scale3D="25,25,25" />
+	<Model position="300,50,0" roll=180  pitch=20 mesh="ss_chair.mesh" scale3D="20,20,20" />
+	<Model position="1000,50,0" roll=180 mesh="ss_wall.mesh" scale3D="20,20,20" />
+	<Model position="-830,20,0" roll=180 mesh="ss_flag_aean.mesh" scale3D="40,40,40" />
+	
+	<!--Model mesh="cube.mesh" mass=10 position="0,-100,0" scale3D="5000,0.5,1000" yaw=0 />
+    <Model mesh="cube.mesh" mass=10 position="0,100,0" scale3D="2000,0.5,1000" yaw=0 />
+    <!--Model mesh="cube.mesh" mass=10 position="0,0,100" scale3D="5000,100,0.5" yaw=0 />
+    <Model mesh="cube.mesh" mass=10 position="0,0,-100" scale3D="5000,100,0.5" yaw=0 /-->
+      </attached>
+      <collisionShapes>
+        <!--BoxCollisionShape position="0,-100,0" halfExtents="5000,0,100" /-->
+	    <BoxCollisionShape position="0,100,0" halfExtents="2000,0,1000" />
+	    <!--BoxCollisionShape position="0,0,100" halfExtents="5000,100,0" />
+	    <BoxCollisionShape position="0,0,-100" halfExtents="5000,100,0" /-->
+      </collisionShapes>
+  </StaticEntity>
+
+<!--       
+
+-->
+
+
+  <!--Model position="2820,-20,-160" yaw="90" pitch="-90" roll="0" scale="10" mesh="ss_tube.mesh" />
+  <Model position="2820,-20,-210" yaw="90" pitch="-90" roll="0" scale="10" mesh="ss_tube.mesh" />
+  <Model position="2820,-20,-280" yaw="90" pitch="-90" roll="0" scale="10" mesh="ss_curve.mesh" />
+  <Model position="2820,-100,-270.5" yaw="0" pitch="180" roll="90" scale="10" mesh="ss_curve.mesh" /-->
+  
+   
+<!-- Homogenous gravitationfield to simulate local gravity (activating the normal gravity will affect the spaceship terribly) -->
+<ForceField position="0,-20000,0" mode="homogen" diameter="3000" forcedirection = "0,-500,0" />
+
+
+
+
+
+<!-- Some more stuff -->
+
+    <!-- triple large belt around the planet  -->
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(0, -19900, 0, 30, 0, 30, 30, 50, 7190, 7800, 250, 1)
+    ?>
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(0, -19900, 0, 30, 0, 30, 30, 50, 10000, 11000, 300, 1)
+    ?>
+    <?lua
+        dofile("includes/asteroidField.lua")
+        asteroidBelt(0, -19900, 0, 30, 0, 30, 30, 50, 14000, 15000, 350, 1)
+    ?>
+
+    <Model position="0,-19900,0" mesh="planets/ganymede.mesh" scale="5000" />
+    
+    
+
+  </Scene>
+
+</Level>
+
Index: code/trunk/data/levels/quests.oxw
===================================================================
--- code/trunk/data/levels/quests.oxw	(revision 9938)
+++ code/trunk/data/levels/quests.oxw	(revision 9939)
@@ -1,2 +1,3 @@
+<!-- -->
 <LevelInfo
  name = "Quests showcase"
Index: code/trunk/data/levels/radar3D_test.oxw
===================================================================
--- code/trunk/data/levels/radar3D_test.oxw	(revision 9939)
+++ code/trunk/data/levels/radar3D_test.oxw	(revision 9939)
@@ -0,0 +1,77 @@
+<LevelInfo
+ name = "radar3D_test"
+ description = "A level with absolutely nothing in it."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+  include("stats.oxo")
+  include("HUDTemplates3.oxo")
+  include("templates/lodInformation.oxt")
+?>
+
+<?lua
+  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipPirate.oxt")
+  include("templates/spaceshipEscort.oxt")
+?>
+
+<Level
+  gametype     = "Mission"
+>
+  <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="-500,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+    
+
+
+	<Pawn team=0 health=30 position="0,0,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box radarname = "0,0,0" >
+      		<attached>
+        	    <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+        	</attached>
+        	<collisionShapes>
+        	    <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+        	</collisionShapes>
+    	</Pawn>
+
+	<Pawn team=1 health=30 position="0,1000,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box radarname = "0,1000,0" >
+		<attached>
+	            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+	        </attached>
+	        <collisionShapes>
+	            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+	        </collisionShapes>
+    	</Pawn>
+
+
+	<Pawn team=2 health=30 position="0,0,1000" direction="0,-1,0" collisionType=dynamic mass=100000 name=box radarname = "0,0,1000" >
+		<attached>
+	            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+	        </attached>
+	        <collisionShapes>
+	            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+	        </collisionShapes>
+    	</Pawn>
+
+	<Pawn team=3 health=30 position="1000,0,0" direction="0,-1,0" collisionType=dynamic mass=100000 name=box radarname = "1000,0,0" >
+		<attached>
+	            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
+	        </attached>
+	        <collisionShapes>
+	            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
+	        </collisionShapes>
+    	</Pawn>
+
+  </Scene>
+</Level>
+
Index: code/trunk/data/levels/spaceRace.oxw
===================================================================
--- code/trunk/data/levels/spaceRace.oxw	(revision 9938)
+++ code/trunk/data/levels/spaceRace.oxw	(revision 9939)
@@ -29,4 +29,17 @@
     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) ?>
@@ -463,4 +476,6 @@
       </controller>
     </SpaceShip>
+    
+    
 
   </Scene>
Index: code/trunk/data/levels/surfaceRace.oxw
===================================================================
--- code/trunk/data/levels/surfaceRace.oxw	(revision 9938)
+++ code/trunk/data/levels/surfaceRace.oxw	(revision 9939)
@@ -10,4 +10,5 @@
  tags = "gametype"
 />
+
 
 <?lua
@@ -445,4 +446,15 @@
     ?>
     <?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>
Index: code/trunk/data/levels/teamBaseMatch.oxw
===================================================================
--- code/trunk/data/levels/teamBaseMatch.oxw	(revision 9938)
+++ code/trunk/data/levels/teamBaseMatch.oxw	(revision 9939)
@@ -19,4 +19,6 @@
 >
 
+<WorldAmbientSound source="Jupiter.ogg" looping="true" playOnLoad="true" />
+
   <templates>
     <Template link=lodtemplate_default />
Index: code/trunk/data/levels/teamDeathMatch.oxw
===================================================================
--- code/trunk/data/levels/teamDeathMatch.oxw	(revision 9938)
+++ code/trunk/data/levels/teamDeathMatch.oxw	(revision 9939)
@@ -22,4 +22,6 @@
   </templates>
   <?lua include("includes/notifications.oxi") ?>
+  
+  <WorldAmbientSound source="Jupiter.ogg" looping="true" playOnLoad="true" />
 
   <Scene
Index: code/trunk/data/levels/templates/.shipmodels
===================================================================
--- code/trunk/data/levels/templates/.shipmodels	(revision 9939)
+++ code/trunk/data/levels/templates/.shipmodels	(revision 9939)
@@ -0,0 +1,16 @@
+spaceshipTransporterSL
+spaceshipTurret
+spaceshipGhost
+spaceshipEscort
+spaceshipSwallow
+spaceshipAssff
+spaceshipSpacecruiser
+spaceshipHXY
+spaceshipH2
+spaceshipHXYSL
+spaceshipCollateralDamage
+spaceshipAssff2
+spaceshipPirate
+spaceshipRace
+spaceshipTransporter
+spaceshipInvader
Index: code/trunk/data/levels/templates/HeavyCruiser.oxt
===================================================================
--- code/trunk/data/levels/templates/HeavyCruiser.oxt	(revision 9939)
+++ code/trunk/data/levels/templates/HeavyCruiser.oxt	(revision 9939)
@@ -0,0 +1,506 @@
+<!-- This template includes HeavyCruiser with all its parts (not individually destructible) -->
+
+<Template name=HeavyCruiser>
+  <SpaceShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = heavycruisercameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 6
+
+   health            = 100
+   maxhealth         = 200
+   initialhealth     = 100
+
+   shieldhealth        = 100
+   initialshieldhealth = 30
+   maxshieldhealth     = 50
+   shieldabsorption    = 0.8
+   reloadrate          = 1
+   reloadwaittime      = 1
+
+   primaryThrust     = 300
+   auxilaryThrust    = 30
+   rotationThrust    = 0.1
+
+   lift = 1;
+   stallSpeed = 220;
+
+   boostPower            = 30
+   boostPowerRate        = 1.5
+   boostRate             = 4
+   boostCooldownDuration = 10
+
+   shakeFrequency = 15
+   shakeAmplitude = 9
+
+   collisionType     = "dynamic"
+   mass              = 10000
+   linearDamping     = 0.1
+   angularDamping    = 0.5
+  >
+    <engines>
+      <MultiStateEngine position="85,0,0" template=HeavyCruiser_body_engine1 />
+      <MultiStateEngine position="-85,0,0" template=HeavyCruiser_body_engine1 />
+
+      <MultiStateEngine position="-140,0,308" template=HeavyCruiser_sidearmL_engine1 />
+      <MultiStateEngine position="140,0,308" template=HeavyCruiser_sidearmR_engine1 />
+    </engines>
+    <attached>
+
+        <Model mesh="HeavyCruiser_body.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_frontL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_frontR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_partL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_partR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_sidearmL.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_sidearmLfront.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <Model mesh="HeavyCruiser_sidearmR.mesh" direction="-1,0,0" position="0,0,0" scale="40"/>
+        <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 />
+        <BlinkingBillboard position="74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 quadratic=1 />
+        <BlinkingBillboard position="-74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 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 />
+        <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 />
+        <BlinkingBillboard position="74,103,524" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
+        <BlinkingBillboard position="-74,103,524" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
+
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="80,33,-320" halfExtents="7,11,54" info="frontR"/>
+        <BoxCollisionShape position="79,31,-399" halfExtents="3,6,26" info="frontR"/>
+
+
+        <BoxCollisionShape position="-80,33,-320" halfExtents="7,11,54" info="frontL"/>
+        <BoxCollisionShape position="-79,31,-399" halfExtents="3,6,26" info="frontL"/>
+
+
+        <BoxCollisionShape position="94,33,-179" halfExtents="11,13,45" info="partR"/>
+        <BoxCollisionShape position="96,33,-230" halfExtents="13,17,22" info="partR"/>
+
+
+        <BoxCollisionShape position="-94,33,-179" halfExtents="11,13,45" info="partL"/>
+        <BoxCollisionShape position="-96,33,-230" halfExtents="13,17,22" info="partL"/>
+
+
+        <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="145,21,115" roll="-15" halfExtents="19,31,105" 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"/>
+        <BoxCollisionShape position="153,59,96" roll="-15" halfExtents="6,7,60" info="sidearmR, upper beam"/>
+        <BoxCollisionShape position="143,57,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper inner beam"/>
+        <BoxCollisionShape position="142,53,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper inner beam"/>
+        <BoxCollisionShape position="160,52,119" roll="-15" halfExtents="3,4,85" info="sidearmR, upper outer beam"/>
+        <BoxCollisionShape position="159,48,212" pitch="21" yaw="-5" roll="-15" halfExtents="3,4,10" info="sidearmR, upper outer beam"/>
+        <BoxCollisionShape position="152,54,34" pitch="-46" yaw="14" roll="-15" halfExtents="6,7,10" info="sidearmR, upper beam front"/>
+        <BoxCollisionShape position="152,54,162" pitch="30" yaw="-9" roll="-15" halfExtents="6,7,12" info="sidearmR, upper beam back"/>
+        <BoxCollisionShape position="168,21,119" roll="-15" halfExtents="3,5,109" info="sidearmR, outer beam"/>
+        <BoxCollisionShape position="134,-10,169" roll="-15" halfExtents="6,4,55" info="sidearmR, lower beam front"/>
+        <BoxCollisionShape position="131,-20,217" pitch="-20" roll="-15" yaw="5" halfExtents="6,12,3" info="sidearmR, lower beam middle"/>
+        <BoxCollisionShape position="130,-29,233" roll="-15" halfExtents="6,3,15" info="sidearmR, lower beam back"/>
+
+
+        <BoxCollisionShape position="141,15,-53" roll="-15" halfExtents="27,44,62" info="sidearmRfront"/>
+        <BoxCollisionShape position="153,59,-30" roll="-15" halfExtents="4,2,38" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,61,-41" roll="-15" halfExtents="4,4,11" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,60,-65" roll="-15" halfExtents="4,3,4" info="sidearmRfront, top"/>
+        <BoxCollisionShape position="153,59,-41" roll="-15" halfExtents="8,2,11" info="sidearmRfront, top"/>
+
+
+        <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="-145,21,115" roll="15" halfExtents="19,31,105" 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"/>
+        <BoxCollisionShape position="-153,59,96" roll="15" halfExtents="6,7,60" info="sidearmL, upper beam"/>
+        <BoxCollisionShape position="-143,57,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper inner beam"/>
+        <BoxCollisionShape position="-142,53,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper inner beam"/>
+        <BoxCollisionShape position="-160,52,119" roll="15" halfExtents="3,4,85" info="sidearmL, upper outer beam"/>
+        <BoxCollisionShape position="-159,48,212" pitch="21" yaw="5" roll="15" halfExtents="3,4,10" info="sidearmL, upper outer beam"/>
+        <BoxCollisionShape position="-152,54,34" pitch="-46" yaw="-14" roll="15" halfExtents="6,7,10" info="sidearmL, upper beam front"/>
+        <BoxCollisionShape position="-152,54,162" pitch="30" yaw="9" roll="15" halfExtents="6,7,12" info="sidearmL, upper beam back"/>
+        <BoxCollisionShape position="-168,21,119" roll="15" halfExtents="3,5,109" info="sidearmL, outer beam"/>
+        <BoxCollisionShape position="-134,-10,169" roll="15" halfExtents="6,4,55" info="sidearmL, lower beam front"/>
+        <BoxCollisionShape position="-131,-20,217" pitch="-20" roll="15" yaw="-5" halfExtents="6,12,3" info="sidearmL, lower beam middle"/>
+        <BoxCollisionShape position="-130,-29,233" roll="15" halfExtents="6,3,15" info="sidearmL, lower beam back"/>
+
+
+        <BoxCollisionShape position="-141,15,-53" roll="15" halfExtents="27,44,62" info="sidearmLfront"/>
+        <BoxCollisionShape position="-153,59,-30" roll="15" halfExtents="4,2,38" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,61,-41" roll="15" halfExtents="4,4,11" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,60,-65" roll="15" halfExtents="4,3,4" info="sidearmLfront, top"/>
+        <BoxCollisionShape position="-153,59,-41" roll="15" halfExtents="8,2,11" info="sidearmLfront, top"/>
+
+
+        <BoxCollisionShape position="60,35,-310" halfExtents="13,28,60" info="body, bay1, Rwall"/> 
+        <BoxCollisionShape position="-60,35,-310" halfExtents="13,28,60" info="body, bay1, Lwall"/> 
+        <BoxCollisionShape position="0,56,-310" halfExtents="65,6,60" info="body, bay1, Twall"/> 
+        <BoxCollisionShape position="0,33,-260" halfExtents="65,28,5" info="body, bay1, Bwall"/>
+        <BoxCollisionShape position="0,10,-310" halfExtents="65,5,60" info="body, bay1, BottomWall"/>  
+
+        <BoxCollisionShape position="0,35,-125" halfExtents="83,30,130" info="body, front"/>
+        <BoxCollisionShape position="0,6,-307" halfExtents="19,3,43" info="body, frontbottom"/>
+        <BoxCollisionShape position="0,5,-196" halfExtents="27,3,24" info="body, dock"/>
+        <BoxCollisionShape position="0,7,-248" pitch="25" halfExtents="63,4,12" info="body, dockF"/>
+        <BoxCollisionShape position="70,6,-120" roll="20" halfExtents="12,6,120" info="body, dockR"/>
+        <BoxCollisionShape position="63,-2,-180" halfExtents="3,3,60" info="body, dockR"/>
+        <BoxCollisionShape position="-70,6,-120" roll="-20" halfExtents="12,6,120" info="body, dockL"/>
+        <BoxCollisionShape position="-63,-2,-180" halfExtents="3,3,60" info="body, dockL"/>
+        <BoxCollisionShape position="87,32,-63" halfExtents="4,23,50" info="body, frontCR"/>
+        <BoxCollisionShape position="-87,32,-63" halfExtents="4,23,50" info="body, frontCL"/>
+
+        <BoxCollisionShape position="0,72,-213" halfExtents="37,8,60" info="body, Fbridge"/>
+        <BoxCollisionShape position="0,72,-110" halfExtents="53,11,53" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,86,-110" halfExtents="40,4,40" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,70,-60" halfExtents="65,11,30" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,84,-45" halfExtents="33,11,26" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,79,-6" pitch="10" halfExtents="32,13,17" info="body, Bbridge"/>
+        <BoxCollisionShape position="38,67,-45" roll="50" halfExtents="16,23,25" info="body, BbridgeR"/>
+        <BoxCollisionShape position="35,63,-17" pitch="25" yaw="-20" roll="40" halfExtents="16,23,16" info="body, BbridgeR"/>
+        <BoxCollisionShape position="-38,67,-45" roll="-50" halfExtents="16,23,25" info="body, BbridgeL"/>
+        <BoxCollisionShape position="-35,63,-17" pitch="25" yaw="20" roll="-40" halfExtents="16,23,16" info="body, BbridgeL"/>
+
+        <BoxCollisionShape position="0,69,80" halfExtents="8,4,80" info="body, Cbeam"/> 
+        <BoxCollisionShape position="-67,18,58" roll="-22" halfExtents="13,5,53" info="body, CF, L"/>
+        <BoxCollisionShape position="-76,36,86" halfExtents="5,18,81" info="body, C, L"/>
+        <BoxCollisionShape position="-91,46,86" halfExtents="11,6,20" info="body, C, L upper beam"/>
+        <BoxCollisionShape position="-64,8,79" roll="10" halfExtents="8,3,8" info="body, C, L lower beam"/>
+        <BoxCollisionShape position="-71,55,140" pitch="-4" roll="31" halfExtents="9,5,27" info="body, CB, TopL"/>
+        <BoxCollisionShape position="-62,2,140" roll="24" halfExtents="10,24,32" info="body, CB, BottomL"/>
+        <BoxCollisionShape position="67,18,58" roll="22" halfExtents="13,5,53" info="body, CF, R"/>
+        <BoxCollisionShape position="76,36,86" halfExtents="5,18,81" info="body, C, R"/>
+        <BoxCollisionShape position="91,46,86" halfExtents="11,6,20" info="body, C, R upper beam"/>
+        <BoxCollisionShape position="64,8,79" roll="-10" halfExtents="8,3,8" info="body, C, R lower beam"/> 
+        <BoxCollisionShape position="71,55,140" pitch="-4" roll="-31" halfExtents="9,5,27" info="body, CB, TopR"/>
+        <BoxCollisionShape position="62,2,140" roll="-24" halfExtents="10,24,32" info="body, CB, BottomR"/>
+        <BoxCollisionShape position="0,60,12" halfExtents="81,5,11" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,55,40" pitch="15" halfExtents="81,5,20" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,50,85" pitch="1" halfExtents="81,5,29" info="body, C, Top"/>
+        <BoxCollisionShape position="0,59,140" pitch="-4" halfExtents="68,5,27" info="body, CB, Top"/>
+        
+
+
+        <BoxCollisionShape position="0,-7,90" halfExtents="40,4,90" info="body, bay3, Twall"/>
+        <BoxCollisionShape position="0,-15,-60" halfExtents="60,25,65" info="body, bay3, Fwall"/>
+        <BoxCollisionShape position="47,-11,90" halfExtents="13,20,90" info="body, bay3, Rwall"/>
+        <BoxCollisionShape position="-47,-11,90" halfExtents="13,20,90" info="body, bay3, Lwall"/>
+        <BoxCollisionShape position="0,-29,149" halfExtents="10,2,11" info="body, bay3, platform"/>
+        <BoxCollisionShape position="0,-20,227" halfExtents="60,20,65" info="body, bay3, Bwall"/>
+
+        <BoxCollisionShape position="0,81,238" halfExtents="26,5,59" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,67,234" halfExtents="54,5,67" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,77,175" pitch="-36" halfExtents="26,5,9" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,62,161" pitch="-30" halfExtents="56,5,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,69,162" halfExtents="16,7,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="31,76,238" roll="-46" halfExtents="10,3,59" info="body, BF, TopR"/>
+        <BoxCollisionShape position="64,64,234" roll="-24" halfExtents="13,3,67" info="body, BF, TopR"/>
+        <BoxCollisionShape position="-31,76,238" roll="46" halfExtents="10,3,59" info="body, BF, TopL"/>
+        <BoxCollisionShape position="-64,64,234" roll="24" halfExtents="13,3,67" info="body, BF, TopL"/>
+
+        <BoxCollisionShape position="77,40,244" roll="16" halfExtents="7,20,79" info="body, BF, R"/>
+        <BoxCollisionShape position="95,9,234" roll="2" halfExtents="18,16,59" info="body, BF, R"/>
+        <BoxCollisionShape position="74,1,255" roll="-20" halfExtents="18,19,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="66,-21,255" roll="9" halfExtents="17,5,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="-77,40,244" roll="-16" halfExtents="7,20,79" info="body, BF, L"/>
+        <BoxCollisionShape position="-95,9,234" roll="-2" halfExtents="18,16,59" info="body, BF, L"/>
+        <BoxCollisionShape position="-74,1,255" roll="20" halfExtents="18,19,82" info="body, BF, BottomL"/>
+        <BoxCollisionShape position="-66,-21,255" roll="-9" halfExtents="17,5,82" info="body, BF, BottomL"/>
+
+        <BoxCollisionShape position="0,106,381" halfExtents="36,5,71" info="body, BTop"/>
+        <BoxCollisionShape position="0,93,299" pitch="-49" halfExtents="34,5,20" info="body, BTop"/>
+        <BoxCollisionShape position="41,101,381" roll="-42" halfExtents="10,4,71" info="body, BTopR"/>
+        <BoxCollisionShape position="-41,101,381" roll="42" halfExtents="10,4,71" info="body, BTopL"/>
+
+        <BoxCollisionShape position="78,45,332" pitch="-10" roll="-10" yaw="20" halfExtents="10,20,30" info="body, back, R"/>
+        <BoxCollisionShape position="68,77,332" pitch="-10" roll="35" yaw="20" halfExtents="10,20,30" info="body, back, TR"/>
+        <BoxCollisionShape position="50,70,290" pitch="-10" roll="35" yaw="43" halfExtents="5,20,20" info="body, back, TR"/>
+        <BoxCollisionShape position="37,95,307" pitch="-10" roll="30" yaw="43" halfExtents="5,8,8" info="body, back, TR"/>
+        <BoxCollisionShape position="52,92,332" pitch="-10" yaw="30" halfExtents="10,5,30" info="body, back, TR"/>
+        <BoxCollisionShape position="88,4,322" halfExtents="10,24,30" info="body, back, RB"/>
+        <BoxCollisionShape position="54,-24,314" roll="35" pitch="-10" halfExtents="8,5,23" info="body, back, RB"/>
+        <BoxCollisionShape position="68,-19,346" pitch="-17" roll="8" halfExtents="16,4,11" info="body, back, bottomR"/>
+        <BoxCollisionShape position="-78,45,332" pitch="-10" roll="10" yaw="-20" halfExtents="10,20,30" info="body, back, L"/>
+        <BoxCollisionShape position="-68,77,332" pitch="-10" roll="-35" yaw="-20" halfExtents="10,20,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-50,70,290" pitch="-10" roll="-35" yaw="-43" halfExtents="5,20,20" info="body, back, TL"/>
+        <BoxCollisionShape position="-37,95,307" pitch="-10" roll="-30" yaw="-43" halfExtents="5,8,8" info="body, back, TL"/>
+        <BoxCollisionShape position="-52,92,332" pitch="-10" yaw="-30" halfExtents="10,5,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-88,4,322" halfExtents="10,24,30" info="body, back, LB"/>
+        <BoxCollisionShape position="-54,-24,314" roll="-35" pitch="-10" halfExtents="8,5,23" info="body, back, LB"/>
+        <BoxCollisionShape position="-68,-19,346" pitch="-17" roll="-8" halfExtents="16,4,11" info="body, back, bottomL"/>
+        <BoxCollisionShape position="0,-30,314" pitch="-8" halfExtents="52,4,23" info="body, back, bottom"/>
+        <BoxCollisionShape position="0,-22,346" pitch="-24" halfExtents="52,4,11" info="body, back, bottom"/>
+
+        <BoxCollisionShape position="48,-29,400" halfExtents="5,8,58" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="48,-29,451" halfExtents="10,13,14" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="-48,-29,400" halfExtents="5,8,58" info="body, BBottomLBeam"/>
+        <BoxCollisionShape position="-48,-31,451" halfExtents="10,13,14" info="body, BBottomLBeam"/>
+
+        <BoxCollisionShape position="103,60,420" halfExtents="18,9,64" info="body, back, Rextrusion"/>
+        <BoxCollisionShape position="-103,60,420" halfExtents="18,9,64" info="body, back, Lextrusion"/>
+        <BoxCollisionShape position="-85,7,417" halfExtents="10,21,67" info="body, back, LB"/>
+        <BoxCollisionShape position="85,7,417" halfExtents="10,21,67" info="body, back, RB"/>
+        <BoxCollisionShape position="0,-8,473" halfExtents="90,6,10" info="body, back, Bback"/>
+        <BoxCollisionShape position="0,-13,474" pitch="-23" halfExtents="76,5,8" info="body, back, Bback"/>
+        <BoxCollisionShape position="-79,-13,405" roll="-12" halfExtents="15,5,73" info="body, back, BL"/>
+        <BoxCollisionShape position="79,-13,405" roll="12" halfExtents="15,5,73" info="body, back, BR"/>
+        <BoxCollisionShape position="0,-15,410" halfExtents="66,6,58" info="body, back, B"/>
+
+        <BoxCollisionShape position="78,32,440" roll="-18" halfExtents="18,35,85" info="body, bay2, Rwall"/>
+        <BoxCollisionShape position="75,71,440" roll="35" halfExtents="18,27,85" info="body, bay2, Rwall"/>             
+        <BoxCollisionShape position="-78,32,440" roll="18" halfExtents="18,35,85" info="body, bay2, Lwall"/>
+        <BoxCollisionShape position="-75,71,440" roll="-35" halfExtents="18,27,85" info="body, bay2, Lwall"/>             
+        <BoxCollisionShape position="0,75,435" halfExtents="72,28,90" info="body, bay2, Twall"/>
+        <BoxCollisionShape position="0,35,423" halfExtents="85,35,5" info="body, bay2, Fwall"/> 
+        <BoxCollisionShape position="0,-3,465" halfExtents="84,5,60" info="body, bay2, BottomWall"/>
+        <BoxCollisionShape position="0,78,526" halfExtents="43,17,5" info="body, bay2, Twall"/> 
+        
+        
+        <BoxCollisionShape position="0,7,80" halfExtents="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+        <BoxCollisionShape position="0,29,80" halfExtents="23,1,34" info="HOOKBOX, top"/>
+        <BoxCollisionShape position="-22,18,80" halfExtents="1,12,34" info="HOOKBOX, left long"/>
+        <BoxCollisionShape position="0,18,80" halfExtents="1,12,34" info="HOOKBOX, center long"/>
+        <BoxCollisionShape position="22,18,80" halfExtents="1,12,34" info="HOOKBOX, right long"/>
+        <BoxCollisionShape position="0,18,113" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,91" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,69" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,47" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+       
+<!-- Following the position of the other parts collisionboxes, used to attach them to the body --> 
+<!--         <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>
+<?lua
+  include("../includes/weaponSettingsHeavyCruiser.oxi")
+?>
+  </SpaceShip>
+
+</Template>
+
+
+
+
+<Template name=heavycruisercameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,200, 1000" drag=true mouselook=true />
+      <CameraPosition position="0,100, 1000" drag=true mouselook=true />
+      <CameraPosition position="0,150,600" drag=true mouselook=true />
+      <CameraPosition position="0,80,-300" drag=false mouselook=false />
+      <CameraPosition position="200,80,300" drag=false mouselook=false />
+      <CameraPosition position="0,1100,60" pitch="-90" drag=false mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
+
+
+
+<Template name=HeavyCruiser_body_engine1 baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 150
+   speedback      =  40
+   speedleftright =  40
+   speedupdown    =  40
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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.7 position="-66,87,525" 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.7 position="-73,77,525" 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.7 position="-80,68,525" 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.8 position="-86,58,525" 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.7 position="-82,46,525" 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.7 position="-80,34,525" 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.7 position="-76,21,525" 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.6 position="-71,9,525" 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.7 position="66,87,525" 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.7 position="73,77,525" 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.7 position="80,68,525" 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.8 position="86,58,525" 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.7 position="82,46,525" 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.7 position="80,34,525" 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.7 position="76,21,525" 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.6 position="71,9,525" 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.6 name=bltest position="66,87,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="73,77,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,68,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="86,58,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="82,46,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,34,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.4 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="76,21,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="71,9,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-66,87,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-73,77,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,68,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-86,58,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-82,46,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,34,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.4 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-76,21,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-71,9,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="85,58,525" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-85,58,525" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="66,87,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="73,77,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,68,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="86,58,525" 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.6 name=bltest position="82,46,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,34,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="76,21,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="71,9,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-66,87,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-73,77,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,68,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-86,58,525" 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.6 name=bltest position="-82,46,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,34,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-76,21,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-71,9,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 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>
+
+
+<Template name=HeavyCruiser_sidearmL_engine1 baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 300
+   speedback      =  50
+   speedleftright =  50
+   speedupdown    =  50
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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=1 position="-147,35,308" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=1 position="-136,-5,308" 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.6 name=bltest position="-147,35,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-136,-5,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-147,35,308" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-136,-5,308" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="-148,35,308" 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.6 name=bltest position="-136,-5,308" 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>
+
+
+<Template name=HeavyCruiser_sidearmR_engine1 baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 300
+   speedback      =  50
+   speedleftright =  50
+   speedupdown    =  50
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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=1 position="147,35,308" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=1 position="136,-5,308" 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.6 name=bltest position="147,35,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="136,-5,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="147,35,308" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="136,-5,308" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="147,35,308" 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.6 name=bltest position="136,-5,308" 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/trunk/data/levels/templates/HeavyCruiserBody.oxt
===================================================================
--- code/trunk/data/levels/templates/HeavyCruiserBody.oxt	(revision 9939)
+++ code/trunk/data/levels/templates/HeavyCruiserBody.oxt	(revision 9939)
@@ -0,0 +1,426 @@
+<!-- This template includes HeavyCruiser's main body only. Its parts can be attached as Pawns -->
+
+<Template name=HeavyCruiserBody>
+  <SpaceShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = HeavyCruiser_cameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 6
+
+   health            = 1000
+   maxhealth         = 2000
+   initialhealth     = 1000
+
+   shieldhealth        = 1000
+   initialshieldhealth = 300
+   maxshieldhealth     = 500
+   shieldabsorption    = 0.8
+   reloadrate          = 1
+   reloadwaittime      = 1
+
+   primaryThrust     = 300
+   auxilaryThrust    = 30
+   rotationThrust    = 0.1
+
+   lift = 1;
+   stallSpeed = 220;
+
+   boostPower            = 30
+   boostPowerRate        = 1.5
+   boostRate             = 4
+   boostCooldownDuration = 10
+
+   shakeFrequency = 15
+   shakeAmplitude = 3
+
+   collisionType     = "dynamic"
+   mass              = 10000
+   linearDamping     = 0.1
+   angularDamping    = 0.5
+  >
+    <engines>
+      <MultiStateEngine position="85,0,0" template=HeavyCruiser_body_engine /> <!-- engine attached to main body-->
+      <MultiStateEngine position="-85,0,0" template=HeavyCruiser_body_engine /> <!-- engine attached to main body-->
+
+      <MultiStateEngine position="-140,0,308" template=HeavyCruiser_sidearmL_engine /> <!-- engine attached to sidearmL-->
+      <MultiStateEngine position="140,0,308" template=HeavyCruiser_sidearmR_engine /> <!-- engine attached to sidearmR-->
+    </engines>
+    <attached>
+
+        <Model mesh="HeavyCruiser_body.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 />
+        <BlinkingBillboard position="74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 quadratic=1 />
+        <BlinkingBillboard position="-74,30,-402" material="Examples/Flare" colour="0.8, 0.8, 0, 0.1" amplitude=0.1 frequency=0.3 phase=120 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 />
+        <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 />
+        <BlinkingBillboard position="74,103,524" material="Examples/Flare" colour="0, 0.7, 0, 0.1" amplitude=0.3 frequency=0.15 phase=0 quadratic=1 />
+        <BlinkingBillboard position="-74,103,524" material="Examples/Flare" colour="0.7, 0, 0, 0.1" amplitude=0.3 frequency=0.15 phase=360 quadratic=1 />
+
+    </attached>
+    <collisionShapes>
+        <BoxCollisionShape position="60,35,-310" halfExtents="13,28,60" info="body, bay1, Rwall"/> 
+        <BoxCollisionShape position="-60,35,-310" halfExtents="13,28,60" info="body, bay1, Lwall"/> 
+        <BoxCollisionShape position="0,56,-310" halfExtents="65,6,60" info="body, bay1, Twall"/> 
+        <BoxCollisionShape position="0,33,-260" halfExtents="65,28,5" info="body, bay1, Bwall"/>
+        <BoxCollisionShape position="0,10,-310" halfExtents="65,5,60" info="body, bay1, BottomWall"/>  
+
+        <BoxCollisionShape position="0,35,-125" halfExtents="83,30,130" info="body, front"/>
+        <BoxCollisionShape position="0,6,-307" halfExtents="19,3,43" info="body, frontbottom"/>
+        <BoxCollisionShape position="0,5,-196" halfExtents="27,3,24" info="body, dock"/>
+        <BoxCollisionShape position="0,7,-248" pitch="25" halfExtents="63,4,12" info="body, dockF"/>
+        <BoxCollisionShape position="70,6,-120" roll="20" halfExtents="12,6,120" info="body, dockR"/>
+        <BoxCollisionShape position="63,-2,-180" halfExtents="3,3,60" info="body, dockR"/>
+        <BoxCollisionShape position="-70,6,-120" roll="-20" halfExtents="12,6,120" info="body, dockL"/>
+        <BoxCollisionShape position="-63,-2,-180" halfExtents="3,3,60" info="body, dockL"/>
+        <BoxCollisionShape position="87,32,-63" halfExtents="4,23,50" info="body, frontCR"/>
+        <BoxCollisionShape position="-87,32,-63" halfExtents="4,23,50" info="body, frontCL"/>
+
+        <BoxCollisionShape position="0,72,-213" halfExtents="37,8,60" info="body, Fbridge"/>
+        <BoxCollisionShape position="0,72,-110" halfExtents="53,11,53" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,86,-110" halfExtents="40,4,40" info="body, Cbridge"/>
+        <BoxCollisionShape position="0,70,-60" halfExtents="65,11,30" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,84,-45" halfExtents="33,11,26" info="body, Bbridge"/>
+        <BoxCollisionShape position="0,79,-6" pitch="10" halfExtents="32,13,17" info="body, Bbridge"/>
+        <BoxCollisionShape position="38,67,-45" roll="50" halfExtents="16,23,25" info="body, BbridgeR"/>
+        <BoxCollisionShape position="35,63,-17" pitch="25" yaw="-20" roll="40" halfExtents="16,23,16" info="body, BbridgeR"/>
+        <BoxCollisionShape position="-38,67,-45" roll="-50" halfExtents="16,23,25" info="body, BbridgeL"/>
+        <BoxCollisionShape position="-35,63,-17" pitch="25" yaw="20" roll="-40" halfExtents="16,23,16" info="body, BbridgeL"/>
+
+        <BoxCollisionShape position="0,69,80" halfExtents="8,4,80" info="body, Cbeam"/> 
+        <BoxCollisionShape position="-67,18,58" roll="-22" halfExtents="13,5,53" info="body, CF, L"/>
+        <BoxCollisionShape position="-76,36,86" halfExtents="5,18,81" info="body, C, L"/>
+        <BoxCollisionShape position="-91,46,86" halfExtents="11,6,20" info="body, C, L upper beam"/>
+        <BoxCollisionShape position="-64,8,79" roll="10" halfExtents="8,3,8" info="body, C, L lower beam"/>
+        <BoxCollisionShape position="-71,55,140" pitch="-4" roll="31" halfExtents="9,5,27" info="body, CB, TopL"/>
+        <BoxCollisionShape position="-62,2,140" roll="24" halfExtents="10,24,32" info="body, CB, BottomL"/>
+        <BoxCollisionShape position="67,18,58" roll="22" halfExtents="13,5,53" info="body, CF, R"/>
+        <BoxCollisionShape position="76,36,86" halfExtents="5,18,81" info="body, C, R"/>
+        <BoxCollisionShape position="91,46,86" halfExtents="11,6,20" info="body, C, R upper beam"/>
+        <BoxCollisionShape position="64,8,79" roll="-10" halfExtents="8,3,8" info="body, C, R lower beam"/> 
+        <BoxCollisionShape position="71,55,140" pitch="-4" roll="-31" halfExtents="9,5,27" info="body, CB, TopR"/>
+        <BoxCollisionShape position="62,2,140" roll="-24" halfExtents="10,24,32" info="body, CB, BottomR"/>
+        <BoxCollisionShape position="0,60,12" halfExtents="81,5,11" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,55,40" pitch="15" halfExtents="81,5,20" info="body, CF, Top"/>
+        <BoxCollisionShape position="0,50,85" pitch="1" halfExtents="81,5,29" info="body, C, Top"/>
+        <BoxCollisionShape position="0,59,140" pitch="-4" halfExtents="68,5,27" info="body, CB, Top"/>
+
+        <BoxCollisionShape position="0,-7,90" halfExtents="40,4,90" info="body, bay3, Twall"/>
+        <BoxCollisionShape position="0,-15,-60" halfExtents="60,25,65" info="body, bay3, Fwall"/>
+        <BoxCollisionShape position="47,-11,90" halfExtents="13,20,90" info="body, bay3, Rwall"/>
+        <BoxCollisionShape position="-47,-11,90" halfExtents="13,20,90" info="body, bay3, Lwall"/>
+        <BoxCollisionShape position="0,-29,149" halfExtents="10,2,11" info="body, bay3, platform"/>
+        <BoxCollisionShape position="0,-20,227" halfExtents="60,20,65" info="body, bay3, Bwall"/>
+
+        <BoxCollisionShape position="0,81,238" halfExtents="26,5,59" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,67,234" halfExtents="54,5,67" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,77,175" pitch="-36" halfExtents="26,5,9" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,62,161" pitch="-30" halfExtents="56,5,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="0,69,162" halfExtents="16,7,10" info="body, BF, Top"/>
+        <BoxCollisionShape position="31,76,238" roll="-46" halfExtents="10,3,59" info="body, BF, TopR"/>
+        <BoxCollisionShape position="64,64,234" roll="-24" halfExtents="13,3,67" info="body, BF, TopR"/>
+        <BoxCollisionShape position="-31,76,238" roll="46" halfExtents="10,3,59" info="body, BF, TopL"/>
+        <BoxCollisionShape position="-64,64,234" roll="24" halfExtents="13,3,67" info="body, BF, TopL"/>
+
+        <BoxCollisionShape position="77,40,244" roll="16" halfExtents="7,20,79" info="body, BF, R"/>
+        <BoxCollisionShape position="95,9,234" roll="2" halfExtents="18,16,59" info="body, BF, R"/>
+        <BoxCollisionShape position="74,1,255" roll="-20" halfExtents="18,19,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="66,-21,255" roll="9" halfExtents="17,5,82" info="body, BF, BottomR"/>
+        <BoxCollisionShape position="-77,40,244" roll="-16" halfExtents="7,20,79" info="body, BF, L"/>
+        <BoxCollisionShape position="-95,9,234" roll="-2" halfExtents="18,16,59" info="body, BF, L"/>
+        <BoxCollisionShape position="-74,1,255" roll="20" halfExtents="18,19,82" info="body, BF, BottomL"/>
+        <BoxCollisionShape position="-66,-21,255" roll="-9" halfExtents="17,5,82" info="body, BF, BottomL"/>
+
+        <BoxCollisionShape position="0,106,381" halfExtents="36,5,71" info="body, BTop"/>
+        <BoxCollisionShape position="0,93,299" pitch="-49" halfExtents="34,5,20" info="body, BTop"/>
+        <BoxCollisionShape position="41,101,381" roll="-42" halfExtents="10,4,71" info="body, BTopR"/>
+        <BoxCollisionShape position="-41,101,381" roll="42" halfExtents="10,4,71" info="body, BTopL"/>
+
+        <BoxCollisionShape position="78,45,332" pitch="-10" roll="-10" yaw="20" halfExtents="10,20,30" info="body, back, R"/>
+        <BoxCollisionShape position="68,77,332" pitch="-10" roll="35" yaw="20" halfExtents="10,20,30" info="body, back, TR"/>
+        <BoxCollisionShape position="50,70,290" pitch="-10" roll="35" yaw="43" halfExtents="5,20,20" info="body, back, TR"/>
+        <BoxCollisionShape position="37,95,307" pitch="-10" roll="30" yaw="43" halfExtents="5,8,8" info="body, back, TR"/>
+        <BoxCollisionShape position="52,92,332" pitch="-10" yaw="30" halfExtents="10,5,30" info="body, back, TR"/>
+        <BoxCollisionShape position="88,4,322" halfExtents="10,24,30" info="body, back, RB"/>
+        <BoxCollisionShape position="54,-24,314" roll="35" pitch="-10" halfExtents="8,5,23" info="body, back, RB"/>
+        <BoxCollisionShape position="68,-19,346" pitch="-17" roll="8" halfExtents="16,4,11" info="body, back, bottomR"/>
+        <BoxCollisionShape position="-78,45,332" pitch="-10" roll="10" yaw="-20" halfExtents="10,20,30" info="body, back, L"/>
+        <BoxCollisionShape position="-68,77,332" pitch="-10" roll="-35" yaw="-20" halfExtents="10,20,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-50,70,290" pitch="-10" roll="-35" yaw="-43" halfExtents="5,20,20" info="body, back, TL"/>
+        <BoxCollisionShape position="-37,95,307" pitch="-10" roll="-30" yaw="-43" halfExtents="5,8,8" info="body, back, TL"/>
+        <BoxCollisionShape position="-52,92,332" pitch="-10" yaw="-30" halfExtents="10,5,30" info="body, back, TL"/>
+        <BoxCollisionShape position="-88,4,322" halfExtents="10,24,30" info="body, back, LB"/>
+        <BoxCollisionShape position="-54,-24,314" roll="-35" pitch="-10" halfExtents="8,5,23" info="body, back, LB"/>
+        <BoxCollisionShape position="-68,-19,346" pitch="-17" roll="-8" halfExtents="16,4,11" info="body, back, bottomL"/>
+        <BoxCollisionShape position="0,-30,314" pitch="-8" halfExtents="52,4,23" info="body, back, bottom"/>
+        <BoxCollisionShape position="0,-22,346" pitch="-24" halfExtents="52,4,11" info="body, back, bottom"/>
+
+        <BoxCollisionShape position="48,-29,400" halfExtents="5,8,58" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="48,-29,451" halfExtents="10,13,14" info="body, BBottomRBeam"/>
+        <BoxCollisionShape position="-48,-29,400" halfExtents="5,8,58" info="body, BBottomLBeam"/>
+        <BoxCollisionShape position="-48,-31,451" halfExtents="10,13,14" info="body, BBottomLBeam"/>
+
+        <BoxCollisionShape position="103,60,420" halfExtents="18,9,64" info="body, back, Rextrusion"/>
+        <BoxCollisionShape position="-103,60,420" halfExtents="18,9,64" info="body, back, Lextrusion"/>
+        <BoxCollisionShape position="-85,7,417" halfExtents="10,21,67" info="body, back, LB"/>
+        <BoxCollisionShape position="85,7,417" halfExtents="10,21,67" info="body, back, RB"/>
+        <BoxCollisionShape position="0,-8,473" halfExtents="90,6,10" info="body, back, Bback"/>
+        <BoxCollisionShape position="0,-13,474" pitch="-23" halfExtents="76,5,8" info="body, back, Bback"/>
+        <BoxCollisionShape position="-79,-13,405" roll="-12" halfExtents="15,5,73" info="body, back, BL"/>
+        <BoxCollisionShape position="79,-13,405" roll="12" halfExtents="15,5,73" info="body, back, BR"/>
+        <BoxCollisionShape position="0,-15,410" halfExtents="66,6,58" info="body, back, B"/>
+
+        <BoxCollisionShape position="78,32,440" roll="-18" halfExtents="18,35,85" info="body, bay2, Rwall"/>
+        <BoxCollisionShape position="75,71,440" roll="35" halfExtents="18,27,85" info="body, bay2, Rwall"/>             
+        <BoxCollisionShape position="-78,32,440" roll="18" halfExtents="18,35,85" info="body, bay2, Lwall"/>
+        <BoxCollisionShape position="-75,71,440" roll="-35" halfExtents="18,27,85" info="body, bay2, Lwall"/>             
+        <BoxCollisionShape position="0,75,435" halfExtents="72,28,90" info="body, bay2, Twall"/>
+        <BoxCollisionShape position="0,35,423" halfExtents="85,35,5" info="body, bay2, Fwall"/> 
+        <BoxCollisionShape position="0,-3,465" halfExtents="84,5,60" info="body, bay2, BottomWall"/>
+        <BoxCollisionShape position="0,78,526" halfExtents="43,17,5" info="body, bay2, Twall"/> 
+        
+        
+        <BoxCollisionShape position="0,7,80" halfExtents="23,1,34" info="HOOKBOX at 0,18,80, bottom"/>
+        <BoxCollisionShape position="0,29,80" halfExtents="23,1,34" info="HOOKBOX, top"/>
+        <BoxCollisionShape position="-22,18,80" halfExtents="1,12,34" info="HOOKBOX, left long"/>
+        <BoxCollisionShape position="0,18,80" halfExtents="1,12,34" info="HOOKBOX, center long"/>
+        <BoxCollisionShape position="22,18,80" halfExtents="1,12,34" info="HOOKBOX, right long"/>
+        <BoxCollisionShape position="0,18,113" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,91" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,69" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        <BoxCollisionShape position="0,18,47" halfExtents="23,12,1" info="HOOKBOX, wide"/> 
+        
+<!-- Following the position of the other parts collisionboxes, used to attach them to the body --> 
+<!--         <BoxCollisionShape position="-11,18,102" halfExtents="10,10,10" info="sidearmL, HOOK"/>
+        <BoxCollisionShape position="11,18,102" halfExtents="10,10,10" info="sidearmR, HOOK"/>
+        <BoxCollisionShape position="-11,18,80" halfExtents="10,10,10" info="partL, HOOK"/>
+        <BoxCollisionShape position="11,18,80" halfExtents="10,10,10" info="partR, HOOK"/>
+        <BoxCollisionShape position="-11,18,58" halfExtents="10,10,10" info="frontL, HOOK"/>
+        <BoxCollisionShape position="11,18,58" halfExtents="10,10,10" info="frontR, HOOK"/> -->
+    </collisionShapes>
+<?lua
+  include("../includes/weaponSettingsHeavyCruiserBody.oxi")
+?>
+  </SpaceShip>
+
+</Template>
+
+
+
+
+<Template name=HeavyCruiser_cameras defaults=0>
+  <SpaceShip>
+    <camerapositions>
+      <CameraPosition position="0,200, 1000" drag=true mouselook=true />
+      <CameraPosition position="0,100, 1000" drag=true mouselook=true />
+      <CameraPosition position="0,150,600" drag=true mouselook=true />
+      <CameraPosition position="0,80,-300" drag=false mouselook=false />
+      <CameraPosition position="200,80,300" drag=false mouselook=false />
+      <CameraPosition position="0,1100,60" pitch="-90" drag=false mouselook=true />
+    </camerapositions>
+  </SpaceShip>
+</Template>
+
+
+
+
+<Template name=HeavyCruiser_body_engine baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 150
+   speedback      =  40
+   speedleftright =  40
+   speedupdown    =  40
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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.7 position="-66,87,525" 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.7 position="-73,77,525" 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.7 position="-80,68,525" 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.8 position="-86,58,525" 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.7 position="-82,46,525" 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.7 position="-80,34,525" 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.7 position="-76,21,525" 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.6 position="-71,9,525" 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.7 position="66,87,525" 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.7 position="73,77,525" 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.7 position="80,68,525" 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.8 position="86,58,525" 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.7 position="82,46,525" 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.7 position="80,34,525" 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.7 position="76,21,525" 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.6 position="71,9,525" 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.6 name=bltest position="66,87,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="73,77,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,68,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="86,58,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="82,46,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,34,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.4 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="76,21,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="71,9,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-66,87,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-73,77,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,68,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-86,58,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-82,46,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.5 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,34,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.4 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-76,21,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1.2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-71,9,525" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=1 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="85,58,525" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-85,58,525" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="66,87,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="73,77,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,68,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="86,58,525" 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.6 name=bltest position="82,46,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="80,34,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="76,21,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="71,9,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-66,87,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-73,77,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,68,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-86,58,525" 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.6 name=bltest position="-82,46,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-80,34,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.7 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-76,21,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.6 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-71,9,525" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=0.5 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>
+
+
+<Template name=HeavyCruiser_sidearmL_engine baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 300
+   speedback      =  50
+   speedleftright =  50
+   speedupdown    =  50
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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=1 position="-147,35,308" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=1 position="-136,-5,308" 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.6 name=bltest position="-147,35,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-136,-5,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-147,35,308" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="-136,-5,308" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="-148,35,308" 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.6 name=bltest position="-136,-5,308" 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>
+
+
+<Template name=HeavyCruiser_sidearmR_engine baseclass=MultiStateEngine>
+  <MultiStateEngine
+   boostfactor    = 2
+
+   speedfront     = 300
+   speedback      =  50
+   speedleftright =  50
+   speedupdown    =  50
+
+   defEngineSndNormal = "sounds/Engine_low.ogg"
+   defEngineSndBoost = "sounds/Engine_high.ogg"
+
+   accelerationfront     = 10
+   accelerationbrake     = 8
+   accelerationback      =  4
+   accelerationleftright =  4
+   accelerationupdown    =  4
+  >
+    <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=1 position="147,35,308" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
+      <FadingBillboard mainstate=activity active=false scale=1 position="136,-5,308" 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.6 name=bltest position="147,35,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="136,-5,308" colour="0.2, 0.65, 1.0, 1.0" width=10 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="147,35,308" colour="0.2, 0.65, 1, 0.4" width=5 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
+      <Backlight mainstate=activity active=false scale=0.6 name=bltest position="136,-5,308" colour="0.2, 0.65, 1, 0.4" width=5 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.6 name=bltest position="147,35,308" 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.6 name=bltest position="136,-5,308" 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/trunk/data/levels/templates/enemyInvader.oxt
===================================================================
--- code/trunk/data/levels/templates/enemyInvader.oxt	(revision 9939)
+++ code/trunk/data/levels/templates/enemyInvader.oxt	(revision 9939)
@@ -0,0 +1,120 @@
+<Template name=enemyinvader>
+  <InvaderEnemy
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipescortcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 4
+
+   health            = 10
+   maxhealth         = 10
+   initialhealth     = 10
+
+   shieldhealth        = 10
+   initialshieldhealth = 10
+   maxshieldhealth     = 10
+   shieldabsorption    = 0.9
+   reloadrate          = 1
+   reloadwaittime      = 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              = 0.00001
+   linearDamping     = 0
+   angularDamping    = 0
+
+    collisiondamage = 100
+    enablecollisiondamage = true
+  >
+    <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=180 pitch=270 roll=0 scale=2 mesh="swallow_mat.mesh" />
+      <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="escortWeapon.mesh" />
+<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+
+swallow_mat.mesh
+"ghost.mesh"
+
+<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>
+<?lua
+  include("../includes/invaderWeapon.oxi")
+?>
+  </InvaderEnemy>
+</Template>
+
+<!-- <Template name=spaceshipescortcameras defaults=0>
+  <InvaderEnemy>
+    <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 />
+      <CameraPosition position="0,300,-100" direction="0, -1, 0" drag=false mouselook=true />
+    </camerapositions>
+  </InvaderEnemy>
+</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/>
+    </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, 0, 10" colour="0.2, 1.0, 0.65, 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.33 name=bltest position="-12, 0, 10" colour="0.2, 1.0, 0.65, 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.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="-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" />
+    </EffectContainer>
+
+  </MultiStateEngine>
+</Template>
Index: code/trunk/data/levels/templates/enemyInvaderShooter.oxt
===================================================================
--- code/trunk/data/levels/templates/enemyInvaderShooter.oxt	(revision 9939)
+++ code/trunk/data/levels/templates/enemyInvaderShooter.oxt	(revision 9939)
@@ -0,0 +1,120 @@
+<Template name=enemyinvadershooter>
+  <InvaderEnemyShooter
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipescortcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 4
+
+   health            = 20
+   maxhealth         = 20
+   initialhealth     = 20
+
+   shieldhealth        = 20
+   initialshieldhealth = 20
+   maxshieldhealth     = 20
+   shieldabsorption    = 0.9
+   reloadrate          = 1
+   reloadwaittime      = 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              = 100
+   linearDamping     = 0
+   angularDamping    = 0
+
+    collisiondamage = 100
+    enablecollisiondamage = true
+  >
+    <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=180 pitch=270 roll=0 scale=2 mesh="ghost.mesh" />
+      <Model position="0,0,0" yaw=180 pitch=270 roll=0 scale=2 mesh="escortWeapon.mesh" />
+<!--Model mesh="cube.mesh" mass=10 position="0,0,3" scale3D="10,4,8" />
+
+swallow_mat.mesh
+"ghost.mesh"
+
+<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>
+<?lua
+  include("../includes/invaderWeaponEnemy.oxi")
+?>
+  </InvaderEnemyShooter>
+</Template>
+
+<!-- <Template name=spaceshipescortcameras defaults=0>
+  <InvaderEnemyShooter>
+    <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 />
+      <CameraPosition position="0,300,-100" direction="0, -1, 0" drag=false mouselook=true />
+    </camerapositions>
+  </InvaderEnemyShooter>
+</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/>
+    </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, 0, 10" colour="0.2, 1.0, 0.65, 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.33 name=bltest position="-12, 0, 10" colour="0.2, 1.0, 0.65, 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.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="-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" />
+    </EffectContainer>
+
+  </MultiStateEngine>
+</Template>
Index: code/trunk/data/levels/templates/lodInformation.oxt
===================================================================
--- code/trunk/data/levels/templates/lodInformation.oxt	(revision 9938)
+++ code/trunk/data/levels/templates/lodInformation.oxt	(revision 9939)
@@ -17,8 +17,32 @@
       <MeshLodInformation mesh=turretHead.mesh enabled=false />
       <MeshLodInformation mesh=LaserBeam2.mesh enabled=false/>
+      <MeshLodInformation mesh=asteroid_ice.mesh enabled=false/>
+      <MeshLodInformation mesh=ast1.mesh  lodQuality=0.1/>
+      <MeshLodInformation mesh=ast2.mesh  lodQuality=0.1/>
+      <MeshLodInformation mesh=ast3.mesh  lodQuality=0.1/>
+      <MeshLodInformation mesh=ast4.mesh  lodQuality=0.1/>
+      <MeshLodInformation mesh=ast5.mesh  lodQuality=0.1/>
+      <MeshLodInformation mesh=ast6.mesh  lodQuality=0.1/>
 
       <!-- disable LOD for some debris meshes which caused a crash (fixed in Ogre 1.7.3) -->
       <MeshLodInformation mesh=BodyDebris1.mesh enabled=false/>
       <MeshLodInformation mesh=WingDebris2.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_body.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_frontL.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_frontR.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_partL.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_partR.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_sidearmL.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_sidearmLfront.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_sidearmR.mesh enabled=false/>
+      <MeshLodInformation mesh=HeavyCruiser_sidearmRfront.mesh enabled=false/>
+
+	  <MeshLodInformation mesh=ss_cylinder.mesh enabled=false/>
+	  <MeshLodInformation mesh=ss_chair.mesh enabled=false/>
+	  <MeshLodInformation mesh=ss_flag_room.mesh enabled=false/>
+	  <MeshLodInformation mesh=ss_wall.mesh enabled=false/>
+	  <MeshLodInformation mesh=ss_tube_twd.mesh enabled=false/>
+	  <MeshLodInformation mesh=ss_spind.mesh enabled=false/>
+	  
     </lodinformation>
   </Level>
Index: code/trunk/data/levels/templates/spaceshipAssff.oxt
===================================================================
--- code/trunk/data/levels/templates/spaceshipAssff.oxt	(revision 9938)
+++ code/trunk/data/levels/templates/spaceshipAssff.oxt	(revision 9939)
@@ -37,4 +37,6 @@
    linearDamping     = 0.7
    angularDamping    = 0.9999999
+
+   explosionSound = "sounds/Explosion2.ogg"
   >
     <engines>
@@ -82,5 +84,5 @@
    defEngineSndNormal = "sounds/Engine_low.ogg"
    defEngineSndBoost = "sounds/Engine_high.ogg"
-
+   
    accelerationfront     = 500
    accelerationbrake     = 500
Index: code/trunk/data/levels/templates/spaceshipInvader.oxt
===================================================================
--- code/trunk/data/levels/templates/spaceshipInvader.oxt	(revision 9939)
+++ code/trunk/data/levels/templates/spaceshipInvader.oxt	(revision 9939)
@@ -0,0 +1,116 @@
+<Template name=spaceshipinvader>
+  <InvaderShip
+   hudtemplate            = spaceshiphud
+   camerapositiontemplate = spaceshipescortcameras
+   spawnparticlesource    = "Orxonox/fairytwirl"
+   spawnparticleduration  = 3
+   explosionchunks        = 4
+
+   health            = 80
+   maxhealth         = 200
+   initialhealth     = 80
+
+   shieldhealth        = 35
+   initialshieldhealth = 35
+   maxshieldhealth     = 60
+   shieldabsorption    = 0.9
+   reloadrate          = 1
+   reloadwaittime      = 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              = 4200000
+   linearDamping     = 0.7
+   angularDamping    = 0.9999999
+
+    collisiondamage = 100
+    enablecollisiondamage = true
+  >
+    <engines>
+      <MultiStateEngine position=" 7.6, 0, 6" template=spaceshipinvaderengine />
+      <MultiStateEngine position="-7.6, 0, 0" template=spaceshipinvaderengine />
+    </engines>
+    <attached>
+      <Model position="0,0,0" yaw=90 pitch=0 roll=0 scale=4 mesh="escortShip.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>
+<?lua
+  include("../includes/invaderWeapon.oxi")
+?>
+  </InvaderShip>
+</Template>
+
+<Template name=spaceshipescortcameras defaults=0>
+  <InvaderShip>
+    <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 /> -->
+      <CameraPosition position="0,300,-100" direction="0, -1, 0" drag=false mouselook=true />
+    </camerapositions>
+  </InvaderShip>
+</Template>
+
+<Template name=spaceshipinvaderengine 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/>
+    </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, 0, 10" colour="0.2, 1.0, 0.65, 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.33 name=bltest position="-12, 0, 10" colour="0.2, 1.0, 0.65, 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.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="-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" />
+    </EffectContainer>
+
+  </MultiStateEngine>
+</Template>
Index: code/trunk/data/levels/turretTest.oxw
===================================================================
--- code/trunk/data/levels/turretTest.oxw	(revision 9938)
+++ code/trunk/data/levels/turretTest.oxw	(revision 9939)
@@ -1,2 +1,4 @@
+<!-- -->
+
 <LevelInfo
  name = "turret Test"
Index: code/trunk/data/levels/underAttack.oxw
===================================================================
--- code/trunk/data/levels/underAttack.oxw	(revision 9938)
+++ code/trunk/data/levels/underAttack.oxw	(revision 9939)
@@ -1,2 +1,4 @@
+<!---->
+
 <LevelInfo
  name = "Under Attack"
@@ -20,4 +22,5 @@
   </templates>
   <?lua include("includes/notifications.oxi") ?>
+  <WorldAmbientSound source="Jupiter.ogg" looping="true" playOnLoad="true" />
 
   <Scene
Index: code/trunk/data/overlays/HUD.oxo
===================================================================
--- code/trunk/data/overlays/HUD.oxo	(revision 9938)
+++ code/trunk/data/overlays/HUD.oxo	(revision 9939)
@@ -68,5 +68,5 @@
   <HUDRadar
    name          = "Radar"
-   background    = "Orxonox/Radar"
+   background    = "Orxonox/radar"
    correctAspect = true
    size          = "0.17, 0.17"
Index: code/trunk/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/trunk/data/overlays/HUDTemplates3.oxo	(revision 9938)
+++ code/trunk/data/overlays/HUDTemplates3.oxo	(revision 9939)
@@ -108,17 +108,24 @@
     />
 
-    <HUDRadar
-     name          = "Radar"
-     background    = "Orxonox/Radar"
-     correctaspect = true
-     size          = "0.17, 0.17"
-     position      = "1.0, 1.0"
-     pickpoint     = "1.0, 1.0"
-     rotation      = 0
-     sensitivity   = 1.0
-     halfDotSizeDistance = 3000
-     maximumDotSize      = 0.1
+	<HUDRadar
+     name          			= "Radar"
+     background    			= "Orxonox/Radar3D"
+     material2D    			= "Orxonox/Radar"
+     material3DMiddle   	= "Orxonox/Radar3D"
+     material3DFront		= "Orxonox/Radar3DFront"
+     material3DBack			= "Orxonox/Radar3DBack"
+     correctaspect 			= true
+     size          			= "0.17, 0.17"
+     position      			= "1.0, 1.0"
+     pickpoint     			= "1.0, 1.0"
+     rotation      			= 0
+     sensitivity   			= 1.0
+     halfDotSizeDistance 	= 3000
+     detectionLimit 		= 10000.0
+     maximumDotSize 		= 0.1
+     maximumDotSize3D      	= 0.06
+     mapAngle3D   			= 0.6435011
     />
-
+    
     <HUDTimer
      name     = "Timer"
Index: code/trunk/data/overlays/InvaderHUD.oxo
===================================================================
--- code/trunk/data/overlays/InvaderHUD.oxo	(revision 9939)
+++ code/trunk/data/overlays/InvaderHUD.oxo	(revision 9939)
@@ -0,0 +1,108 @@
+<Template name="InvaderHUD">
+  <OverlayGroup name="InvaderHUD" scale = "1, 1">
+    <InvaderHUDinfo
+     position  = "0.14, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showlives     = true
+     showlevel     = false
+     showpoints     = false
+    />
+    <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   = "Lives:   "
+    />
+
+    <OverlayText
+     position  = "0.02, 0.055"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     caption   = "Level: "
+    />
+
+    <InvaderHUDinfo
+     position  = "0.14, 0.055"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showlives     = false
+     showlevel     = true
+     showpoints     = false
+    />
+
+    <OverlayText
+     position  = "0.02, 0.1"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     caption   = "Points: "
+    />
+
+    <InvaderHUDinfo
+     position  = "0.14, 0.1"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showlives     = false
+     showlevel     = false
+     showpoints     = true
+    />
+
+    <InvaderHUDinfo
+     position  = "0.25, 0.1"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showMultiplier = true
+    />
+  </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
+     textsize          = 0.039
+     textoffset        = "0.315, 0.05"
+     textpickpoint     = "0, 0"
+     textalign         = "right"
+     correctaspect     = false
+     textcorrectaspect = false
+    >
+      <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/trunk/data/overlays/debug.oxo
===================================================================
--- code/trunk/data/overlays/debug.oxo	(revision 9938)
+++ code/trunk/data/overlays/debug.oxo	(revision 9939)
@@ -32,4 +32,19 @@
    name     = "RTRText"
    position = "0.3, 0.09"
+   font     = "Monofur"
+   textsize = 0.03
+  />
+  
+  <OverlayText
+   name     = "PositionTextCaption"
+   position = "0.03, 0.13"
+   font     = "Monofur"
+   caption  = "Position: "
+   textsize = 0.03
+  />
+  
+  <DebugPositionText
+   name     = "PositionText"
+   position = "0.3, 0.13"
    font     = "Monofur"
    textsize = 0.03
Index: code/trunk/src/libraries/util/Math.cc
===================================================================
--- code/trunk/src/libraries/util/Math.cc	(revision 9938)
+++ code/trunk/src/libraries/util/Math.cc	(revision 9939)
@@ -23,5 +23,5 @@
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      ...
+ *      Wolfgang Roenninger
  *
  */
@@ -147,5 +147,5 @@
 
     /**
-        @brief Gets the 2D viewing direction (up/down, left/right) to the position of the other object, multiplied with the viewing distance to the object (0° = 0, 180° = 1).
+        @brief Gets the 2D viewing direction (up/down, left/right) to the position of the other object, multiplied with the viewing distance to the object (0� = 0, 180� = 1).
         @param myposition My position
         @param mydirection My viewing direction
@@ -189,4 +189,152 @@
         else
             return orxonox::Vector2( -sin_value * radius, cos_value * radius);
+    }
+
+
+    /**
+            @brief Gets the 2D project vector for the 3D Radar .
+            @param myposition My position
+            @param mydirection My viewing direction
+            @param myorthonormal My orthonormalvector (pointing upwards through my head)
+            @param otherposition The position of the other object
+            @param mapangle The angle between line of sight on screen and the 3Dmap-x/z-plain in radian
+            @param detectionlimit The limit in which objects are shown on the map
+            @return The viewing direction
+    */
+    orxonox::Vector2 get3DProjection(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float mapangle, const float detectionlimit)
+    {
+    	// Orxonox Vectors: x_direction you are looking, y_direction points up, z_direction points to the right
+    	orxonox::Vector3 distance = otherposition - myposition;	// get vector from Ship to object
+
+    	// new coordinate system:	x_axsis:	mydirection		(points front)
+    	//							y_axsis:	myorthonormal	(points up)
+    	//							z_axsis:	myside			(points right)
+
+    	orxonox::Vector3 myside = mydirection.crossProduct(myorthonormal); // get 3. base vector
+
+    	distance = 4*distance / detectionlimit; // shrink vector on map
+    	if(distance.length() > 1.0f) // if object would wander outside of the map
+    	    	{
+    	    	distance = distance / distance.length();
+    	   		}
+
+    	// perform a coordinate transformation to get distance in relation of the position of the ship
+    	orxonox::Vector3 distanceShip = getTransformedVector(distance, mydirection, myorthonormal, myside);
+
+    	// calculate 2D vector on the map (with angle between x/z - plain and line of sight)
+    	float xcoordinate = distanceShip.z; // z; cause x direction on screen is to the right side
+    	float ycoordinate = distanceShip.x*sin(mapangle)+distanceShip.y*cos(mapangle);
+    	return orxonox::Vector2(xcoordinate , ycoordinate);
+    }
+
+    /**
+               @brief Gets if a object is over the x/z - plain on map
+               @param myposition My position
+               @param mydirection My viewing direction
+               @param myorthonormal My orthonormalvector (pointing upwards through my head)
+               @param otherposition The position of the other object
+               @param mapangle The angle you look on the 3Dmap in radian
+               @return If distancevector to the other object has a positive y-coordinate
+
+               Examples:
+                Returns true if object is over x/z - plain
+                Returns false if object is below x/z -plain
+    */
+    bool isObjectHigherThanShipOnMap(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float mapangle)
+    {
+    	// Orxonox Vectors: x_direction you are looking, y_direction points up, z_direction points to the right
+    	orxonox::Vector3 distance = otherposition - myposition;
+
+    	// new coordinate system:	x_axsis:	mydirection		(points front)
+    	//							y_axsis:	myorthonormal	(points up)
+       	//							z_axsis:	myside			(points right)
+
+       	orxonox::Vector3 myside = mydirection.crossProduct(myorthonormal); // get vector from Ship to object
+
+
+       	// perform a coordinate transformation to get distance in relation of the position of the ship
+       	orxonox::Vector3 distanceShip = getTransformedVector(distance, mydirection, myorthonormal, myside);
+
+       	if(distanceShip.y >= 0)
+       		return true;
+       	else
+       		return false;
+    }
+
+    /**
+                   @brief A value between 0 and 10, in order how other object is in front or in back
+                   @param myposition My position
+               	   @param mydirection My viewing direction
+               	   @param myorthonormal My orthonormalvector (pointing upwards through my head)
+               	   @param otherposition The position of the other object
+               	   @param detectionlimit The limit in which objects are shown on the map
+                   @return value between 0 and 100
+    */
+    int determineMap3DZOrder(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float detectionlimit)
+    {
+    	orxonox::Vector3 distance = otherposition - myposition;	// get vector from Ship to object
+    	orxonox::Vector3 myside = mydirection.crossProduct(myorthonormal); 	// get vector to the side
+
+    	distance = 4*distance / detectionlimit; // shrink vector on map
+    	if(distance.length() > 1.0f) // if object would wander outside of the map
+    	{
+    		distance = distance / distance.length();
+    	}
+
+    	// perform a coordinate transformation to get distance in relation of the position of the ship
+       	orxonox::Vector3 distanceShip = getTransformedVector(distance, mydirection, myorthonormal, myside);
+
+       	return (int) 50 - 100*distanceShip.x;
+    }
+
+
+    /**
+                @brief Gets the new vector after a coordinate transformation
+                @param distance Vector which will be transformed
+                @param mydirection New x basevector
+                @param myorthonormal New y basevector
+                @param otherposition New z basevector
+                @return direction in the new coordinates
+
+                x is vector in old coordinates
+                y is vector in old coordinates
+                T is transform matrix with:
+                	T = (t1 , t2 , t3)
+                	t1 = mydirection
+                	t2 = myorthonormal
+                	t3 = myside
+
+                y = T^(-1)*x
+            */
+    orxonox::Vector3 getTransformedVector(const orxonox::Vector3& distance, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& myside)
+    {
+    	// inverse of the transform matrix
+    	float determinant = +mydirection.x * (myorthonormal.y*myside.z - myside.y*myorthonormal.z)
+    						-mydirection.y * (myorthonormal.x*myside.z - myorthonormal.z*myside.x)
+    						+mydirection.z * (myorthonormal.x*myside.y - myorthonormal.y*myside.x);
+    	float invdet = 1/determinant;
+
+    	// transform matrix
+    	orxonox::Vector3 xinvtransform;
+    	orxonox::Vector3 yinvtransform;
+    	orxonox::Vector3 zinvtransform;
+
+    	xinvtransform.x = (myorthonormal.y * myside.z        - myside.y        * myorthonormal.z)*invdet;
+    	xinvtransform.y = (mydirection.z   * myside.y        - mydirection.y   * myside.z       )*invdet;
+    	xinvtransform.z = (mydirection.y   * myorthonormal.z - mydirection.z   * myorthonormal.y)*invdet;
+    	yinvtransform.x = (myorthonormal.z * myside.x        - myorthonormal.x * myside.z       )*invdet;
+    	yinvtransform.y = (mydirection.x   * myside.z        - mydirection.z   * myside.x       )*invdet;
+    	yinvtransform.z = (myorthonormal.x * mydirection.z   - mydirection.x   * myorthonormal.z)*invdet;
+    	zinvtransform.x = (myorthonormal.x * myside.y        - myside.x        * myorthonormal.y)*invdet;
+    	zinvtransform.y = (myside.x        * mydirection.y   - mydirection.x   * myside.y       )*invdet;
+    	zinvtransform.z = (mydirection.x   * myorthonormal.y - myorthonormal.x * mydirection.y  )*invdet;
+
+    	// coordinate transformation
+    	orxonox::Vector3 distanceShip;
+    	distanceShip.x = xinvtransform.x * distance.x + yinvtransform.x * distance.y + zinvtransform.x * distance.z;
+    	distanceShip.y = xinvtransform.y * distance.x + yinvtransform.y * distance.y + zinvtransform.y * distance.z;
+    	distanceShip.z = xinvtransform.z * distance.x + yinvtransform.z * distance.y + zinvtransform.z * distance.z;
+
+    	return distanceShip;
     }
 
Index: code/trunk/src/libraries/util/Math.h
===================================================================
--- code/trunk/src/libraries/util/Math.h	(revision 9938)
+++ code/trunk/src/libraries/util/Math.h	(revision 9939)
@@ -23,5 +23,5 @@
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      ...
+ *      Wolfgang Roenninger
  *
  */
@@ -92,4 +92,8 @@
     _UtilExport orxonox::Vector2 get2DViewdirection(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition);
     _UtilExport orxonox::Vector2 get2DViewcoordinates(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition);
+    _UtilExport orxonox::Vector2 get3DProjection(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float mapangle, const float detectionlimit);
+    _UtilExport bool isObjectHigherThanShipOnMap(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float mapangle);
+    _UtilExport int determineMap3DZOrder(const orxonox::Vector3& myposition, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& otherposition, const float detectionlimit);
+    _UtilExport orxonox::Vector3 getTransformedVector(const orxonox::Vector3& distance, const orxonox::Vector3& mydirection, const orxonox::Vector3& myorthonormal, const orxonox::Vector3& myside);
     _UtilExport orxonox::Vector3 getPredictedPosition(const orxonox::Vector3& myposition, float projectilespeed, const orxonox::Vector3& targetposition, const orxonox::Vector3& targetvelocity);
 
Index: code/trunk/src/modules/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/CMakeLists.txt	(revision 9938)
+++ code/trunk/src/modules/CMakeLists.txt	(revision 9939)
@@ -39,2 +39,3 @@
 ADD_SUBDIRECTORY(docking)
 ADD_SUBDIRECTORY(towerdefense)
+ADD_SUBDIRECTORY(invader)
Index: code/trunk/src/modules/docking/Dock.cc
===================================================================
--- code/trunk/src/modules/docking/Dock.cc	(revision 9938)
+++ code/trunk/src/modules/docking/Dock.cc	(revision 9939)
@@ -69,4 +69,6 @@
         XMLPortObject(Dock, DockingAnimation, "animations", addAnimation, getAnimation, xmlelement, mode);
         XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
+        XMLPortEventSink(Dock, BaseObject, "undocking", undocking, xmlelement, mode);
+
     }
 
@@ -76,5 +78,53 @@
 
         XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
-    }
+
+        XMLPortEventSink(Dock, BaseObject, "undocking", undocking, xmlelement, mode);
+    }
+
+
+    bool Dock::undocking(bool bTriggered, BaseObject* trigger)
+    {
+
+    	PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
+    	PlayerInfo* player = NULL;
+
+    	// Check whether it is a player trigger and extract pawn from it
+    	if(pTrigger != NULL)
+    	{
+    	      if(!pTrigger->isForPlayer()) {  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+    	      orxout(verbose, context::docking) << "Docking:execute PlayerTrigger was not triggered by a player.." << endl;
+    	      return false;
+    	      }
+    	      player = pTrigger->getTriggeringPlayer();
+    	}
+    	else
+    	{
+    	      orxout(verbose, context::docking) << "Docking::execute Not a player trigger, can't extract pawn from it.." << endl;
+    	      return false;
+    	}
+    	if(player == NULL)
+    	{
+    	      orxout(verbose, context::docking) << "Docking::execute Can't retrieve PlayerInfo from Trigger. (" << trigger->getIdentifier()->getName() << ")" << endl;
+    	      return false;
+    	}
+
+ 	    if(bTriggered)
+    	{
+    	      // Add player to this Docks candidates
+    	      candidates_.insert(player);
+
+    	      // Show docking dialog
+    	      this->showUndockingDialogHelper(player);
+    	}
+    	else
+    	{
+    	      // Remove player from candidates list
+    	      candidates_.erase(player);
+    	}
+
+    	return true;
+    }
+
+
 
     bool Dock::execute(bool bTriggered, BaseObject* trigger)
@@ -119,4 +169,22 @@
         return true;
     }
+
+
+    void Dock::showUndockingDialogHelper(PlayerInfo* player)
+        {
+            assert(player);
+
+            if(!player->isHumanPlayer())
+                return;
+
+            if(GameMode::isMaster())
+            {
+                if(GameMode::showsGraphics())
+                    GUIManager::showGUI("UndockingDialog");
+            }
+            else
+                callStaticNetworkFunction(Dock::showDockingDialog, player->getClientID());
+
+        }
 
     void Dock::showDockingDialogHelper(PlayerInfo* player)
@@ -177,4 +245,5 @@
         if (animations_.empty())
             return dockingAnimationFinished(player);
+
         else
             DockingAnimation::invokeAnimation(true, player, animations_);
Index: code/trunk/src/modules/docking/Dock.h
===================================================================
--- code/trunk/src/modules/docking/Dock.h	(revision 9938)
+++ code/trunk/src/modules/docking/Dock.h	(revision 9939)
@@ -62,4 +62,5 @@
             // Trigger interface
             bool execute(bool bTriggered, BaseObject* trigger);
+            bool undocking(bool bTriggered, BaseObject* trigger);
 
             // XML interface
@@ -85,4 +86,6 @@
             void dock()
                 { this->dock(HumanController::getLocalControllerSingleton()->getPlayer()); }
+            void undock()
+                { this->undock(HumanController::getLocalControllerSingleton()->getPlayer()); }
             static unsigned int getNumberOfActiveDocks();
             static Dock* getActiveDockAtIndex(unsigned int index);
@@ -95,4 +98,5 @@
             // Network functions
             void showDockingDialogHelper(PlayerInfo* player);
+            void showUndockingDialogHelper(PlayerInfo* player);
             static void showDockingDialog();
 
Index: code/trunk/src/modules/docking/MoveToDockingTarget.cc
===================================================================
--- code/trunk/src/modules/docking/MoveToDockingTarget.cc	(revision 9938)
+++ code/trunk/src/modules/docking/MoveToDockingTarget.cc	(revision 9939)
@@ -66,6 +66,9 @@
     {
         //TODO: Investigate strange things...
-        this->parent_->detach((WorldEntity*)player->getControllableEntity());
+    	//this->parent_->detach((WorldEntity*)player->getControllableEntity());
 
+    	//TODO: Check the issue with this detach call.
+    	//I have removed the line because the detach call only caused a warning and terminated. And because I didn't find a attach call either.
+    	//Didn't find the need for the line.
         this->parent_->undockingAnimationFinished(player);
         return true;
Index: code/trunk/src/modules/invader/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/invader/CMakeLists.txt	(revision 9939)
+++ code/trunk/src/modules/invader/CMakeLists.txt	(revision 9939)
@@ -0,0 +1,22 @@
+SET_SOURCE_FILES(Invader_SRC_FILES
+BUILD_UNIT InvaderBuildUnit.cc
+  Invader.cc
+  InvaderCenterPoint.cc
+  InvaderShip.cc
+  InvaderEnemy.cc
+  InvaderEnemyShooter.cc
+  InvaderWeapon.cc
+  InvaderWeaponEnemy.cc
+  InvaderHUDinfo.cc
+END_BUILD_UNIT
+)
+
+ORXONOX_ADD_LIBRARY(Invader
+  MODULE
+  FIND_HEADER_FILES
+  LINK_LIBRARIES
+    orxonox
+    overlays
+    weapons
+  SOURCE_FILES ${Invader_SRC_FILES}
+)
Index: code/trunk/src/modules/invader/Invader.cc
===================================================================
--- code/trunk/src/modules/invader/Invader.cc	(revision 9939)
+++ code/trunk/src/modules/invader/Invader.cc	(revision 9939)
@@ -0,0 +1,186 @@
+/*
+ *   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 Invader.cc
+    @brief Implementation of the Invader class.
+*/
+
+#include "Invader.h"
+
+#include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+
+#include "gamestates/GSLevel.h"
+#include "chat/ChatManager.h"
+
+// ! HACK
+#include "infos/PlayerInfo.h"
+
+#include "InvaderCenterPoint.h"
+#include "InvaderShip.h"
+#include "InvaderEnemy.h"
+#include "InvaderEnemyShooter.h"
+
+#include "core/command/ConsoleCommand.h"
+#include "worldentities/BigExplosion.h"
+
+namespace orxonox
+{
+    RegisterUnloadableClass(Invader);
+
+    Invader::Invader(Context* context) : Deathmatch(context)
+    {
+        RegisterObject(Invader);
+        this->center_ = 0;
+        init();
+        this->setHUDTemplate("InvaderHUD");
+    }
+
+    void Invader::init()
+    {
+        bEndGame = false;
+        lives = 3;
+        level = 1;
+        point = 0;
+        bShowLevel = false;
+        multiplier = 1;
+        b_combo = false;
+        // spawn enemy every 3.5 seconds
+        enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Invader::spawnEnemy, this)));
+        comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Invader::comboControll, this)));
+    }
+
+    void Invader::levelUp()
+    {
+        level++;
+        if (getPlayer() != NULL)
+        {   
+            for (int i = 0; i < 7; i++)
+            {
+                WeakPtr<BigExplosion> chunk = new BigExplosion(this->center_->getContext());
+                chunk->setPosition(Vector3(600, 0, 100 * i - 300));
+                chunk->setVelocity(Vector3(1000, 0, 0));  //player->getVelocity()
+                chunk->setScale(20);
+            }
+        }
+        addPoints(multiplier * 42);
+        multiplier *= 2;
+        toggleShowLevel();
+        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Invader::toggleShowLevel, this)));
+    }
+
+    WeakPtr<InvaderShip> Invader::getPlayer()
+    {
+        if (player == NULL)
+        {
+            for (ObjectList<InvaderShip>::iterator it = ObjectList<InvaderShip>::begin(); it != ObjectList<InvaderShip>::end(); ++it)
+                player = *it;
+        }
+        return player;
+    }
+
+    void Invader::spawnEnemy()
+    {
+        if (getPlayer() == NULL)
+            return;
+        srand(player->getPosition().x + player->getPosition().y);
+        for (int i = 0; i < (3*log10(level) + 1); i++)
+        {
+            WeakPtr<InvaderEnemy> newPawn;
+            if (rand() % 42/(1 + level*level) == 0)
+            {
+                newPawn = new InvaderEnemyShooter(this->center_->getContext());
+                newPawn->addTemplate("enemyinvadershooter");
+            }
+            else
+            {
+                newPawn = new InvaderEnemy(this->center_->getContext());
+                newPawn->addTemplate("enemyinvader");
+            }
+            newPawn->setPlayer(player);
+            newPawn->level = level;
+            // spawn enemy at random points in front of player.
+            newPawn->setPosition(player->getPosition() + Vector3(500 + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
+        }
+    }
+
+    void Invader::costLife()
+    {
+        lives--;
+        multiplier = 1;
+        // end the game in 30 seconds.
+        if (lives <= 0)
+            enemySpawnTimer.setTimer(30.0f, false, createExecutor(createFunctor(&Invader::end, this)));
+    };
+
+    void Invader::comboControll()
+    {
+        if (b_combo)
+            multiplier++;
+        // if no combo was performed before, reset multiplier
+        else
+            multiplier = 1;
+        b_combo = false;
+    }
+
+    void Invader::start()
+    {
+        init();
+        // Set variable to temporarily force the player to spawn.
+        this->bForceSpawn_ = true;
+
+        if (this->center_ == NULL)  // abandon mission!
+        {
+            orxout(internal_error) << "Invader: No Centerpoint specified." << endl;
+            GSLevel::startMainMenu();
+            return;
+        }
+        // Call start for the parent class.
+        Deathmatch::start();
+    }
+    void Invader::addPoints(int numPoints)
+    {
+        if (!bEndGame)
+        {
+            point += numPoints * multiplier;
+            b_combo = true;
+        }
+    }
+
+    void Invader::end()
+    {
+        // DON'T CALL THIS!
+        //      Deathmatch::end();
+        // It will misteriously crash the game!
+        // Instead startMainMenu, this won't crash.
+        GSLevel::startMainMenu();
+    }
+}
Index: code/trunk/src/modules/invader/Invader.h
===================================================================
--- code/trunk/src/modules/invader/Invader.h	(revision 9939)
+++ code/trunk/src/modules/invader/Invader.h	(revision 9939)
@@ -0,0 +1,93 @@
+/*
+ *   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 Invader.h
+    @brief Gametype.
+    @ingroup Invader
+*/
+
+#ifndef _Invader_H__
+#define _Invader_H__
+
+#include "invader/InvaderPrereqs.h"
+
+#include "gametypes/Deathmatch.h"
+
+#include "InvaderCenterPoint.h"
+
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+
+    class _InvaderExport Invader : public Deathmatch
+    {
+        public:
+            Invader(Context* context);
+
+            virtual void start();
+            virtual void end();
+
+            void spawnEnemy();
+
+            void setCenterpoint(InvaderCenterPoint* center)
+            { this->center_ = center; }
+
+            int getLives(){return this->lives;}
+            int getLevel(){return this->level;}
+            int getPoints(){return this->point;}
+            int getMultiplier(){return this->multiplier;}
+
+            void costLife();
+            void levelUp();
+            void addPoints(int numPoints);
+            // checks if multiplier should be reset.
+            void comboControll();
+            void init();
+            int lives;
+            int multiplier;
+            bool bEndGame;
+            bool bShowLevel;
+        private:
+            void toggleShowLevel(){bShowLevel = !bShowLevel;}
+            WeakPtr<InvaderShip> getPlayer();
+            WeakPtr<InvaderCenterPoint> center_;
+            WeakPtr<InvaderShip> player;
+
+            Timer enemySpawnTimer;
+            Timer comboTimer;
+            Timer showLevelTimer;
+            //Context* context;
+            int level;
+            int point;
+            bool b_combo;
+    };
+}
+
+#endif /* _Invader_H__ */
Index: code/trunk/src/modules/invader/InvaderCenterPoint.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderCenterPoint.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderCenterPoint.cc	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderCenterPoint.cc
+    @brief Implementation of the InvaderCenterPoint class.
+*/
+
+#include "InvaderCenterPoint.h"
+
+#include "core/CoreIncludes.h"
+
+#include "Invader.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderCenterPoint);
+
+    InvaderCenterPoint::InvaderCenterPoint(Context* context) : StaticEntity(context)
+    {
+        RegisterObject(InvaderCenterPoint);
+
+        this->checkGametype();
+    }
+
+    void InvaderCenterPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(InvaderCenterPoint, XMLPort, xmlelement, mode);
+    }
+
+    void InvaderCenterPoint::changedGametype()
+    {
+        SUPER(InvaderCenterPoint, changedGametype);
+
+        // Check, whether it's still Invader.
+        this->checkGametype();
+    }
+
+    void InvaderCenterPoint::checkGametype()
+    {
+        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Invader)))
+        {
+            Invader* InvaderGametype = orxonox_cast<Invader*>(this->getGametype().get());
+            InvaderGametype->setCenterpoint(this);
+        }
+    }
+}
Index: code/trunk/src/modules/invader/InvaderCenterPoint.h
===================================================================
--- code/trunk/src/modules/invader/InvaderCenterPoint.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderCenterPoint.h	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderCenterPoint.h
+    @brief Declaration of the InvaderCenterPoint class.
+    @ingroup Invader
+*/
+
+#ifndef _InvaderCenterPoint_H__
+#define _InvaderCenterPoint_H__
+
+#include "invader/InvaderPrereqs.h"
+
+#include "worldentities/StaticEntity.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderCenterPoint : public StaticEntity
+    {
+        public:
+            InvaderCenterPoint(Context* context); //checks whether the gametype is actually Invader.
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+            virtual void changedGametype(); //!< Is called when the gametype has changed.
+        private:
+            void checkGametype();
+
+    };
+}
+
+#endif /* _InvaderCenterPoint_H__ */
Index: code/trunk/src/modules/invader/InvaderEnemy.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemy.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderEnemy.cc	(revision 9939)
@@ -0,0 +1,87 @@
+/*
+ *   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 InvaderEnemy.h
+    @brief Declaration of the InvaderEnemy class.
+*/
+
+#include "invader/InvaderPrereqs.h"
+#include "InvaderEnemy.h"
+#include "InvaderShip.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderEnemy);
+
+    InvaderEnemy::InvaderEnemy(Context* context) : Pawn(context)
+    {
+        RegisterObject(InvaderEnemy);
+        enableCollisionCallback();
+        lifetime = 0;
+    }
+
+    void InvaderEnemy::tick(float dt)
+    {
+        lifetime += dt;
+        // die after 5 seconds.
+        if (lifetime > 5000)
+            removeHealth(2000);
+
+        if (player != NULL)
+        {
+            float newZ = 2/(pow(abs(getPosition().x - player->getPosition().x) * 0.01, 2) + 1) * (player->getPosition().z - getPosition().z);
+            setVelocity(Vector3(1000 - level * 100 , 0, newZ));
+        }
+        SUPER(InvaderEnemy, tick, dt);
+    }
+
+    inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    {
+        if(orxonox_cast<InvaderShip*>(otherObject))
+            removeHealth(2000);
+        return false;
+    }
+
+    WeakPtr<Invader> InvaderEnemy::getGame()
+    {
+        if (game == NULL)
+        {
+            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
+                game = *it;
+        }
+        return game;
+    }
+
+    void InvaderEnemy::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
+    {
+        Pawn::damage(damage, healthdamage, shielddamage, originator);
+        if (getGame() && orxonox_cast<InvaderShip*>(originator) != NULL && getHealth() <= 0)
+            getGame()->addPoints(42);
+    }
+}
Index: code/trunk/src/modules/invader/InvaderEnemy.h
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemy.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderEnemy.h	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderEnemy.h
+    @brief Declaration of the InvaderEnemy class.
+*/
+
+#ifndef _InvaderEnemy_H__
+#define _InvaderEnemy_H__
+
+#include "invader/InvaderPrereqs.h"
+
+#include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderEnemy : public Pawn
+    {
+        public:
+            InvaderEnemy(Context* context);
+
+            virtual void tick(float dt);
+            virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
+            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
+            virtual void setPlayer(WeakPtr<InvaderShip> player){this->player = player;}
+
+            int level;
+        protected:
+            WeakPtr<Invader> getGame();
+            WeakPtr<Invader> game;
+            WeakPtr<InvaderShip> player;
+            Camera* camera;
+            bool isFireing;
+            float speed, damping;
+            float lastTimeFront, lastTimeLeft;
+            float lifetime;
+            struct Velocity
+            {
+                float x;
+                float y;
+            } velocity, desiredVelocity;
+
+    };
+}
+
+#endif /* _InvaderEnemy_H__ */
Index: code/trunk/src/modules/invader/InvaderEnemyShooter.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemyShooter.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderEnemyShooter.cc	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderEnemyShooter.h
+    @brief Declaration of the InvaderEnemyShooter class.
+*/
+
+#include "invader/InvaderPrereqs.h"
+#include "InvaderEnemyShooter.h"
+// #include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderEnemyShooter);
+
+    InvaderEnemyShooter::InvaderEnemyShooter(Context* context) : InvaderEnemy(context)
+    {
+        RegisterObject(InvaderEnemyShooter);
+        enableCollisionCallback();
+        lifetime = 0;
+        // shoot every second
+        shootTimer.setTimer(1.0f, true, createExecutor(createFunctor(&InvaderEnemyShooter::shoot, this)));
+    }
+
+    void InvaderEnemyShooter::tick(float dt)
+    {
+        lifetime += dt;
+        // die after 20 seconds.
+        if (lifetime > 20000)
+            removeHealth(2000);
+
+        if (player != NULL)
+        {
+            float distPlayer = player->getPosition().z - getPosition().z;
+            // orxout() << "i'm different!" << endl;
+            float newZ = 2/(pow(abs(getPosition().x - player->getPosition().x) * 0.01, 2) + 1) * distPlayer;
+            setVelocity(Vector3(950 - abs(distPlayer), 0, newZ));
+        }
+        Pawn::tick(dt);
+    }
+
+    void InvaderEnemyShooter::shoot()
+    {
+        ControllableEntity::fire(0);
+    }
+
+    void InvaderEnemyShooter::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
+    {
+        Pawn::damage(damage, healthdamage, shielddamage, originator);
+        if (getGame() && orxonox_cast<InvaderShip*>(originator) != NULL && getHealth() <= 0)
+            getGame()->addPoints(3*42);
+    }
+}
Index: code/trunk/src/modules/invader/InvaderEnemyShooter.h
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemyShooter.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderEnemyShooter.h	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderEnemyShooter.h
+    @brief Declaration of the InvaderEnemyShooter class.
+*/
+
+#ifndef _InvaderEnemyShooter_H__
+#define _InvaderEnemyShooter_H__
+
+#include "invader/InvaderPrereqs.h"
+
+#include "invader/InvaderEnemy.h"
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderEnemyShooter : public InvaderEnemy
+    {
+        public:
+            InvaderEnemyShooter(Context* context);
+
+            virtual void tick(float dt);
+            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
+        protected:
+            void shoot();
+            Timer shootTimer;
+
+    };
+}
+
+#endif /* _InvaderEnemyShooter_H__ */
Index: code/trunk/src/modules/invader/InvaderHUDinfo.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderHUDinfo.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderHUDinfo.cc	(revision 9939)
@@ -0,0 +1,137 @@
+/*
+ *   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
+ *
+ */
+
+#include "InvaderHUDinfo.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+// #include "Invader.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderHUDinfo);
+
+    InvaderHUDinfo::InvaderHUDinfo(Context* context) : OverlayText(context)
+    {
+        RegisterObject(InvaderHUDinfo);
+
+        this->InvaderGame = 0;
+        this->bShowLives_ = false;
+        this->bShowLevel_ = false;
+        this->bShowPoints_ = false;
+        this->bShowMultiplier_ = false;
+    }
+
+    void InvaderHUDinfo::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(InvaderHUDinfo, XMLPort, xmlelement, mode);
+
+        XMLPortParam(InvaderHUDinfo, "showlives",     setShowLives,     getShowLives,     xmlelement, mode).defaultValues(false);
+        XMLPortParam(InvaderHUDinfo, "showPoints",     setShowPoints,     getShowPoints,     xmlelement, mode).defaultValues(false);
+        XMLPortParam(InvaderHUDinfo, "showLevel",     setShowLevel,     getShowLevel,     xmlelement, mode).defaultValues(false);
+        XMLPortParam(InvaderHUDinfo, "showMultiplier",     setShowMultiplier,     getShowMultiplier,     xmlelement, mode).defaultValues(false);
+    }
+
+    void InvaderHUDinfo::tick(float dt)
+    {
+        SUPER(InvaderHUDinfo, tick, dt);
+
+        if (this->InvaderGame)
+        {
+            if (this->bShowLives_)
+            {
+                const std::string& lives = multi_cast<std::string>(this->InvaderGame->getLives());
+                this->setCaption(lives);
+            }
+            else if(this->bShowLevel_)
+            {
+                const std::string& Level = multi_cast<std::string>(this->InvaderGame->getLevel());
+                if (this->InvaderGame->lives <= 0)
+                {
+                    setPosition(Vector2(0.1, 0.65));
+                    this->setCaption("Game ends in 30 seconds.\nPress (e)xit / (q)uit to go to the main menu.\nTo restart fly out of the screen!");
+                    setTextSize(0.05);
+                    this->InvaderGame->bEndGame = true;
+                }
+                else if (this->InvaderGame->bShowLevel)
+                {
+                    setTextSize(0.1);
+                    setPosition(Vector2(0.3, 0.55));
+                    std::stringstream sstm;
+                    sstm << "Level " << Level;
+                    this->setCaption(sstm.str()); // + level
+                }
+                else
+                {
+                    setTextSize(0.04);
+                    setPosition(Vector2(0.14, 0.055));
+                    this->setCaption(Level);
+                }
+            }
+            else if(this->bShowPoints_)
+            {
+                const std::string& points = multi_cast<std::string>(this->InvaderGame->getPoints());
+                if (this->InvaderGame->lives <= 0)
+                {
+                    setTextSize(0.2);
+                    setPosition(Vector2(0.1, 0.25));
+                    this->setCaption("Final score:\n" + points);
+                    this->setColour(ColourValue(1, 0, 0, 1));
+                }
+                else
+                {
+                    setTextSize(0.04);
+                    setPosition(Vector2(0.14, 0.1));
+                    this->setColour(ColourValue(1, 1, 1, 1));
+                    this->setCaption(points);
+                }
+            }
+            else if(this->bShowMultiplier_)
+            {
+                int mult = this->InvaderGame->getMultiplier();
+                const std::string& Multiplier = "X " + multi_cast<std::string>(mult);
+                this->setCaption(Multiplier);
+                this->setColour(ColourValue(1, 0, 0, clamp(float(mult * 0.1), 0.0f, 1.0f)));
+                this->setTextSize(clamp(float(mult * 0.1), 0.0f, 1.0f) * 0.01 + 0.04);
+            }
+        }
+    }
+
+    void InvaderHUDinfo::changedOwner()
+    {
+        SUPER(InvaderHUDinfo, changedOwner);
+
+        if (this->getOwner() && this->getOwner()->getGametype())
+        {
+            this->InvaderGame = orxonox_cast<Invader*>(this->getOwner()->getGametype().get());
+        }
+        else
+        {
+            this->InvaderGame = 0;
+        }
+    }
+}
Index: code/trunk/src/modules/invader/InvaderHUDinfo.h
===================================================================
--- code/trunk/src/modules/invader/InvaderHUDinfo.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderHUDinfo.h	(revision 9939)
@@ -0,0 +1,75 @@
+/*
+ *   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
+ *
+ */
+
+#ifndef _InvaderHUDinfo_H__
+#define _InvaderHUDinfo_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
+
+namespace orxonox
+{
+    class _OverlaysExport InvaderHUDinfo : public OverlayText, public Tickable
+    {
+        public:
+            InvaderHUDinfo(Context* context);
+
+            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void changedOwner();
+
+            inline void setShowLives(bool value)
+                { this->bShowLives_ = value; }
+            inline bool getShowLives() const
+                { return this->bShowLives_; }
+
+            inline void setShowLevel(bool value)
+                { this->bShowLevel_ = value; }
+            inline bool getShowLevel() const
+                { return this->bShowLevel_; }
+
+            inline void setShowPoints(bool value)
+                { this->bShowPoints_ = value; }
+            inline bool getShowPoints() const
+                { return this->bShowPoints_; }
+
+            inline void setShowMultiplier(bool value)
+                { this->bShowMultiplier_ = value; }
+            inline bool getShowMultiplier() const
+                { return this->bShowMultiplier_; }
+
+
+        private:
+            Invader* InvaderGame;
+            bool bShowLives_;
+            bool bShowLevel_;
+            bool bShowPoints_;
+            bool bShowMultiplier_;
+    };
+}
+#endif /* _InvaderHUDinfo_H__ */
Index: code/trunk/src/modules/invader/InvaderPrereqs.h
===================================================================
--- code/trunk/src/modules/invader/InvaderPrereqs.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderPrereqs.h	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+@file
+@brief
+    Shared library macros, enums, constants and forward declarations for the Invader module
+*/
+
+#ifndef _InvaderPrereqs_H__
+#define _InvaderPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(Invader_STATIC_BUILD)
+#  ifdef Invader_SHARED_BUILD
+#    define _InvaderExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _InvaderExport
+#    else
+#      define _InvaderExport __declspec(dllimport)
+#    endif
+#  endif
+#  define _InvaderPrivate
+#elif defined (ORXONOX_GCC_VISIBILITY)
+#  define _InvaderExport  __attribute__ ((visibility("default")))
+#  define _InvaderPrivate __attribute__ ((visibility("hidden")))
+#else
+#  define _InvaderExport
+#  define _InvaderPrivate
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+    class Invader;
+    class InvaderCenterPoint;
+    class InvaderShip;
+    class InvaderEnemy;
+    class InvaderEnemyShooter;
+    class InvaderWeapon;
+    class InvaderWeaponEnemy;
+    class InvaderHUDinfo;
+}
+
+#endif /* _InvaderPrereqs_H__ */
Index: code/trunk/src/modules/invader/InvaderShip.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderShip.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderShip.cc	(revision 9939)
@@ -0,0 +1,188 @@
+/*
+ *   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 "InvaderShip.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "Invader.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderShip);
+
+    InvaderShip::InvaderShip(Context* context) : SpaceShip(context)
+    {
+        RegisterObject(InvaderShip);
+
+        speed = 500;
+        isFireing = false;
+        damping = 10;
+    }
+
+    void InvaderShip::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;
+        }
+
+        // shoot!
+        if (isFireing)
+            ControllableEntity::fire(0);
+
+        // Camera
+        WeakPtr<Camera> camera = this->getCamera();
+        if (camera != NULL)
+        {
+            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(InvaderShip, tick, dt);
+    }
+
+    void InvaderShip::updateLevel()
+    {
+        lastTime = 0;
+        if (getGame())
+            getGame()->levelUp();
+    }
+
+    void InvaderShip::moveFrontBack(const Vector2& value)
+    {
+        lastTimeLeft = 0;
+        desiredVelocity.x = -value.x * speed;
+    }
+
+    void InvaderShip::moveRightLeft(const Vector2& value)
+    {
+        lastTimeFront = 0;
+        desiredVelocity.y = value.y * speed * 42;
+    }
+    void InvaderShip::boost(bool bBoost)
+    {
+        isFireing = bBoost;
+    }
+    inline bool InvaderShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    {
+        // orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
+        WeakPtr<InvaderEnemy> enemy = orxonox_cast<InvaderEnemy*>(otherObject);
+        WeakPtr<Projectile> shot = orxonox_cast<Projectile*>(otherObject);
+        // ensure that this gets only called once per enemy.
+        if (enemy != NULL && lastEnemy != enemy)
+        {
+            lastEnemy = enemy;
+
+            removeHealth(20);
+            if (getGame())
+            {
+                getGame()->multiplier = 1;                   
+            }
+        }
+        // was shot, decrease multiplier
+        else if (shot != NULL  && lastShot != shot)
+        {
+            if (getGame() && orxonox_cast<InvaderEnemy*>(shot->getShooter()) != NULL)
+            {
+                if (getGame()->multiplier > 1)
+                {
+                    lastShot = shot;
+                    getGame()->multiplier -= 1;     
+                }
+            }
+        }
+        return false;
+        // SUPER(InvaderShip, collidesAgainst, otherObject, contactPoint);
+    }
+
+    WeakPtr<Invader> InvaderShip::getGame()
+    {
+        if (game == NULL)
+        {
+            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
+                game = *it;
+        }
+        return game;
+    }
+
+    void InvaderShip::death()
+    {
+        getGame()->costLife();
+        SpaceShip::death();
+    }
+}
Index: code/trunk/src/modules/invader/InvaderShip.h
===================================================================
--- code/trunk/src/modules/invader/InvaderShip.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderShip.h	(revision 9939)
@@ -0,0 +1,90 @@
+/*
+ *   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 _InvaderShip_H__
+#define _InvaderShip_H__
+
+#include "invader/InvaderPrereqs.h"
+
+#include "worldentities/pawns/SpaceShip.h"
+#include "graphics/Camera.h"
+#include "weapons/projectiles/Projectile.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderShip : public SpaceShip
+    {
+        public:
+            InvaderShip(Context* context);
+
+            virtual void tick(float dt);
+
+            // overwrite for 2d movement
+            virtual void moveFrontBack(const Vector2& value);
+            virtual void moveRightLeft(const Vector2& value);
+
+            // Starts or stops fireing
+            virtual void boost(bool bBoost);
+
+            //no rotation!
+            virtual void rotateYaw(const Vector2& value){}; 
+            virtual void rotatePitch(const Vector2& value){};
+            //return to main menu if game has ended.
+            virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+
+            virtual void updateLevel();
+
+            virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
+
+        protected:
+            virtual void death();
+        private:
+            WeakPtr<Invader> getGame();
+            WeakPtr<Invader> game;
+            Camera* camera;
+            bool isFireing;
+            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/trunk/src/modules/invader/InvaderWeapon.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderWeapon.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderWeapon.cc	(revision 9939)
@@ -0,0 +1,88 @@
+/*
+ *   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 InvaderWeapon.h
+    @brief Implementation of the InvaderWeapon class.
+*/
+
+#include "InvaderWeapon.h"
+
+#include "core/CoreIncludes.h"
+// #include "core/XMLPort.h"
+// #include "core/command/Executor.h"
+
+#include "graphics/Model.h"
+#include "weaponsystem/Weapon.h"
+#include "weaponsystem/WeaponPack.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "worldentities/WorldEntity.h"
+#include "worldentities/pawns/Pawn.h"
+
+#include "weapons/projectiles/Projectile.h"
+#include "weapons/MuzzleFlash.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderWeapon);
+
+    InvaderWeapon::InvaderWeapon(Context* context) : HsW01(context)
+    {
+        RegisterObject(InvaderWeapon);
+    }
+
+    InvaderWeapon::~InvaderWeapon(){}
+
+    void InvaderWeapon::shot()
+    {
+        assert( this->getWeapon() && this->getWeapon()->getWeaponPack() && this->getWeapon()->getWeaponPack()->getWeaponSystem() && this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn() );
+
+        // Create the projectile.projectile
+        projectile = new Projectile(this->getContext());
+        WeakPtr<Model> model = new Model(projectile->getContext());
+        model->setMeshSource(mesh_);
+        model->setCastShadows(false);
+        projectile->attach(model);
+        model->setScale(5);
+
+        this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+        // only shoot in foreward direction
+        projectile->setOrientation(Quaternion(sqrt(0.5),0,sqrt(0.5),0));
+        projectile->setPosition(this->getMuzzlePosition());
+        // only shoot in foreward direction
+        projectile->setVelocity(Vector3(1, 0, 0) * 2000);
+
+        projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+        projectile->setDamage(this->getDamage());
+        projectile->setShieldDamage(this->getShieldDamage());
+        projectile->setHealthDamage(this->getHealthDamage());
+
+        // Display the muzzle flash.
+        this->InvaderWeapon::muzzleflash();
+    }
+}
Index: code/trunk/src/modules/invader/InvaderWeapon.h
===================================================================
--- code/trunk/src/modules/invader/InvaderWeapon.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderWeapon.h	(revision 9939)
@@ -0,0 +1,55 @@
+/*
+ *   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 InvaderWeapon.h
+    @brief Definition of the InvaderWeapon class.
+*/
+
+#ifndef _InvaderWeapon_H__
+#define _InvaderWeapon_H__
+
+#include "weapons/weaponmodes/HsW01.h"
+#include "weapons/WeaponsPrereqs.h"
+
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderWeapon : public HsW01
+    {
+        public:
+            InvaderWeapon(Context* context);
+            virtual ~InvaderWeapon();
+        protected:
+            virtual void shot();
+            WeakPtr<Projectile> projectile;
+    };
+}
+
+#endif /* _InvaderWeapon_H__ */
Index: code/trunk/src/modules/invader/InvaderWeaponEnemy.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderWeaponEnemy.cc	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderWeaponEnemy.cc	(revision 9939)
@@ -0,0 +1,55 @@
+/*
+ *   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 InvaderWeaponEnemy.h
+    @brief Implementation of the InvaderWeaponEnemy class.
+*/
+
+#include "InvaderWeaponEnemy.h"
+
+namespace orxonox
+{
+    RegisterClass(InvaderWeaponEnemy);
+
+    InvaderWeaponEnemy::InvaderWeaponEnemy(Context* context) : InvaderWeapon(context)
+    {
+        RegisterObject(InvaderWeaponEnemy);
+    }
+
+    void InvaderWeaponEnemy::shot()
+    {
+    	InvaderWeapon::shot();
+        // SUPER(InvaderWeaponEnemy, shot);
+        // only shoot in foreward direction
+        projectile->setVelocity(Vector3(1, 0, 0) * 300);
+        // projectile->setOrientation(Quaternion(sqrt(0.5),0,sqrt(0.5),0));
+    }
+}
+
+
Index: code/trunk/src/modules/invader/InvaderWeaponEnemy.h
===================================================================
--- code/trunk/src/modules/invader/InvaderWeaponEnemy.h	(revision 9939)
+++ code/trunk/src/modules/invader/InvaderWeaponEnemy.h	(revision 9939)
@@ -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:
+ *      Florian Zinggeler
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file InvaderWeaponEnemy.h
+    @brief Definition of the InvaderWeaponEnemy class.
+*/
+
+#ifndef _InvaderWeaponEnemy_H__
+#define _InvaderWeaponEnemy_H__
+
+// #include "weapons/weaponmodes/HsW01.h"
+// #include "weapons/WeaponsPrereqs.h"
+#include "invader/InvaderWeapon.h"
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+    class _InvaderExport InvaderWeaponEnemy : public InvaderWeapon
+    {
+        public:
+            InvaderWeaponEnemy(Context* context);
+        protected:
+            virtual void shot();
+    };
+}
+
+#endif /* _InvaderWeaponEnemy_H__ */
Index: code/trunk/src/modules/objects/ForceField.cc
===================================================================
--- code/trunk/src/modules/objects/ForceField.cc	(revision 9938)
+++ code/trunk/src/modules/objects/ForceField.cc	(revision 9939)
@@ -45,7 +45,11 @@
     /*static*/ const std::string ForceField::modeSphere_s = "sphere";
     /*static*/ const std::string ForceField::modeInvertedSphere_s = "invertedSphere";
+
+    /*static*/ const std::string ForceField::modeHomogen_s = "homogen";
+
     /*static*/ const std::string ForceField::modeNewtonianGravity_s = "newtonianGravity";
     /*static*/ const float ForceField::gravConstant_ = 6.673e-11;
     /*static*/ const float ForceField::attenFactor_ = 1;
+
 
     /**
@@ -89,4 +93,5 @@
         XMLPortParam(ForceField, "length", setLength  , getLength  , xmlelement, mode).defaultValues(2000);
         XMLPortParam(ForceField, "mode", setMode, getMode, xmlelement, mode);
+        XMLPortParam(ForceField, "forcedirection", setForceDirection, getForceDirection, xmlelement, mode).defaultValues(Vector3(0,-400,0));
     }
     
@@ -196,4 +201,19 @@
             }
         }
+        else if(this->mode_ == forceFieldMode::homogen)
+        {
+        	// Iterate over all objects that could possibly be affected by the ForceField.
+        	for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
+        	{
+        		Vector3 distanceVector = it->getWorldPosition() - this->getWorldPosition();
+        	    float distance = distanceVector.length();
+        	    if (distance < this->radius_ && distance > this->massRadius_)
+        	    {
+        	    	// Add a Acceleration in forceDirection_.
+        	    	// Vector3(0,0,0) is the direction, where the force should work.
+        	    	it->addAcceleration(forceDirection_ , Vector3(0,0,0));
+        	    }
+        	}
+        }
     }
 
@@ -214,4 +234,8 @@
         else if(mode == ForceField::modeNewtonianGravity_s)
             this->mode_ = forceFieldMode::newtonianGravity;
+
+        else if(mode == ForceField::modeHomogen_s)
+            this->mode_ = forceFieldMode::homogen;
+
         else
         {
@@ -239,4 +263,8 @@
             case forceFieldMode::newtonianGravity:
                 return ForceField::modeNewtonianGravity_s;
+
+            case forceFieldMode::homogen:
+                return ForceField::modeHomogen_s;
+
             default:
                 return ForceField::modeTube_s;
Index: code/trunk/src/modules/objects/ForceField.h
===================================================================
--- code/trunk/src/modules/objects/ForceField.h	(revision 9938)
+++ code/trunk/src/modules/objects/ForceField.h	(revision 9939)
@@ -1,2 +1,3 @@
+
 /*
  *   ORXONOX - the hottest 3D action shooter ever to exist
@@ -57,5 +58,6 @@
             sphere, //!< The ForceField has a spherical shape.
             invertedSphere, //!< The ForceField has a spherical shape but "inverted" behavior.
-            newtonianGravity //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
+            newtonianGravity, //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
+            homogen //!< Local homogenous Force field with changeable direction for the Space Station
         };
     }
@@ -66,4 +68,5 @@
 
         The following parameters can be set to specify the behavior of the ForceField.
+        - @b forcedirection The direction and the strength of the homogenous force field. Default is 0,-400,0.
         - @b velocity The amount of force the ForceField excerts. Default is 100.
         - @b diameter The diameter of the ForceField. Default is 500.
@@ -147,4 +150,11 @@
                 { return this->halfLength_*2; }
 
+            inline void setForceDirection(Vector3 forcedir)
+                { this->forceDirection_ = forcedir; }
+
+            inline Vector3 getForceDirection()
+                { return this->forceDirection_; }
+
+
             void setMode(const std::string& mode); //!< Set the mode of the ForceField.
             const std::string& getMode(void); //!< Get the mode of the ForceField.
@@ -156,4 +166,6 @@
             static const std::string modeInvertedSphere_s;
             static const std::string modeNewtonianGravity_s;
+
+            static const std::string modeHomogen_s;
 
             float velocity_; //!< The velocity of the ForceField.
@@ -167,4 +179,5 @@
             //! Attenuation factor for Newtonian ForceFields
             static const float attenFactor_;
+            Vector3 forceDirection_;
   };
 }
Index: code/trunk/src/modules/overlays/OverlaysPrereqs.h
===================================================================
--- code/trunk/src/modules/overlays/OverlaysPrereqs.h	(revision 9938)
+++ code/trunk/src/modules/overlays/OverlaysPrereqs.h	(revision 9939)
@@ -80,4 +80,5 @@
     class BarColour;
     class ChatOverlay;
+    class CountDown;
     class DeathMessage;
     class GametypeFadingMessage;
Index: code/trunk/src/modules/overlays/debugging/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/overlays/debugging/CMakeLists.txt	(revision 9938)
+++ code/trunk/src/modules/overlays/debugging/CMakeLists.txt	(revision 9939)
@@ -2,3 +2,4 @@
   DebugFPSText.cc
   DebugRTRText.cc
+  DebugPositionText.cc
 )
Index: code/trunk/src/modules/overlays/debugging/DebugPositionText.cc
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugPositionText.cc	(revision 9939)
+++ code/trunk/src/modules/overlays/debugging/DebugPositionText.cc	(revision 9939)
@@ -0,0 +1,61 @@
+/*
+ *   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:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "DebugPositionText.h"
+
+#include "util/Convert.h"
+#include "core/CoreIncludes.h"
+#include "core/Game.h"
+
+#include "controllers/NewHumanController.h"
+
+namespace orxonox
+{
+    RegisterClass(DebugPositionText);
+
+    DebugPositionText::DebugPositionText(Context* context) : OverlayText(context)
+    {
+        RegisterObject(DebugPositionText);
+    }
+
+    DebugPositionText::~DebugPositionText()
+    {
+    }
+
+    void DebugPositionText::tick(float dt)
+    {
+        SUPER(DebugPositionText, tick, dt);
+        
+        ObjectList<NewHumanController>::iterator it = ObjectList<NewHumanController>::begin();
+        if (it && it->getControllableEntity() )
+        {
+            Vector3 pos = it->getControllableEntity()->getPosition();
+            this->setCaption(multi_cast<std::string>(pos));
+        }
+    }
+}
Index: code/trunk/src/modules/overlays/debugging/DebugPositionText.h
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugPositionText.h	(revision 9939)
+++ code/trunk/src/modules/overlays/debugging/DebugPositionText.h	(revision 9939)
@@ -0,0 +1,48 @@
+/*
+ *   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:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _DebugPositionText_H__
+#define _DebugPositionText_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
+
+namespace orxonox
+{
+    class _OverlaysExport DebugPositionText : public OverlayText, public Tickable
+    {
+    public:
+        DebugPositionText(Context* context);
+        virtual ~DebugPositionText();
+
+        virtual void tick(float dt);
+    };
+}
+#endif /* _DebugPositionText_H__ */
Index: code/trunk/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/overlays/hud/CMakeLists.txt	(revision 9938)
+++ code/trunk/src/modules/overlays/hud/CMakeLists.txt	(revision 9939)
@@ -18,3 +18,4 @@
   PauseNotice.cc
   LastTeamStandingInfos.cc
+  CountDown.cc
 )
Index: code/trunk/src/modules/overlays/hud/CountDown.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/CountDown.cc	(revision 9939)
+++ code/trunk/src/modules/overlays/hud/CountDown.cc	(revision 9939)
@@ -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:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file CountDown.cc
+    @brief Countdown HUD element, counting down from CountDown::counter_ to zero.
+    
+    In use it would like this:
+        @code
+        <OverlayGroup name="spacefightHUD" scale = "1, 1">
+          <CountDown
+              position    = "0.49, 0.05"
+              pickpoint   = "0.0, 0.0"
+              font        = "ShareTechMono"
+              textsize    = 0.06
+              colour      = "1.0, 1.0, 1.0, 1.0"
+              align       = "right"                  
+              counter     = "10.0"
+              speedfactor = "1.0"
+              active      = "false"
+           >
+            <events>
+              <activity>
+                <EventListener event="startcounting" />
+              </activity>
+            </events>
+          </CountDown>
+        </OverlayGroup>
+        @endcode
+        The counter is triggered by an event called "startcounting" and counts from 10 to 0.
+*/
+
+#include "CountDown.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "infos/PlayerInfo.h"
+#include "util/Convert.h"
+
+namespace orxonox
+{
+    RegisterClass(CountDown);
+
+    CountDown::CountDown(Context* context) : OverlayText(context)
+    {
+        RegisterObject(CountDown);
+
+        this->owner_ = 0;
+        this->hasStopped_ = false;
+    }
+    
+    CountDown::~CountDown()
+    {
+    }
+    
+    void CountDown::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(CountDown, XMLPort, xmlelement, mode);
+        XMLPortParam(CountDown, "counter", setCounter, getCounter, xmlelement, mode).defaultValues(10);
+        XMLPortParam(CountDown, "speedfactor", setSpeed, getSpeed, xmlelement, mode).defaultValues(1);
+    }
+    
+    void CountDown::tick(float dt)
+    {
+        SUPER(CountDown, tick, dt);
+        if (this->isActive() && !this->hasStopped_)
+        {
+            if (this->counter_ <= 0)
+            {
+                this->counter_ = 0;
+                this->hasStopped_ = true;
+                this->setCaption("");
+            }
+            else
+            {
+                this->counter_ -= dt*speed_;
+                this->setCaption(multi_cast<std::string>((int)this->counter_)); //TODO: evtl. initialize with +0.5f
+            }
+        }
+    }
+
+    void CountDown::changedOwner()
+    {
+        SUPER(CountDown, changedOwner);
+
+        this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
+    }
+}
Index: code/trunk/src/modules/overlays/hud/CountDown.h
===================================================================
--- code/trunk/src/modules/overlays/hud/CountDown.h	(revision 9939)
+++ code/trunk/src/modules/overlays/hud/CountDown.h	(revision 9939)
@@ -0,0 +1,68 @@
+/*
+ *   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:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _CountDown_H__
+#define _CountDown_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include "tools/interfaces/TimeFactorListener.h"
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
+
+namespace orxonox
+{
+    class _OverlaysExport CountDown : public OverlayText, public Tickable
+    {
+        public:
+            CountDown(Context* context);
+            virtual ~CountDown();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void changedOwner();
+            virtual void tick(float dt);
+
+            inline void setCounter(float value)
+                { this->counter_ = value + 0.99f; }
+            inline float getCounter() const
+                { return this->counter_; }
+            inline void setSpeed(float value)
+                { this->speed_ = value; }
+            inline float getSpeed() const
+                { return this->speed_; }
+                
+        protected:
+
+        private:
+            PlayerInfo* owner_;
+            float counter_;
+            float speed_;
+            bool hasStopped_;
+    };
+}
+#endif /* _CountDown_H__ */
Index: code/trunk/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDNavigation.cc	(revision 9938)
+++ code/trunk/src/modules/overlays/hud/HUDNavigation.cc	(revision 9939)
@@ -74,6 +74,6 @@
         OrxonoxOverlay(context)
     {
-        RegisterObject(HUDNavigation)
-;        this->setConfigValues();
+        RegisterObject(HUDNavigation);
+        this->setConfigValues();
 
         // Set default values
Index: code/trunk/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRadar.cc	(revision 9938)
+++ code/trunk/src/modules/overlays/hud/HUDRadar.cc	(revision 9939)
@@ -25,4 +25,5 @@
  *   Co-authors:
  *      Reto Grieder
+ *      Wolfgang Roenninger
  *
  */
@@ -41,4 +42,5 @@
 #include "Scene.h"
 #include "Radar.h"
+#include "core/config/ConfigValueIncludes.h"
 
 namespace orxonox
@@ -50,4 +52,5 @@
     {
         RegisterObject(HUDRadar);
+        this->setConfigValues();
 
         this->marker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
@@ -60,10 +63,23 @@
         this->setHalfDotSizeDistance(3000.0f);
         this->setMaximumDotSize(0.1f);
+        this->setMaximumDotSize3D(0.07f);
 
         this->shapeMaterials_[RadarViewable::Dot]      = "RadarDot.png";
         this->shapeMaterials_[RadarViewable::Triangle] = "RadarTriangle.png";
         this->shapeMaterials_[RadarViewable::Square]   = "RadarSquare.png";
-        this->setDetectionLimit( 10000.0f );
         this->owner_ = 0;
+
+        this->map3DFront_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+        	.createOverlayElement("Panel", "HUDRadar_mapDreiDFront_" + getUniqueNumberString()));
+        this->map3DFront_->setMaterialName("Orxonox/Radar3DFront");
+        this->overlay_->add2D(this->map3DFront_);
+        this->map3DFront_->hide();
+
+        this->map3DBack_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+        	.createOverlayElement("Panel", "HUDRadar_mapDreiDBack_" + getUniqueNumberString()));
+        this->map3DBack_->setMaterialName("Orxonox/Radar3DBack");
+        this->overlay_->add2D(this->map3DBack_);
+        this->map3DBack_->hide();
+
     }
 
@@ -73,4 +89,7 @@
         {
             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->marker_);
+            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->map3DFront_);
+            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->map3DBack_);
+
             for (std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it = this->radarObjects_.begin();
                 it != this->radarObjects_.end(); ++it)
@@ -80,4 +99,11 @@
         }
     }
+
+
+
+    void HUDRadar::setConfigValues()
+       {
+           SetConfigValue(RadarMode_, true);
+       }
 
     void HUDRadar::XMLPort(Element& xmlelement, XMLPort::Mode mode)
@@ -88,4 +114,11 @@
         XMLPortParam(HUDRadar, "halfDotSizeDistance", setHalfDotSizeDistance, getHalfDotSizeDistance, xmlelement, mode);
         XMLPortParam(HUDRadar, "maximumDotSize", setMaximumDotSize, getMaximumDotSize, xmlelement, mode);
+        XMLPortParam(HUDRadar, "maximumDotSize3D", setMaximumDotSize3D, getMaximumDotSize3D, xmlelement, mode);
+        XMLPortParam(HUDRadar, "material2D", set2DMaterial, get2DMaterial, xmlelement, mode);
+        XMLPortParam(HUDRadar, "material3DMiddle", set3DMaterial, get3DMaterial, xmlelement, mode);
+        XMLPortParam(HUDRadar, "material3DFront", set3DMaterialFront, get3DMaterialFront, xmlelement, mode);
+        XMLPortParam(HUDRadar, "material3DBack", set3DMaterialBack, get3DMaterialBack, xmlelement, mode);
+        XMLPortParam(HUDRadar, "mapAngle3D", setMapAngle, getMapAngle, xmlelement, mode);
+        XMLPortParam(HUDRadar, "detectionLimit", setDetectionLimit, getDetectionLimit, xmlelement, mode);
     }
 
@@ -152,4 +185,21 @@
         // update the distances for all objects
         std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it;
+
+
+        if(RadarMode_)
+        {
+        	this->setBackgroundMaterial(material3D_);
+        	this->map3DFront_->_notifyZOrder(this->overlay_->getZOrder() * 100 + 250); // it seems that the ZOrder of overlayelements is 100 times the ZOrder of the overlay
+        	this->map3DBack_->_notifyZOrder(this->overlay_->getZOrder() * 100 - 250); // 250 a little bit buffer so that the two shels are displayed all in the front / in the back
+        	this->map3DFront_->show();
+        	this->map3DBack_->show();
+        }
+        else
+        {
+        	this->setBackgroundMaterial(material2D_);
+        	this->map3DFront_->hide();
+        	this->map3DBack_->hide();
+        }
+
         for( it = this->radarObjects_.begin(); it != this->radarObjects_.end(); ++it )
         {
@@ -165,11 +215,34 @@
             float distance = (wePointer->getWorldPosition() - this->owner_->getPosition()).length();
             // calculate the size with 1/distance dependency for simplicity (instead of exp(-distance * lambda)
-            float size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
+
+            float size;
+            if(RadarMode_)
+            	size = maximumDotSize3D_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
+            else
+            	size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
             it->second->setDimensions(size, size);
 
             // calc position on radar...
-            Vector2 coord = get2DViewcoordinates(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition());
+            Vector2 coord;
+
+            if(RadarMode_)
+            {
+            	coord = get3DProjection(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011, detectionLimit_);
+
+            	// set zOrder on screen
+            	bool overXZPlain = isObjectHigherThanShipOnMap(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), this->mapAngle_);
+
+            	int zOrder = determineMap3DZOrder(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), detectionLimit_);
+            	if(overXZPlain == false /*&& (it->second->getZOrder() >  100 * this->overlay_->getZOrder())*/) // it appears that zOrder of attached Overlayelements is 100 times the zOrder of the Overlay
+            		it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 - 70 + zOrder);
+            	if(overXZPlain == true /*&& (it->second->getZOrder() <= 100 * this->overlay_->getZOrder())*/)
+            		it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 + 70 + zOrder);
+            }
+            else
+            	coord = get2DViewcoordinates(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition());
+
             coord *= math::pi / 3.5f; // small adjustment to make it fit the texture
             it->second->setPosition((1.0f + coord.x - size) * 0.5f, (1.0f - coord.y - size) * 0.5f);
+
             if( distance < detectionLimit_ || detectionLimit_ < 0 )
                 it->second->show();
@@ -182,4 +255,6 @@
                 this->marker_->setDimensions(size * 1.5f, size * 1.5f);
                 this->marker_->setPosition((1.0f + coord.x - size * 1.5f) * 0.5f, (1.0f - coord.y - size * 1.5f) * 0.5f);
+                if(RadarMode_)
+                	this->marker_->_notifyZOrder(it->second->getZOrder() -1);
                 this->marker_->show();
             }
Index: code/trunk/src/modules/overlays/hud/HUDRadar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRadar.h	(revision 9938)
+++ code/trunk/src/modules/overlays/hud/HUDRadar.h	(revision 9939)
@@ -35,4 +35,5 @@
 #include <map>
 #include <vector>
+#include <string>
 
 #include "util/OgreForwardRefs.h"
@@ -51,4 +52,5 @@
         virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
         virtual void changedOwner();
+        void setConfigValues();
 
     private:
@@ -57,15 +59,32 @@
         void setHalfDotSizeDistance(float distance) { this->halfDotSizeDistance_ = distance; }
 
-        void setDetectionLimit( float limit )
-        { this->detectionLimit_ = limit; }
-        float getDetectionLimit() const
-        { return this->detectionLimit_; }
+        void setDetectionLimit( float limit ) { this->detectionLimit_ = limit; }
+        float getDetectionLimit() const { return this->detectionLimit_; }
 
         float getMaximumDotSize() const { return this->maximumDotSize_; }
         void setMaximumDotSize(float size) { this->maximumDotSize_ = size; }
 
+        float getMaximumDotSize3D() const { return this->maximumDotSize3D_; }
+        void setMaximumDotSize3D(float size) { this->maximumDotSize3D_ = size;}
+
+        std::string get2DMaterial() const {return this->material2D_; }
+        void set2DMaterial(std::string material2D) { this->material2D_ = material2D; }
+
+        std::string get3DMaterial() const {return this->material3D_; }
+        void set3DMaterial(std::string material3D) { this->material3D_ = material3D; }
+
+        std::string get3DMaterialFront() const {return this->material3DFront_; }
+        void set3DMaterialFront(std::string material3DFront) { this->material3DFront_ = material3DFront; }
+
+        std::string get3DMaterialBack() const {return this->material3DBack_; }
+        void set3DMaterialBack(std::string material3DBack) { this->material3DBack_ = material3DBack; }
+
         float getRadarSensitivity() const { return this->sensitivity_; }
         // used also by RadarListener interface!
         void setRadarSensitivity(float sensitivity) { this->sensitivity_ = sensitivity; }
+
+        // Determines angle between line of sight and x/z-plain on the 3D minimap
+        float getMapAngle() const { return this->mapAngle_; }
+        void setMapAngle(float mapAngle) { this->mapAngle_ = mapAngle; }
 
         // RadarListener interface
@@ -85,6 +104,18 @@
         Ogre::PanelOverlayElement* marker_;
 
+        bool RadarMode_; // Determines, if Radar runs in 3D or 2D Mode
+
         float halfDotSizeDistance_;
         float maximumDotSize_;
+        float maximumDotSize3D_;
+        float mapAngle_;
+
+        std::string material2D_;		//Material name for 2D map
+        std::string material3D_;		//Material names For the 3D minimap
+        std::string material3DFront_;
+        std::string material3DBack_;
+
+        Ogre::PanelOverlayElement* map3DFront_; //Overlayelements for the 3D minimap to be able to draw the points in a semi 3D matter
+        Ogre::PanelOverlayElement* map3DBack_;
 
         float sensitivity_;
Index: code/trunk/src/modules/pong/Pong.cc
===================================================================
--- code/trunk/src/modules/pong/Pong.cc	(revision 9938)
+++ code/trunk/src/modules/pong/Pong.cc	(revision 9939)
@@ -47,4 +47,5 @@
 #include "PongBot.h"
 #include "PongAI.h"
+
 namespace orxonox
 {
@@ -117,4 +118,5 @@
             }
         }
+
     }
 
Index: code/trunk/src/modules/pong/PongBall.cc
===================================================================
--- code/trunk/src/modules/pong/PongBall.cc	(revision 9938)
+++ code/trunk/src/modules/pong/PongBall.cc	(revision 9939)
@@ -40,4 +40,7 @@
 
 #include "PongBat.h"
+
+#include "sound/WorldSound.h"
+#include "core/XMLPort.h"
 
 namespace orxonox
@@ -66,4 +69,21 @@
 
         this->registerVariables();
+
+        //initialize sound
+        if (GameMode::isMaster())
+             {
+                 this->defScoreSound_ = new WorldSound(this->getContext());
+                 this->defScoreSound_->setVolume(1.0f);
+                 this->defBatSound_ = new WorldSound(this->getContext());
+                 this->defBatSound_->setVolume(0.4f);
+                 this->defBoundarySound_ = new WorldSound(this->getContext());
+                 this->defBoundarySound_->setVolume(0.5f);
+             }
+             else
+             {
+                 this->defScoreSound_ = 0;
+                 this->defBatSound_ = 0;
+                 this->defBoundarySound_ = 0;
+             }
     }
 
@@ -81,4 +101,13 @@
             delete[] this->batID_;
         }
+    }
+
+    //xml port for loading sounds
+    void PongBall::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(PongBall, XMLPort, xmlelement, mode);
+        XMLPortParam(PongBall, "defScoreSound",  setDefScoreSound,  getDefScoreSound,  xmlelement, mode);
+        XMLPortParam(PongBall, "defBatSound",  setDefBatSound,  getDefBatSound,  xmlelement, mode);
+        XMLPortParam(PongBall, "defBoundarySound",  setDefBoundarySound,  getDefBoundarySound,  xmlelement, mode);
     }
 
@@ -117,5 +146,6 @@
         if (position.z > this->fieldHeight_ / 2 || position.z < -this->fieldHeight_ / 2)
         {
-            // Its velocity in z-direction is inverted (i.e. it bounces off).
+            defBoundarySound_->play(); //play boundary sound
+        	// Its velocity in z-direction is inverted (i.e. it bounces off).
             velocity.z = -velocity.z;
             // And its position is set as to not overstep the boundary it has just crossed.
@@ -142,5 +172,6 @@
                     if (fabs(distance) <= 1) // If the bat is there to parry.
                     {
-                        // Set the ball to be exactly at the boundary.
+                        defBatSound_->play(); //play bat sound
+                    	// Set the ball to be exactly at the boundary.
                         position.x = this->fieldWidth_ / 2;
                         // Invert its velocity in x-direction (i.e. it bounces off).
@@ -155,4 +186,5 @@
                     else if (GameMode::isMaster() && position.x > this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
                     {
+                    	defScoreSound_->play();//play score sound
                         if (this->getGametype() && this->bat_[0])
                         {
@@ -169,5 +201,6 @@
                     if (fabs(distance) <= 1) // If the bat is there to parry.
                     {
-                        // Set the ball to be exactly at the boundary.
+                        defBatSound_->play(); //play bat sound
+                    	// Set the ball to be exactly at the boundary.
                         position.x = -this->fieldWidth_ / 2;
                         // Invert its velocity in x-direction (i.e. it bounces off).
@@ -182,4 +215,5 @@
                     else if (GameMode::isMaster() && position.x < -this->fieldWidth_ / 2 * (1 + this->relMercyOffset_))
                     {
+                    	defScoreSound_->play();//play score sound
                         if (this->getGametype() && this->bat_[1])
                         {
@@ -262,3 +296,54 @@
             this->bat_[1] = orxonox_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
     }
+
+    void PongBall::setDefScoreSound(const std::string &pongSound)
+    {
+        if( defScoreSound_ )
+            defScoreSound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefScoreSound()
+    {
+        if( defScoreSound_ )
+            return defScoreSound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
+
+    void PongBall::setDefBatSound(const std::string &pongSound)
+    {
+        if( defBatSound_ )
+            defBatSound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefBatSound()
+    {
+        if( defBatSound_ )
+            return defBatSound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
+
+    void PongBall::setDefBoundarySound(const std::string &pongSound)
+    {
+        if( defBoundarySound_ )
+            defBoundarySound_->setSource(pongSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& PongBall::getDefBoundarySound()
+    {
+        if( defBoundarySound_ )
+            return defBoundarySound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
 }
Index: code/trunk/src/modules/pong/PongBall.h
===================================================================
--- code/trunk/src/modules/pong/PongBall.h	(revision 9938)
+++ code/trunk/src/modules/pong/PongBall.h	(revision 9939)
@@ -42,4 +42,5 @@
 #include "worldentities/MovableEntity.h"
 
+
 namespace orxonox
 {
@@ -63,4 +64,6 @@
 
             virtual void tick(float dt);
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
             /**
@@ -123,4 +126,11 @@
             static const float MAX_REL_Z_VELOCITY;
 
+            void setDefScoreSound(const std::string& engineSound);
+            const std::string& getDefScoreSound();
+            void setDefBatSound(const std::string& engineSound);
+            const std::string& getDefBatSound();
+            void setDefBoundarySound(const std::string& engineSound);
+            const std::string& getDefBoundarySound();
+
         private:
             void registerVariables();
@@ -135,4 +145,7 @@
             unsigned int* batID_; //!< The object IDs of the bats, to be able to synchronize them over the network.
             float relMercyOffset_; //!< Offset, that makes the player not loose, when, in all fairness, he would have.
+            WorldSound* defScoreSound_;
+            WorldSound* defBatSound_;
+            WorldSound* defBoundarySound_;
     };
 }
Index: code/trunk/src/modules/pong/PongScore.cc
===================================================================
--- code/trunk/src/modules/pong/PongScore.cc	(revision 9938)
+++ code/trunk/src/modules/pong/PongScore.cc	(revision 9939)
@@ -41,4 +41,5 @@
 
 #include "Pong.h"
+#include "sound/WorldSound.h" /////////////////////////////
 
 namespace orxonox
Index: code/trunk/src/modules/pong/PongScore.h
===================================================================
--- code/trunk/src/modules/pong/PongScore.h	(revision 9938)
+++ code/trunk/src/modules/pong/PongScore.h	(revision 9939)
@@ -124,4 +124,6 @@
             WeakPtr<PlayerInfo> player1_; //!< Store information about left player permanently.
             WeakPtr<PlayerInfo> player2_; //!< Same for the right player. To end the game properly.
+            WorldSound* scoreSound_;
+
     };
 }
Index: code/trunk/src/modules/weapons/weaponmodes/HsW01.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 9938)
+++ code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 9939)
@@ -59,5 +59,5 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
-        private:
+        protected:
             /**
             @brief Set the mesh.
@@ -109,5 +109,5 @@
                 { return this->delay_; }
 
-            void shot();
+            virtual void shot();
             void muzzleflash();
 
Index: code/trunk/src/orxonox/MoodManager.h
===================================================================
--- code/trunk/src/orxonox/MoodManager.h	(revision 9938)
+++ code/trunk/src/orxonox/MoodManager.h	(revision 9939)
@@ -51,5 +51,5 @@
 
         private:
-            virtual void moodChanged(const std::string& mood) = 0;
+            virtual bool moodChanged(const std::string& mood) = 0;
 
             static void changedMood(const std::string& mood);
Index: code/trunk/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/NewHumanController.cc	(revision 9938)
+++ code/trunk/src/orxonox/controllers/NewHumanController.cc	(revision 9939)
@@ -443,5 +443,5 @@
 
         if (pawn)
-            pawn->setAimPosition( mouseRay.getOrigin() + mouseRay.getDirection() * 1200 );
+            pawn->setAimPosition( mouseRay.getOrigin() + mouseRay.getDirection() * 3000 );
 
         if( this->getControllableEntity() && this->getControllableEntity()->getTarget() != 0 )
Index: code/trunk/src/orxonox/gamestates/GSMainMenu.cc
===================================================================
--- code/trunk/src/orxonox/gamestates/GSMainMenu.cc	(revision 9938)
+++ code/trunk/src/orxonox/gamestates/GSMainMenu.cc	(revision 9939)
@@ -85,5 +85,5 @@
     {
         if (GameMode::playsSound())
-            this->ambient_->destroy();
+            this->ambient_->destroy(); //CHECK Thilo destroy ?preDestroy()? !!!!!!!
 
         InputManager::getInstance().destroyState("MainMenuHackery");
Index: code/trunk/src/orxonox/gametypes/Gametype.cc
===================================================================
--- code/trunk/src/orxonox/gametypes/Gametype.cc	(revision 9938)
+++ code/trunk/src/orxonox/gametypes/Gametype.cc	(revision 9939)
@@ -171,5 +171,4 @@
                     entity->setOrientation(oldentity->getWorldOrientation());
                 }
-
                 it->first->startControl(entity);
             }
Index: code/trunk/src/orxonox/graphics/ParticleEmitter.cc
===================================================================
--- code/trunk/src/orxonox/graphics/ParticleEmitter.cc	(revision 9938)
+++ code/trunk/src/orxonox/graphics/ParticleEmitter.cc	(revision 9939)
@@ -45,5 +45,5 @@
     RegisterClass(ParticleEmitter);
 
-    ParticleEmitter::ParticleEmitter(Context* context) : StaticEntity(context)
+    ParticleEmitter::ParticleEmitter(Context* context) : MovableEntity(context)
     {
         RegisterObject(ParticleEmitter);
Index: code/trunk/src/orxonox/graphics/ParticleEmitter.h
===================================================================
--- code/trunk/src/orxonox/graphics/ParticleEmitter.h	(revision 9938)
+++ code/trunk/src/orxonox/graphics/ParticleEmitter.h	(revision 9939)
@@ -33,9 +33,9 @@
 
 #include <string>
-#include "worldentities/StaticEntity.h"
+#include "worldentities/MovableEntity.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport ParticleEmitter : public StaticEntity
+    class _OrxonoxExport ParticleEmitter : public MovableEntity
     {
         public:
Index: code/trunk/src/orxonox/infos/PlayerInfo.cc
===================================================================
--- code/trunk/src/orxonox/infos/PlayerInfo.cc	(revision 9938)
+++ code/trunk/src/orxonox/infos/PlayerInfo.cc	(revision 9939)
@@ -229,5 +229,11 @@
             return;
 
-        this->controllableEntity_->getController()->setActive(false);
+        Controller* tmp =this->controllableEntity_->getController();
+        if (tmp == NULL)
+        {
+        	orxout(verbose) <<  "PlayerInfo: pauseControl, Controller is NULL " << endl;
+        	return;
+        }
+        tmp->setActive(false);
         //this->controllableEntity_->getController()->setControllableEntity(NULL);
         this->controllableEntity_->setController(0);
Index: code/trunk/src/orxonox/interfaces/RadarViewable.h
===================================================================
--- code/trunk/src/orxonox/interfaces/RadarViewable.h	(revision 9938)
+++ code/trunk/src/orxonox/interfaces/RadarViewable.h	(revision 9939)
@@ -63,4 +63,10 @@
         virtual void setRadarName(const std::string& name)
             {
+            // The following if-clause hides objects with radarname "HIDDEN"
+                if (name == "HIDDEN")
+                {
+                    this->bVisibility_ = 0;
+                    this->settingsChanged();
+                }
                 if (this->radarName_ != name)
                 {
Index: code/trunk/src/orxonox/items/MultiStateEngine.cc
===================================================================
--- code/trunk/src/orxonox/items/MultiStateEngine.cc	(revision 9938)
+++ code/trunk/src/orxonox/items/MultiStateEngine.cc	(revision 9939)
@@ -61,4 +61,6 @@
             this->defEngineSndNormal_->setLooping(true);
             this->defEngineSndBoost_->setLooping(true);
+            this->defEngineSndNormal_->setVolume(0.8f);
+            this->defEngineSndBoost_->setVolume(0.5f);
             this->lua_ = new LuaState();
         }
Index: code/trunk/src/orxonox/sound/AmbientSound.cc
===================================================================
--- code/trunk/src/orxonox/sound/AmbientSound.cc	(revision 9938)
+++ code/trunk/src/orxonox/sound/AmbientSound.cc	(revision 9939)
@@ -79,11 +79,11 @@
     }
 
-    void AmbientSound::setAmbientSource(const std::string& source)
+    bool AmbientSound::setAmbientSource(const std::string& source)
     {
         this->ambientSource_ = source;
-        this->moodChanged(MoodManager::getInstance().getMood());
+        return(this->moodChanged(MoodManager::getInstance().getMood()));
     }
 
-    void AmbientSound::moodChanged(const std::string& mood)
+    bool AmbientSound::moodChanged(const std::string& mood)
     {
         if (GameMode::playsSound())
@@ -95,10 +95,17 @@
                 orxout(user_info) << "Loading ambient sound " << path << "..." << endl; // TODO: make this output internal if we implement sound streaming
                 this->setSource(path);
+
+                // all went fine
+                return true;
             }
             else
             {
                 orxout(internal_warning, context::sound) << this->ambientSource_ << ": Not a valid name! Ambient sound will not change." << endl;
+
+                // everything went southways
+                return false;
             }
         }
+        return false;
     }
 
Index: code/trunk/src/orxonox/sound/AmbientSound.h
===================================================================
--- code/trunk/src/orxonox/sound/AmbientSound.h	(revision 9938)
+++ code/trunk/src/orxonox/sound/AmbientSound.h	(revision 9939)
@@ -54,5 +54,5 @@
         void pause();
 
-        void setAmbientSource(const std::string& source);
+        bool setAmbientSource(const std::string& source);
         inline const std::string& getAmbientSource() const
             { return this->ambientSource_; }
@@ -68,5 +68,5 @@
         void preDestroy();
         float getRealVolume();
-        void moodChanged(const std::string& mood);
+        bool moodChanged(const std::string& mood);
         inline void ambientSourceChanged()
             { this->setAmbientSource(this->ambientSource_); }
Index: code/trunk/src/orxonox/sound/BaseSound.cc
===================================================================
--- code/trunk/src/orxonox/sound/BaseSound.cc	(revision 9938)
+++ code/trunk/src/orxonox/sound/BaseSound.cc	(revision 9939)
@@ -47,5 +47,5 @@
     BaseSound::BaseSound()
         : bPooling_(false)
-        , volume_(1.0)
+        , volume_(0.7)
         , bLooping_(false)
         , state_(Stopped)
Index: code/trunk/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/trunk/src/orxonox/sound/SoundManager.cc	(revision 9938)
+++ code/trunk/src/orxonox/sound/SoundManager.cc	(revision 9939)
@@ -218,5 +218,5 @@
             .description("Defines the overall volume.")
             .callback(this, &SoundManager::checkSoundVolumeValidity);
-        SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 1.0f)
+        SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 0.7f)
             .description("Defines the ambient volume.")
             .callback(this, &SoundManager::checkAmbientVolumeValidity);
Index: code/trunk/src/orxonox/sound/WorldAmbientSound.cc
===================================================================
--- code/trunk/src/orxonox/sound/WorldAmbientSound.cc	(revision 9938)
+++ code/trunk/src/orxonox/sound/WorldAmbientSound.cc	(revision 9939)
@@ -33,7 +33,12 @@
 #include "core/XMLPort.h"
 #include "AmbientSound.h"
+#include "core/command/ConsoleCommand.h"
+#include <exception>
+
 
 namespace orxonox
 {
+	SetConsoleCommand("WorldAmbientSound", "nextsong",      &WorldAmbientSound::nextSong);
+
     RegisterClass(WorldAmbientSound);
 
@@ -44,6 +49,15 @@
         this->ambientSound_ = new AmbientSound();
         this->registerVariables();
+        soundList_.push_back("Earth.ogg");
+        soundList_.push_back("Jupiter.ogg");
+        soundList_.push_back("Mars.ogg");
+        soundList_.push_back("allgorythm-lift_up.ogg");
+        soundList_.push_back("allgorythm-resonance_blaster.ogg");
+        soundList_.push_back("AlphaCentauri.ogg");
+        soundList_.push_back("Asteroid_rocks.ogg");
+        soundList_.push_back("Ganymede.ogg");
+        soundList_.push_back("luke_grey_-_hypermode.ogg");
+
     }
-
     WorldAmbientSound::~WorldAmbientSound()
     {
@@ -51,4 +65,5 @@
         {
             this->ambientSound_->destroy();
+            WorldAmbientSound::soundList_.clear();
         }
     }
@@ -94,3 +109,17 @@
             this->ambientSound_->stop();
     }
+
+    void WorldAmbientSound::nextSong()
+    {
+
+    	//HACK: Assuption - there is only one WorldAmbientSound in a level and only one level is used.
+    	for (ObjectList<WorldAmbientSound>::iterator it = ObjectList<WorldAmbientSound>::begin();
+    	     it != ObjectList<WorldAmbientSound>::end(); ++it)
+    	{
+    		while(it->ambientSound_->setAmbientSource(WorldAmbientSound::soundList_[WorldAmbientSound::soundNumber_]) == false){
+    			WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size();
+    		}
+    		WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size();
+    	}
+    }
 }
Index: code/trunk/src/orxonox/sound/WorldAmbientSound.h
===================================================================
--- code/trunk/src/orxonox/sound/WorldAmbientSound.h	(revision 9938)
+++ code/trunk/src/orxonox/sound/WorldAmbientSound.h	(revision 9939)
@@ -34,4 +34,7 @@
 #include "core/BaseObject.h"
 #include "network/synchronisable/Synchronisable.h"
+#include <string>
+#include <vector>
+
 
 namespace orxonox
@@ -54,9 +57,29 @@
             void play();
 
+            //This function changes the current ambient song.
+            //You can call nextSong() active in the level
+            //by pressing the key 'M'.
+            static void nextSong();
+
         private:
             void registerVariables();
 
+            //Vector with the diffrent available level sounds.
+            //The sound names are pushed in the WorldAmbientSound-constructor.
+            static std::vector<std::string> soundList_;
+
+            // This value will be initialized below, don't make this into
+            // a const, since we want to change it in nextSong().
+            static int soundNumber_;
+
+
             AmbientSound* ambientSound_;
     };
+
+    // This is an initialization for the soundnumber variable. Since it is
+    // static, we have to initialize it this way.
+    int WorldAmbientSound::soundNumber_ = 0;
+    std::vector<std::string> WorldAmbientSound::soundList_;
+
 }
 
Index: code/trunk/src/orxonox/sound/WorldSound.cc
===================================================================
--- code/trunk/src/orxonox/sound/WorldSound.cc	(revision 9938)
+++ code/trunk/src/orxonox/sound/WorldSound.cc	(revision 9939)
@@ -81,5 +81,5 @@
             alSourcef(this->audioSource_, AL_REFERENCE_DISTANCE, refDist);
             // TODO: 500 is very magical here. Derive something better
-            alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 500);
+            alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 20);
         }
         this->tick(0); // update position, orientation and velocity
Index: code/trunk/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 9938)
+++ code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 9939)
@@ -79,4 +79,5 @@
             this->defSndWpnFire_ = new WorldSound(this->getContext());
             this->defSndWpnFire_->setLooping(false);
+            this->defSndWpnFire_->setVolume(0.8f);
             this->bSoundAttached_ = false;
         }
Index: code/trunk/src/orxonox/worldentities/BigExplosion.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/BigExplosion.cc	(revision 9938)
+++ code/trunk/src/orxonox/worldentities/BigExplosion.cc	(revision 9939)
@@ -43,7 +43,43 @@
     RegisterClass(BigExplosion);
 
-    BigExplosion::BigExplosion(Context* context) : StaticEntity(context)
+    BigExplosion::BigExplosion(Context* context) : MobileEntity(context)
     {
         RegisterObject(BigExplosion);
+
+        if ( GameMode::showsGraphics() && ( !this->getScene() || !this->getScene()->getSceneManager() ) )
+            ThrowException(AbortLoading, "Can't create BigExplosion, no scene or no scene manager given.");
+
+        this->bStop_ = false;
+        this->LOD_ = LODParticle::Normal;
+
+        if ( GameMode::showsGraphics() )
+        {
+            try
+            {
+                this->init();
+            }
+            catch (const std::exception& ex)
+            {
+                orxout(internal_error) << "Couldn't load particle effect in BigExplosion: " << ex.what() << endl;
+                this->initZero();
+            }
+        }
+        else
+        {
+            this->initZero();
+        }
+
+        if (GameMode::isMaster())
+        {
+            this->destroyTimer_.setTimer(rnd(2, 4), false, createExecutor(createFunctor(&BigExplosion::stop, this)));
+        }
+
+        this->registerVariables();
+    }
+
+    BigExplosion::BigExplosion(Context* context, Vector3 initVelocity) : MobileEntity(context)
+    {
+        RegisterObject(BigExplosion);
+        this->setVelocity(initVelocity);
 
         if ( GameMode::showsGraphics() && ( !this->getScene() || !this->getScene()->getSceneManager() ) )
@@ -100,5 +136,5 @@
         this->debris4_->setSyncMode(0);
 
-        this->explosion_ = new StaticEntity(this->getContext());
+        this->explosion_ = new MobileEntity(this->getContext());
         this->explosion_->setSyncMode(0);
 
@@ -148,5 +184,10 @@
         this->debrisEntity4_->attach(debris4_);
 
+        // ///////////////////////
+        // TODO: particleSpawner is a static entity. It should probably be dynamic, for better explosions.
+        //
         ParticleSpawner* effect = new ParticleSpawner(this->getContext());
+        orxout() << "vel " << this->getVelocity() << endl;
+        // effect->setVelocity(this->getVelocity());
         effect->setDestroyAfterLife(true);
         effect->setSource("Orxonox/explosion2b");
@@ -155,4 +196,5 @@
 
         ParticleSpawner* effect2 = new ParticleSpawner(this->getContext());
+        // effect2->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(10, 200));
         effect2->setDestroyAfterLife(true);
         effect2->setSource("Orxonox/smoke6");
Index: code/trunk/src/orxonox/worldentities/BigExplosion.h
===================================================================
--- code/trunk/src/orxonox/worldentities/BigExplosion.h	(revision 9938)
+++ code/trunk/src/orxonox/worldentities/BigExplosion.h	(revision 9939)
@@ -22,5 +22,5 @@
  *   Author:
  *      Benjamin de Capitani
- *   Co-authors:
+ *   Co-authors:§
  *      ...
  *
@@ -33,12 +33,13 @@
 
 #include "tools/Timer.h"
-#include "StaticEntity.h"
+#include "MobileEntity.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport BigExplosion : public StaticEntity
+    class _OrxonoxExport BigExplosion : public MobileEntity
     {
         public:
             BigExplosion(Context* context);
+            BigExplosion(Context* context, Vector3 initVelocity);
             virtual ~BigExplosion();
 
@@ -60,5 +61,5 @@
             bool                  bStop_;
 
-            StaticEntity*         explosion_;
+            MobileEntity*         explosion_;
 
             MovableEntity*        debrisEntity1_;
Index: code/trunk/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 9938)
+++ code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 9939)
@@ -46,4 +46,5 @@
 #include "weaponsystem/WeaponPack.h"
 #include "weaponsystem/WeaponSet.h"
+#include "sound/WorldSound.h"
 
 #include "controllers/FormationController.h"
@@ -100,4 +101,14 @@
 
         this->setSyncMode(ObjectDirection::Bidirectional); // needed to synchronise e.g. aimposition
+
+        if (GameMode::isMaster())
+        {
+            this->explosionSound_ = new WorldSound(this->getContext());
+            this->explosionSound_->setVolume(1.0f);
+        }
+        else
+        {
+            this->explosionSound_ = 0;
+        }
     }
 
@@ -109,4 +120,5 @@
                 this->weaponSystem_->destroy();
         }
+
     }
 
@@ -135,6 +147,9 @@
         XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f);
 
+        XMLPortParam(Pawn, "explosionSound",  setExplosionSound,  getExplosionSound,  xmlelement, mode);
+
         XMLPortParam ( RadarViewable, "radarname", setRadarName, getRadarName, xmlelement, mode );
     }
+
 
     void Pawn::registerVariables()
@@ -290,5 +305,5 @@
     void Pawn::kill()
     {
-        this->damage(this->health_);
+    	this->damage(this->health_);
         this->death();
     }
@@ -314,5 +329,6 @@
         if (this->getGametype() && this->getGametype()->allowPawnDeath(this, this->lastHitOriginator_))
         {
-            // Set bAlive_ to false and wait for PawnManager to do the destruction
+            explosionSound_->play();
+        	// Set bAlive_ to false and wait for PawnManager to do the destruction
             this->bAlive_ = false;
 
@@ -365,6 +381,8 @@
         this->setDestroyWhenPlayerLeft(false);
 
-        BigExplosion* chunk = new BigExplosion(this->getContext());
+        orxout() << "big explosion: " << this->getVelocity() << endl;
+        BigExplosion* chunk = new BigExplosion(this->getContext(), this->getVelocity());
         chunk->setPosition(this->getPosition());
+        // chunk->setVelocity(this->getVelocity());
 
     }
@@ -376,4 +394,5 @@
             effect->setPosition(this->getPosition());
             effect->setOrientation(this->getOrientation());
+            effect->setVelocity(this->getVelocity());
             effect->setDestroyAfterLife(true);
             effect->setSource("Orxonox/explosion2b");
@@ -384,4 +403,5 @@
             effect->setPosition(this->getPosition());
             effect->setOrientation(this->getOrientation());
+            effect->setVelocity(this->getVelocity());
             effect->setDestroyAfterLife(true);
             effect->setSource("Orxonox/smoke6");
@@ -392,4 +412,5 @@
             effect->setPosition(this->getPosition());
             effect->setOrientation(this->getOrientation());
+            effect->setVelocity(this->getVelocity());
             effect->setDestroyAfterLife(true);
             effect->setSource("Orxonox/sparks");
@@ -527,4 +548,21 @@
 
 
+    void Pawn::setExplosionSound(const std::string &explosionSound)
+    {
+        if(explosionSound_ )
+            explosionSound_->setSource(explosionSound);
+        else
+            assert(0); // This should never happen, because soundpointer is only available on master
+    }
+
+    const std::string& Pawn::getExplosionSound()
+    {
+        if( explosionSound_ )
+            return explosionSound_->getSource();
+        else
+            assert(0);
+        return BLANKSTRING;
+    }
+
 
 }
Index: code/trunk/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Pawn.h	(revision 9938)
+++ code/trunk/src/orxonox/worldentities/pawns/Pawn.h	(revision 9939)
@@ -36,4 +36,5 @@
 #include "interfaces/RadarViewable.h"
 #include "worldentities/ControllableEntity.h"
+
 
 namespace orxonox // tolua_export
@@ -178,4 +179,7 @@
             virtual void changedVisibility();
 
+            void setExplosionSound(const std::string& engineSound);
+            const std::string& getExplosionSound();
+
         protected:
             virtual void preDestroy();
@@ -231,4 +235,7 @@
 
             Vector3 aimPosition_;
+
+            WorldSound* explosionSound_;
+
     }; // tolua_export
 } // tolua_export
