[Orxonox-commit 6065] r10724 - in code/branches/fabienHS15: data/levels data/levels/includes data/levels/templates data/overlays src/modules/overlays/hud src/modules/pickup/items src/modules/weapons/munitions src/orxonox/overlays src/orxonox/weaponsystem src/orxonox/worldentities/pawns

fvultier at orxonox.net fvultier at orxonox.net
Fri Oct 30 19:51:50 CET 2015


Author: fvultier
Date: 2015-10-30 19:51:49 +0100 (Fri, 30 Oct 2015)
New Revision: 10724

Added:
   code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.cc
   code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.h
Modified:
   code/branches/fabienHS15/data/levels/includes/pickups.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsCollateral.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsEscort.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsGhost.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsH2.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsHeartAttack.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiser.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsPirate.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsRing.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsSpacecruiser.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsSwallow.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsTransporter.oxi
   code/branches/fabienHS15/data/levels/includes/weaponSettingsbigship.oxi
   code/branches/fabienHS15/data/levels/pickups.oxw
   code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt
   code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.cc
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.h
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.cc
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.h
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.cc
   code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.h
   code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt
   code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc
   code/branches/fabienHS15/src/modules/weapons/munitions/LaserMunition.cc
   code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.cc
   code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.h
   code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.cc
   code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.h
   code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.cc
   code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h
Log:
The weapon system HUD rescales properly if the window size changes.

Modified: code/branches/fabienHS15/data/levels/includes/pickups.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/pickups.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/pickups.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -248,3 +248,29 @@
     spawnerTemplate = "hugeshrinkpickupRepresentation"
     inventoryRepresentation = "HugeShrink"
 />
+
+<!-- Boost Pickup -->
+
+<PickupRepresentation
+    name = "smallboostpickup"
+    pickupName = "Small Boost"
+    pickupDescription = "Restores the boost by a bit"
+    spawnerTemplate = "smallboostpickupRepresentation"
+    inventoryRepresentation = "SmallBoost"
+/>
+
+<PickupRepresentation
+    name = "mediumboostpickup"
+    pickupName = "Medium Boost"
+    pickupDescription = "Restores the boost"
+    spawnerTemplate = "mediumboostpickupRepresentation"
+    inventoryRepresentation = "MediumBoost"
+/>
+
+<PickupRepresentation
+    name = "hugeboostpickup"
+    pickupName = "Huge Boost"
+    pickupDescription = "Restores the boost considerably"
+    spawnerTemplate = "hugeboostpickupRepresentation"
+    inventoryRepresentation = "HugeBoost"
+/>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsCollateral.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsCollateral.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsCollateral.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -24,9 +24,9 @@
             <!--Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,0" /--> <!-- THING BETWEEN -->
             <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="90" yaw="-90" position="-1.5, 1, -0.3" scale=0.6 /> <!-- MACHINE GUN -->
           </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 />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
+          <LightningGun mode=1 munitionpershot=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
         </Weapon>
 
         <Weapon>
@@ -35,8 +35,8 @@
             <!--Model mesh="LightningGun-s.mesh" pitch="103" roll="90" yaw="90" position="0.2,-1.35,0" /-->
             <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="90" yaw="-90" position="1.8, 1, -0.3" scale=0.6 /> <!-- MACHINE GUN -->
           </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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsEscort.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsEscort.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsEscort.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -13,12 +13,12 @@
           <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
         </links>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
-          <!--HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" projectileMesh="LaserBeam2.mesh" /-->
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
+          <!--HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" projectileMesh="LaserBeam2.mesh" /-->
         </Weapon>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
-          <!--HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" projectileMesh="LaserBeam2.mesh" /-->
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
+          <!--HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" projectileMesh="LaserBeam2.mesh" /-->
         </Weapon>
       </WeaponPack>
       <WeaponPack>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsGhost.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsGhost.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsGhost.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -18,20 +18,20 @@
           <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
         </links>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 healthdamage=3.14159 delay=0 material="Flares/point_lensflare" />
-          <HsW01 mode=0 munitionpershot=0 healthdamage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />
+          <HsW01 mode=0 munitionpershot=1 healthdamage=3.14159 delay=0 material="Flares/point_lensflare" />
+          <HsW01 mode=0 munitionpershot=1 healthdamage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />
           <LightningGun mode=1 muzzleoffset="0,0,0" damage=30 shielddamage=10 />
         </Weapon>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 damage=3.14159 delay=0  material="Flares/point_lensflare" />
-          <HsW01 mode=0 munitionpershot=0 damage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />
+          <HsW01 mode=0 munitionpershot=1 damage=3.14159 delay=0  material="Flares/point_lensflare" />
+          <HsW01 mode=0 munitionpershot=1 damage=3.14159 delay=0.125 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />
           <LightningGun mode=1 muzzleoffset="0,0,0" damage=30 shielddamage=10 />
         </Weapon>
         <Weapon>
-          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=50 />
+          <SimpleRocketFire mode=2 munitionpershot=1 muzzleoffset="0,0,0" damage=50 />
         </Weapon>
         <Weapon>
-          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=50 delay=0.1 />
+          <SimpleRocketFire mode=2 munitionpershot=1 muzzleoffset="0,0,0" damage=50 delay=0.1 />
         </Weapon>
       </WeaponPack>
     </weapons>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsH2.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsH2.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsH2.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -17,16 +17,16 @@
             <Model mesh="hs-w01.mesh"  roll="180" position="0.0, 0.5, 0.0" scale=2 />
             <Model mesh="hs-w01s.mesh" roll="180" position="0.1, 0.0, 0.0" scale=2 />
           </attached>
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9,-4" />
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9,-4" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9,-4" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9,-4" />
         </Weapon>
         <Weapon>
           <attached>
             <Model mesh="hs-w01.mesh"  roll="180" position=" 0.0, 0.5, 0.0" scale=2 />
             <Model mesh="hs-w01s.mesh" roll="180" position="-0.1, 0.0, 0.0" scale=2 />
           </attached>
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9, -4.0" />
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9, -4.0" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.8, 0.9, -4.0" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.8, 0.9, -4.0" />
         </Weapon>
       </WeaponPack>
       <WeaponPack>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsHeartAttack.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsHeartAttack.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsHeartAttack.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -19,20 +19,20 @@
           <DefaultWeaponmodeLink firemode=3 weaponmode=3 />
         </links>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -11.4, 0, -5" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 11.4, 0, -5" />
         </Weapon>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" -15, 1.6, -2" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 15, 1.6, -2" />
         </Weapon>
         <Weapon>
-          <LaserFire mode=1 munitionpershot=0 muzzleoffset="2.2,6,16" damage=30 shielddamage=20 />
-          <LaserFire mode=1 munitionpershot=0 muzzleoffset="-2.2,6,16" damage=30 shielddamage=20 />
+          <LaserFire mode=1 munitionpershot=1 muzzleoffset="2.2,6,16" damage=30 shielddamage=20 />
+          <LaserFire mode=1 munitionpershot=1 muzzleoffset="-2.2,6,16" damage=30 shielddamage=20 />
           <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
           <GravityBombFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
         </Weapon>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiser.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiser.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiser.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -23,8 +23,8 @@
             <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -33,8 +33,8 @@
             <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsHeavyCruiserBody.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -20,15 +20,15 @@
         <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsPirate.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsPirate.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsPirate.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -13,12 +13,12 @@
           <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
         </links>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=2.5 material="Flares/point_lensflare" />
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=2.5 material="Flares/point_lensflare" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset=" 0.5,0.6,1.7" />
         </Weapon>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0     damage=2.5 material="Flares/point_lensflare" />
-          <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=2.5 material="Flares/point_lensflare" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=2.5 material="Flares/point_lensflare" muzzleoffset="-0.5,0.6,1.7" />
         </Weapon>
       </WeaponPack>
     </weapons>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsRing.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsRing.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsRing.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -6,21 +6,25 @@
 <weaponsets>
   <WeaponSet firemode=0 />
   <WeaponSet firemode=1 />
+  <WeaponSet firemode=2 />
 </weaponsets>
 <weapons>
   <WeaponPack>
     <links>
       <DefaultWeaponmodeLink firemode=0 weaponmode=0 />
       <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
+      <DefaultWeaponmodeLink firemode=2 weaponmode=2 />
     </links>
     <Weapon>
-      <IceGun mode=0 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset="11,0,-3" freezefactor=0.5 freezetime=2.0 />
+      <LaserFire mode=0 munitionpershot=1 damage=10 shielddamage=5 />
+      <IceGun mode=1 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset="11,0,-3" freezefactor=0.5 freezetime=2.0 />
     </Weapon>
     <Weapon>
-      <IceGun mode=0 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset=" -11,0,-3" freezefactor=0.5 freezetime=2.0 />
+      <LaserFire mode=0 munitionpershot=1 damage=10 shielddamage=5 />
+      <IceGun mode=1 munitionpershot=1 delay=0.125 damage=9.3 muzzleoffset=" -11,0,-3" freezefactor=0.5 freezetime=2.0 />
     </Weapon>
     <Weapon>
-      <GravityBombFire mode=1 munitionpershot=1 delay=0.125 damage=3 muzzleoffset="0,0,-7"/>
+      <GravityBombFire mode=2 munitionpershot=1 delay=0.125 damage=3 muzzleoffset="0,0,-7"/>
     </Weapon>
   </WeaponPack>
 </weapons>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsSpacecruiser.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsSpacecruiser.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsSpacecruiser.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -27,8 +27,8 @@
             <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -37,8 +37,8 @@
             <Model mesh="LightningGun-s.mesh" pitch="103" roll="90" yaw="90" position="0.2,-1.35,0" />
             <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -51,8 +51,8 @@
             <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -61,8 +61,8 @@
             <Model mesh="LightningGun-s.mesh" pitch="103" roll="90" yaw="90" position="0.2,-1.35,0" />
             <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -71,8 +71,8 @@
             <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
@@ -81,8 +81,8 @@
             <Model mesh="LightningGun-s.mesh" pitch="103" roll="90" yaw="90" position="0.2,-1.35,0" />
             <Model mesh="hs-w01_reduced.mesh" roll="90" pitch="-104" yaw="-90" position="0,1.3,0.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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>
       </WeaponPack>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsSwallow.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsSwallow.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsSwallow.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -15,11 +15,11 @@
         </links>
         <Weapon>
           <SplitGun mode=0 munitionpershot=1 damage=6.0 muzzleoffset="0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 />
-          <LaserFire mode=1 munitionpershot=0 damage=10.0 muzzleoffset="0.5,0.6,1.7" />
+          <LaserFire mode=1 munitionpershot=1 damage=10.0 muzzleoffset="0.5,0.6,1.7" />
         </Weapon>
         <Weapon>
           <SplitGun mode=0 munitionpershot=1 damage=6.0 muzzleoffset="-0.5,0.6,1.7" splittime=0.2 numberofsplits=2 numberofchilds=3 spread=0.1 damagereduction=2.0 />
-          <LaserFire mode=1 munitionpershot=0 damage=10.0 muzzleoffset="-0.5,0.6,1.7" />
+          <LaserFire mode=1 munitionpershot=1 damage=10.0 muzzleoffset="-0.5,0.6,1.7" />
         </Weapon>       
       </WeaponPack>
     </weapons>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsTransporter.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsTransporter.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsTransporter.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -13,13 +13,13 @@
           <DefaultWeaponmodeLink firemode=1 weaponmode=1 />
         </links>
         <Weapon>
-          <HsW01 mode=0 munitionpershot=0 delay=0.1   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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.1   damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
-          <HsW01 mode=0 munitionpershot=0 delay=0.1   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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.1   damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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>
       </WeaponPack>

Modified: code/branches/fabienHS15/data/levels/includes/weaponSettingsbigship.oxi
===================================================================
--- code/branches/fabienHS15/data/levels/includes/weaponSettingsbigship.oxi	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/includes/weaponSettingsbigship.oxi	2015-10-30 18:51:49 UTC (rev 10724)
@@ -20,16 +20,16 @@
         <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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
+          <HsW01 mode=0 munitionpershot=1 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" />
+          <HsW01 mode=0 munitionpershot=1 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
+          <HsW01 mode=0 munitionpershot=1 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>

Modified: code/branches/fabienHS15/data/levels/pickups.oxw
===================================================================
--- code/branches/fabienHS15/data/levels/pickups.oxw	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/pickups.oxw	2015-10-30 18:51:49 UTC (rev 10724)
@@ -35,11 +35,17 @@
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
     <SpawnPoint position="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
 
+    <!-- Boost pickup -->
+    
+    <PickupSpawner pickup=smallboostpickup position="-25,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
+    <PickupSpawner pickup=mediumboostpickup position="0,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
+    <PickupSpawner pickup=hugeboostpickup position="25,-125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
+
     <!-- DamageBoost pickup -->
     
     <PickupSpawner pickup=smalldamageboostpickup position="-25,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
     <PickupSpawner pickup=mediumdamageboostpickup position="0,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
-    <PickupSpawner pickup=hugedamageboostpickup position="25,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />         
+    <PickupSpawner pickup=hugedamageboostpickup position="25,-100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
 
     <!-- Munition pickups -->
 

Modified: code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt
===================================================================
--- code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt	2015-10-30 18:51:49 UTC (rev 10724)
@@ -1,3 +1,80 @@
+<!-- Boost pickups: -->
+
+<Template name=smallboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.3 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=smallboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "smallboostpickup"
+    boostrefill = 0.5
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=mediumboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.5 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=mediumboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "mediumboostpickup"
+    boostrefill = 0.75
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
+<Template name=hugeboostpickupRepresentation>
+    <PickupRepresentation>
+        <spawner-representation>
+            <StaticEntity>
+                <attached>
+                    <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Sphere2" scale=0.1>
+                        <attached>
+                            <Billboard position="0,0,0" colour="0.0,1.0,0.8" material="Flash" scale=0.7 />
+                        </attached>
+                    </Billboard>
+                </attached>
+            </StaticEntity>
+        </spawner-representation>
+    </PickupRepresentation>
+</Template>
+
+<Template name=hugeboostpickup baseclass=BoostPickup>
+  <BoostPickup
+    representation = "hugeboostpickup"
+    boostrefill = 1.0
+    activationType = "immediate"
+    durationType = "once"
+  />
+</Template>
+
 <!-- Shield pickups: -->
 
 <Template name=smallshieldpickupRepresentation>

Modified: code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo	2015-10-30 18:51:49 UTC (rev 10724)
@@ -133,7 +133,7 @@
      position               = "0.0, 0.0"
      pickpoint              = "0, 0"
      visible                = "true"
-     weaponModeHUDSize      = "0.12, 0.04"
+     weaponModeHUDSize      = "0.09, 0.03"
     />
     
     <HUDTimer

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.cc
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -28,12 +28,8 @@
 
 #include "HUDWeapon.h"
 
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/TextureGenerator.h"
 #include "util/Convert.h"
 #include "core/class/Super.h"
 
@@ -185,7 +181,6 @@
             (*it)->setWeaponModeIndex(positionIndex);
             (*it)->setWeaponIndex(this->weaponIndex_);
             (*it)->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
-            (*it)->positionHUDChilds();
 
             ++ positionIndex;
         }

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.h
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeapon.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -36,13 +36,9 @@
 #include <string>
 
 #include <OgreOverlayManager.h>
-#include <OgreMaterialManager.h>
-#include <OgreTechnique.h>
-#include <OgrePass.h>
 #include <OgrePanelOverlayElement.h> 
 
 #include "overlays/OrxonoxOverlay.h"
-#include "overlays/OverlayText.h"
 #include "tools/interfaces/Tickable.h"
 #include "worldentities/pawns/Pawn.h"
 #include "overlays/OverlayGroup.h"
@@ -78,13 +74,11 @@
         inline void setWeaponIndex(int index)
             { weaponIndex_ = index;
               this->updatePosition();
-            }
+            }        
 
-        virtual void positionHUDChilds();
-
     private:
         virtual void createHUDChilds();
-        
+        virtual void positionHUDChilds();
         virtual void destroyHUDChilds();
         virtual void updateWeaponModeList();
         virtual void updateSize();

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.cc
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -20,25 +20,18 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Yuning Chai
- *      Felix Schulthess
+ *      Fabien Vultier
  *   Co-authors:
- *      Reto Grieder
- *      Wolfgang Roenninger
+ *      ...
  *
  */
 
 #include "HUDWeaponMode.h"
 
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/TextureGenerator.h"
-#include "weaponsystem/WeaponMode.h"
-#include "weaponsystem/Munition.h"
 #include "util/Convert.h"
+#include "core/class/Super.h"
 
 namespace orxonox
 {
@@ -86,6 +79,7 @@
         textOverlayLeft_->setTextSize(0.02f);
         textOverlayLeft_->setColour(ColourValue(0.21,0.70,0.21,1.0));
         textOverlayLeft_->setAspectCorrection(false);
+        textOverlayLeft_->setZOrder(600);
         
         this->textOverlayRight_ = new OverlayText(this->getContext());
         assert(this->textOverlayLeft_.get());
@@ -96,6 +90,7 @@
         textOverlayRight_->setTextSize(0.02f);
         textOverlayRight_->setColour(ColourValue(0.21,0.70,0.21,1.0));
         textOverlayRight_->setAspectCorrection(false);
+        textOverlayRight_->setZOrder(600);
 
         materialNameState_ = "Orxonox/WSHUD_Reloading";
 
@@ -136,20 +131,19 @@
 
             if (munition != NULL)
             {
-                bool useSeparateMagazines = munition->getUseSeparateMagazines();
-                bool stackMunition = munition->getStackMunition();
+                MunitionDeployment::Value deployment = munition->getMunitionDeployment();
 
-                if (!useSeparateMagazines && !stackMunition)
+                if (deployment == MunitionDeployment::Share)
                 {
                     this->textOverlayLeft_->setCaption(multi_cast<std::string>(munition->getNumMunitionInCurrentMagazine(weaponMode_)));
                     this->textOverlayRight_->setCaption(multi_cast<std::string>(munition->getNumMagazines()));
                 }
-                else if (!useSeparateMagazines && stackMunition)
+                else if (deployment == MunitionDeployment::Stack)
                 {
                     this->textOverlayLeft_->setCaption(multi_cast<std::string>(munition->getNumMunition(weaponMode_)));
                     this->textOverlayRight_->setCaption("");
                 }
-                else if (useSeparateMagazines && !stackMunition)
+                else if (deployment == MunitionDeployment::Separate)
                 {
                     this->textOverlayLeft_->setCaption(multi_cast<std::string>(munition->getNumMunitionInCurrentMagazine(weaponMode_)));
                     this->textOverlayRight_->setCaption(multi_cast<std::string>(munition->getNumMagazines()));
@@ -244,18 +238,17 @@
 
         if (munition != NULL)
         {
-            bool useSeparateMagazines = munition->getUseSeparateMagazines();
-            bool stackMunition = munition->getStackMunition();
+            MunitionDeployment::Value deployment = munition->getMunitionDeployment();
 
-            if (!useSeparateMagazines && !stackMunition)
+            if (deployment == MunitionDeployment::Share)
             {
                 overlayElementMunition_->setMaterialName("Orxonox/WSHUD_MunitionShare");
             }
-            else if (!useSeparateMagazines && stackMunition)
+            else if (deployment == MunitionDeployment::Stack)
             {
                 overlayElementMunition_->setMaterialName("Orxonox/WSHUD_MunitionStack");
             }
-            else if (useSeparateMagazines && !stackMunition)
+            else if (deployment == MunitionDeployment::Separate)
             {
                 overlayElementMunition_->setMaterialName("Orxonox/WSHUD_MunitionSeparate");
             }

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.h
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponMode.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -37,9 +37,6 @@
 #include <string>
 
 #include <OgreOverlayManager.h>
-#include <OgreMaterialManager.h>
-#include <OgreTechnique.h>
-#include <OgrePass.h>
 #include <OgrePanelOverlayElement.h> 
 
 #include "overlays/OrxonoxOverlay.h"
@@ -48,6 +45,8 @@
 #include "worldentities/pawns/Pawn.h"
 #include "overlays/OverlayGroup.h"
 #include "weaponsystem/ReplenishingMunition.h"
+#include "weaponsystem/WeaponMode.h"
+#include "weaponsystem/Munition.h"
 
 namespace orxonox
 {
@@ -83,11 +82,10 @@
               this->updatePosition();
             }
 
-        virtual void positionHUDChilds();
-
     private:
         virtual void updateSize();
         virtual void updatePosition();
+        virtual void positionHUDChilds();
 
         WeakPtr<Pawn> owner_;
         WeakPtr<WeaponMode> weaponMode_;

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.cc
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -20,22 +20,16 @@
  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  *   Author:
- *      Yuning Chai
- *      Felix Schulthess
+ *      Fabien Vultier
  *   Co-authors:
- *      Reto Grieder
- *      Wolfgang Roenninger
+ *      ...
  *
  */
 
 #include "HUDWeaponSystem.h"
 
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h>
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "tools/TextureGenerator.h"
 #include "weaponsystem/WeaponSystem.h"
 #include "weaponsystem/WeaponPack.h"
 #include "weaponsystem/Weapon.h"
@@ -72,16 +66,6 @@
         XMLPortParam(HUDWeaponSystem, "weaponModeHUDSize", setWeaponModeHUDSize, getWeaponModeHUDSize, xmlelement, mode);
     }
 
-    void HUDWeaponSystem::tick(float dt)
-    {
-        SUPER(HUDWeaponSystem, tick, dt);
-
-        if (this->owner_)
-        {
-
-        }
-    }  
-
     void HUDWeaponSystem::positionChanged()
     {
         OrxonoxOverlay::positionChanged();
@@ -110,22 +94,16 @@
     void HUDWeaponSystem::changedOverlayGroup()
     {
         SUPER(HUDWeaponSystem, changedOverlayGroup);
-
-        //this->getOverlayGroup()->addElement(this->textOverlay_.get());
     }   
 
     void HUDWeaponSystem::changedVisibility()
     {
         SUPER(HUDWeaponSystem, changedVisibility);
-
-        //this->textOverlay_->setVisible(this->isVisible());
     }
 
     void HUDWeaponSystem::changedName()
     {
         SUPER(HUDWeaponSystem, changedName);
-
-        //this->textOverlay_->setName(this->getName() + "text");
     }  
 
     void HUDWeaponSystem::updateWeaponList()
@@ -177,14 +155,11 @@
     void HUDWeaponSystem::positionHUDChilds()
     {
         int positionIndex = 0;
-        //this->setSize(weaponModeHUDSize_);
-        // this->weaponModeHUDActualSize_ = this->getActualSize();
 
         for (std::vector<WeakPtr<HUDWeapon> >::iterator it = hudWeapons_.begin(); it != hudWeapons_.end(); ++it)
         {
             (*it)->setWeaponIndex(positionIndex);
             (*it)->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
-            (*it)->positionHUDChilds();           
 
             ++ positionIndex;
         }

Modified: code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.h
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDWeaponSystem.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -35,29 +35,20 @@
 #include <vector>
 #include <string>
 
-#include <OgreOverlayManager.h>
-#include <OgreMaterialManager.h>
-#include <OgreTechnique.h>
-#include <OgrePass.h>
-#include <OgrePanelOverlayElement.h> 
-
 #include "overlays/OrxonoxOverlay.h"
-#include "overlays/OverlayText.h"
-#include "tools/interfaces/Tickable.h"
 #include "worldentities/pawns/Pawn.h"
 #include "overlays/OverlayGroup.h"
 #include "HUDWeapon.h"
 
 namespace orxonox
 {
-    class _OverlaysExport HUDWeaponSystem : public OrxonoxOverlay, public Tickable
+    class _OverlaysExport HUDWeaponSystem : public OrxonoxOverlay
     {
     public:
         HUDWeaponSystem(Context* context);
         virtual ~HUDWeaponSystem();
 
         virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void tick(float dt);
         virtual void changedOwner();
         virtual void changedOverlayGroup();
         virtual void changedVisibility();

Added: code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.cc
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.cc	                        (rev 0)
+++ code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -0,0 +1,147 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file BoostPickup.cc
+    @brief Implementation of the BoostPickup class.
+*/
+
+#include "BoostPickup.h"
+
+#include <sstream>
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+#include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+    RegisterClass(BoostPickup);
+
+    /**
+    @brief
+        Constructor. Registers the object and initializes the member variables.
+    */
+    BoostPickup::BoostPickup(Context* context) : Pickup(context)
+    {
+        RegisterObject(BoostPickup);
+
+        this->initialize();
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    BoostPickup::~BoostPickup()
+    {
+    }
+
+    /**
+    @brief
+        Initializes the member variables.
+    */
+    void BoostPickup::initialize(void)
+    {
+        this->boostRefill_ = 0.0f;
+        //Defines who is allowed to pick up the pickup.
+        this->addTarget(ClassIdentifier<SpaceShip>::getIdentifier());
+    }
+
+    /**
+    @brief
+        Method for creating a BoostPickup object through XML.
+    */
+    void BoostPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
+    {
+        SUPER(BoostPickup, XMLPort, xmlelement, mode);
+
+        XMLPortParam(BoostPickup, "boostrefill", setBoostRefill, getBoostRefill, xmlelement, mode);
+    }
+
+    /**
+    @brief
+        Set the boost refill of this pickup.
+    */
+    void BoostPickup::setBoostRefill(float boostRefill)
+    {
+        if(boostRefill >= 0.0f && boostRefill <= 1.0f)
+        {
+            this->boostRefill_ = boostRefill;
+        }
+    }
+
+    /**
+    @brief
+        Is called when the pickup has transisted from used to unused or the other way around.
+    */
+    void BoostPickup::changedUsed(void)
+    {
+        SUPER(BoostPickup, changedUsed);
+
+        SpaceShip* ship = this->carrierToSpaceShipHelper();
+        if(ship == NULL) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
+            this->Pickupable::destroy();
+
+        // If the pickup has transited to used.
+        if(this->isUsed())
+        {
+            float gainedBoostPower = ship->getInitialBoostPower() * boostRefill_;
+            ship->gainBoostPower(gainedBoostPower);
+
+            // This will destroy the pickp
+            this->setUsed(false);
+        }
+        else
+        {
+            this->Pickupable::destroy();
+        }
+    }
+
+    /**
+    @brief
+        Helper to transform the PickupCarrier to a SpaceShip, and throw an error message if the conversion fails.
+    @return
+        A pointer to the SpaceShip, or NULL if the conversion failed.
+    */
+    SpaceShip* BoostPickup::carrierToSpaceShipHelper(void)
+    {
+        PickupCarrier* carrier = this->getCarrier();
+        SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
+
+        if(ship == NULL)
+        {
+            orxout(internal_error, context::pickups) << "Invalid PickupCarrier in BoostPickup." << endl;
+        }
+
+        return ship;
+    }
+
+
+}
+

Added: code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.h
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.h	                        (rev 0)
+++ code/branches/fabienHS15/src/modules/pickup/items/BoostPickup.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -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:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file BoostPickup.h
+    @brief Declaration of the BoostPickup class.
+    @ingroup PickupItems
+*/
+
+#ifndef _BoostPickup_H__
+#define _BoostPickup_H__
+
+#include "pickup/PickupPrereqs.h"
+
+#include <string>
+
+#include "pickup/Pickup.h"
+
+namespace orxonox
+{
+
+    class _PickupExport BoostPickup : public Pickup
+    {
+        public:
+
+            BoostPickup(Context* context); //!< Constructor.
+            virtual ~BoostPickup(); //!< Destructor.
+
+            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a BoostPickup object through XML.
+
+            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
+            inline float getBoostRefill()
+                { return this->boostRefill_; }
+
+        protected:
+            void setBoostRefill(float boostRefill); //!< Sets the boost refill according to the XML.
+
+        private:
+            void initialize(void); //!< Initializes the member variables.
+            Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
+            SpaceShip* carrierToSpaceShipHelper(void); //!< Helper to transform the PickupCarrier to a SpaceShip, and throw an error message if the conversion fails.
+
+            float boostRefill_; //!< The amount of boost refilled by the user of the pickup. 1.0 means full refill, 0.5 means half refill.
+    };
+}
+
+#endif /* _BoostPickup_H__ */

Modified: code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt	2015-10-30 18:51:49 UTC (rev 10724)
@@ -7,6 +7,7 @@
   ShieldPickup.cc
   ShrinkPickup.cc
   DamageBoostPickup.cc
+  BoostPickup.cc
   MunitionPickup.cc
   MunitionContainer.cc
 )

Modified: code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -110,7 +110,6 @@
         if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
             this->Pickupable::destroy();
 
-
         // If the pickup has transited to used.
         if(this->isUsed())
         {

Modified: code/branches/fabienHS15/src/modules/weapons/munitions/LaserMunition.cc
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/munitions/LaserMunition.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/modules/weapons/munitions/LaserMunition.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -42,7 +42,7 @@
     {
         RegisterObject(LaserMunition);
 
-        this->maxMunitionPerMagazine_ = 10;
+        this->maxMunitionPerMagazine_ = 20;
         this->maxMagazines_ = 10;
         this->magazines_ = 10;
 
@@ -54,6 +54,6 @@
         this->replenishInterval_ = 0.5f;
         this->replenishMunitionAmount_ = 1;
 
-        this->reloadTime_ = 0.8f;
+        this->reloadTime_ = 0.5f;
     }
 }

Modified: code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.cc
===================================================================
--- code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -449,4 +449,12 @@
         Ogre::TextureUnitState* tempTx = ptr->getTechnique(0)->getPass(0)->getTextureUnitState(0);
         tempTx->setColourOperationEx(Ogre::LBX_MODULATE, Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, colour);
     }
+
+    void OrxonoxOverlay::setZOrder(unsigned short order)
+    {
+        if (this->overlay_)
+        {
+            this->overlay_->setZOrder(order);
+        }
+    }
 }

Modified: code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.h
===================================================================
--- code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/overlays/OrxonoxOverlay.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -185,6 +185,7 @@
             { return this->group_; }
         virtual void changedOverlayGroup()
             { this->changedVisibility(); }
+        virtual void setZOrder(unsigned short order);
 
     protected:
         virtual void angleChanged();

Modified: code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.cc
===================================================================
--- code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -350,7 +350,7 @@
                 }
 
                 // If there was no change in a loop, all magazines are full (or locked due to loading)
-                // Because the first loop does not stat at the beginning of the map we have to treat is separately
+                // Because the first loop does not start at the beginning of the map we have to treat is separately
                 if (!change && !firstLoop)
                 {
                     break;

Modified: code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.h
===================================================================
--- code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/weaponsystem/Munition.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -77,11 +77,10 @@
                 { return this->maxMagazines_; }
             inline unsigned int getMaxMunitionPerMagazine() const
                 { return this->maxMunitionPerMagazine_; }
-            inline bool getUseSeparateMagazines() const
-                { return deployment_ == MunitionDeployment::Separate; }
-            inline bool getStackMunition() const
-                { return deployment_ == MunitionDeployment::Stack; }
+            inline MunitionDeployment::Value getMunitionDeployment() const
+                { return deployment_; }
 
+
             bool canTakeMunition(unsigned int amount, WeaponMode* user) const;
             bool takeMunition(unsigned int amount, WeaponMode* user);
 

Modified: code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.cc	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.cc	2015-10-30 18:51:49 UTC (rev 10724)
@@ -296,6 +296,24 @@
             this->resetCamera();
         }
     }
+
+    void SpaceShip::gainBoostPower(float gainedBoostPower)
+    {
+        this->boostPower_ += gainedBoostPower;
+        
+        if (this->boostPower_ > this->initialBoostPower_)
+        {
+            this->boostPower_ = this->initialBoostPower_;
+        }
+
+        // If the booster is in cooldown mode and we gained boost power, the abort the cooldown.
+        if (this->isBoostCoolingDown() && this->boostPower_ > 0.0f)
+        {
+            timer_.stopTimer();
+            this->boostCooledDown();
+        }
+    }
+
     /**
     @brief
         Add an Engine to the SpaceShip.

Modified: code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h	2015-10-30 18:51:04 UTC (rev 10723)
+++ code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h	2015-10-30 18:51:49 UTC (rev 10724)
@@ -249,6 +249,11 @@
             */
             inline float getShakeAmplitude() const
                 { return this->shakeAmplitude_; }
+            /**
+            @brief Add boost power. Is non-negative.
+            @return Returns the current boost power.
+            */
+            void gainBoostPower(float gainedBoostPower);
 
         protected:
             bool bInvertYAxis_;




More information about the Orxonox-commit mailing list