[Orxonox-commit 3905] r8579 - in code/branches/presentation: data/defaultConfig data/levels data/levels/includes data/levels/templates data/particle src/modules/weapons/projectiles src/modules/weapons/weaponmodes src/orxonox/controllers src/orxonox/graphics src/orxonox/items src/orxonox/weaponsystem src/orxonox/worldentities src/orxonox/worldentities/pawns

dafrick at orxonox.net dafrick at orxonox.net
Wed May 25 21:28:29 CEST 2011


Author: dafrick
Date: 2011-05-25 21:28:29 +0200 (Wed, 25 May 2011)
New Revision: 8579

Removed:
   code/branches/presentation/data/levels/includes/weaponSettingsImmTest.oxi
   code/branches/presentation/data/levels/shieldTest.oxw
   code/branches/presentation/data/levels/templates/spaceshipImmTest.oxt
   code/branches/presentation/data/particle/Shield.particle
   code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.cc
   code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.h
Modified:
   code/branches/presentation/data/defaultConfig/keybindings.ini
   code/branches/presentation/data/levels/includes/weaponSettingsAssff.oxi
   code/branches/presentation/data/levels/templates/spaceshipAssff.oxt
   code/branches/presentation/src/modules/weapons/projectiles/CMakeLists.txt
   code/branches/presentation/src/modules/weapons/projectiles/Projectile.cc
   code/branches/presentation/src/modules/weapons/projectiles/Projectile.h
   code/branches/presentation/src/modules/weapons/projectiles/Rocket.cc
   code/branches/presentation/src/modules/weapons/projectiles/Rocket.h
   code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.cc
   code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.h
   code/branches/presentation/src/modules/weapons/weaponmodes/EnergyDrink.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/FusionFire.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/HsW01.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/LaserFire.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/LightningGun.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/RocketFire.cc
   code/branches/presentation/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
   code/branches/presentation/src/orxonox/controllers/Controller.h
   code/branches/presentation/src/orxonox/controllers/HumanController.cc
   code/branches/presentation/src/orxonox/controllers/HumanController.h
   code/branches/presentation/src/orxonox/graphics/Camera.cc
   code/branches/presentation/src/orxonox/graphics/Camera.h
   code/branches/presentation/src/orxonox/items/Engine.cc
   code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.cc
   code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.h
   code/branches/presentation/src/orxonox/worldentities/ControllableEntity.cc
   code/branches/presentation/src/orxonox/worldentities/ControllableEntity.h
   code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.cc
   code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.h
   code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc
   code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h
Log:
Reverse merge to revert last, failed, merge. Apparently you can't partially commit a merge.


Modified: code/branches/presentation/data/defaultConfig/keybindings.ini
===================================================================
--- code/branches/presentation/data/defaultConfig/keybindings.ini	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/defaultConfig/keybindings.ini	2011-05-25 19:28:29 UTC (rev 8579)
@@ -20,7 +20,7 @@
 KeyDivide=
 KeyDown="scale -1 moveFrontBack"
 KeyE="scale -1 rotateRoll"
-KeyEnd="boost"
+KeyEnd=boost
 KeyEquals=
 KeyEscape="keyESC"
 KeyF="scale -1 moveUpDown"
@@ -118,7 +118,7 @@
 KeySemicolon=
 KeySlash=
 KeySleep=
-KeySpace="boost"
+KeySpace=boost
 KeyStop=
 KeySystemRequest="printScreen"
 KeyT="onpress fire 3"

Modified: code/branches/presentation/data/levels/includes/weaponSettingsAssff.oxi
===================================================================
--- code/branches/presentation/data/levels/includes/weaponSettingsAssff.oxi	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/levels/includes/weaponSettingsAssff.oxi	2011-05-25 19:28:29 UTC (rev 8579)
@@ -25,7 +25,7 @@
           </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 />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
         </Weapon>
         <Weapon>
           <attached>
@@ -35,11 +35,11 @@
           </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=3.14159 shielddamage=20 />
+          <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 />
+          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=50 />
+          <RocketFire mode=3 muzzleoffset="0,0,0" damage=100 />
         </Weapon>
       </WeaponPack>
       <WeaponPack>

Deleted: code/branches/presentation/data/levels/includes/weaponSettingsImmTest.oxi
===================================================================
--- code/branches/presentation/data/levels/includes/weaponSettingsImmTest.oxi	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/levels/includes/weaponSettingsImmTest.oxi	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,57 +0,0 @@
-    <weaponslots>
-      <WeaponSlot position="-15.0,-1.5,0" />
-      <WeaponSlot position=" 15.0,-1.5,0" />
-      <WeaponSlot position="    0,   0,0" />
-    </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>
-            <!-- HsW01 is the standard Weapon, 4 slots => 4 Projectiles spawned at one click -->
-            <!-- LightningGun is the spiral weapon, 2 slots -->
-            <!-- SimpleRocket is the target-following rocket -->
-            <!-- Rocket is the player-guided rocket -->
-        <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" shielddamage=5 />
-        </Weapon>
-        <Weapon>
-          <attached>
-            <Model mesh="LightningGun.mesh" pitch="103" roll="90" yaw="90" position="0,-1.35,0" />
-            <!--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" />
-          <LightningGun mode=1 muzzleoffset="0,0,0" healthdamage=0 shielddamage=500 />
-        </Weapon>
-        <Weapon>
-          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" shielddamage=50 />
-          <RocketFire mode=3 muzzleoffset="0,0,0" healthdamage=80 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>

Deleted: code/branches/presentation/data/levels/shieldTest.oxw
===================================================================
--- code/branches/presentation/data/levels/shieldTest.oxw	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/levels/shieldTest.oxw	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,85 +0,0 @@
-<LevelInfo
- name = "Shield Testlevel"
- description = "A simple Level with one shielded drone to shoot at"
- tags = "test"
-/>
-
-<?lua
-  include("HUDTemplates3.oxo")
-  include("stats.oxo")
-  include("templates/spaceshipImmTest.oxt")
-  include("templates/lodInformation.oxt")
-?>
-
-<Level
- name         = "shieldTL"
- description  = "LEVEL-DESCRIPTION"
->
-
-<templates>
-  <Template link=lodtemplate_default />
-</templates>
-
-<Scene
-   ambientlight = "0.8, 0.5, 0.5"
-   skybox       = "Orxonox/Starbox"
->
-
-
-
-
-<Drone name="meineDrohne"
-    primarythrust= "80"
-    auxilarythrust= "10"
-    rotationthrust= "10"
-    mass= "50"
-    linearDamping= "0.9"
-    angularDamping= "0.7"
-
-    health= 100
-    maxhealth= 150
-    inithealth= 200
-
-    shieldhealth= 100
-    initialshieldhealth= 200
-    maxshieldhealth= 250
-
-    shieldabsorption= 1
-
-    reloadrate= "10"
-    reloadwaittime= 1
-
->
-  <attached>
-    <Model scale="4" mesh="drone.mesh"/>
-  </attached>
-  <collisionShapes>
-    <BoxCollisionShape position="0,0,0"      halfExtents="10, 10, 10" />
-  </collisionShapes>
-</Drone>
-
-<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" />
-
-
-    <?lua
-      for i = 1, 10, 1 do
-    ?>
-      <SpawnPoint position="<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipimmtest />
-    <?lua end ?>
-
-    <GlobalShader compositor="Bloom" visible=false>
-      <events>
-        <visibility>
-          <DistanceTrigger position="0,0,0" distance=30 target="Spectator" switch=true />
-        </visibility>
-      </events>
-    </GlobalShader>
-    <Model position="0,0,0" scale=8 mesh="ast1.mesh" />
-    <StaticEntity position="0,0,0" collisionType=static>
-      <collisionShapes>
-        <SphereCollisionShape radius="20" />
-      </collisionShapes>
-    </StaticEntity>
-
-  </Scene>
-</Level>

Modified: code/branches/presentation/data/levels/templates/spaceshipAssff.oxt
===================================================================
--- code/branches/presentation/data/levels/templates/spaceshipAssff.oxt	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/levels/templates/spaceshipAssff.oxt	2011-05-25 19:28:29 UTC (rev 8579)
@@ -11,25 +11,10 @@
    maxhealth         = 200
    initialhealth     = 100
 
-   shieldhealth        = 30
-   initialshieldhealth = 30
-   maxshieldhealth     = 50
-   shieldabsorption    = 0.8
-   reloadrate          = 1
-   reloadwaittime      = 1
+   primaryThrust     = 100;
+   auxilaryThrust    = 30;
+   rotationThrust    = 25;
 
-   primaryThrust     = 100
-   auxilaryThrust    = 30
-   rotationThrust    = 25
-
-   boostPower            = 15
-   boostPowerRate        = 1
-   boostRate             = 5
-   boostCooldownDuration = 10
-
-   shakeFrequency = 15
-   shakeAmplitude = 7
-
    collisionType     = "dynamic"
    mass              = 100
    linearDamping     = 0.7

Deleted: code/branches/presentation/data/levels/templates/spaceshipImmTest.oxt
===================================================================
--- code/branches/presentation/data/levels/templates/spaceshipImmTest.oxt	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/levels/templates/spaceshipImmTest.oxt	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,106 +0,0 @@
-<Template name=spaceshipimmtest>
-  <SpaceShip
-   hudtemplate            = spaceshiphud
-   camerapositiontemplate = spaceshipassffcameras
-   engine                 = spaceshipassffengine
-   spawnparticlesource    = "Orxonox/fairytwirl"
-   spawnparticleduration  = 3
-   explosionchunks        = 6
-
-   health            = 100
-   maxhealth         = 200
-   initialhealth     = 100
-
-   primaryThrust     = 100;
-   auxilaryThrust    = 30;
-   rotationThrust    = 25;
-
-   collisionType     = "dynamic"
-   mass              = 100
-   linearDamping     = 0.7
-   angularDamping    = 0.9999999
-   
-   shakeFrequency    = 15
-  >
-    <attached>
-      <Model position="0,0,0" yaw=90 pitch=-90 roll=0 scale=4 mesh="assff.mesh" />
-      <BlinkingBillboard position="17,-1.5,0" material="Examples/Flare" colour="1.0, 0.5, 0.3" amplitude=0.1 frequency=0.5 quadratic=1 />
-      <BlinkingBillboard position="-17,-1.5,0" material="Examples/Flare" colour="0.5, 1.0, 0.3" amplitude=0.1 frequency=0.5 phase=180 quadratic=1 />
-    </attached>
-    <collisionShapes>
-      <BoxCollisionShape position="0,0,0"      halfExtents="10, 3, 5" />
-      <BoxCollisionShape position="13,-1.3,0"  halfExtents="3, 1, 2" />
-      <BoxCollisionShape position="-13,-1.3,0" halfExtents="3, 1, 2" />
-      <BoxCollisionShape position="0,0,7"      halfExtents="3, 2, 2" />
-      <BoxCollisionShape position="0,0.1,-11"  halfExtents="2.2, 1.8, 6" />
-      <BoxCollisionShape position="0,0.1,-19"  halfExtents="1.4, 1, 2" />
-    </collisionShapes>
-<?lua
-  include("includes/weaponSettingsImmTest.oxi")
-?>
-  </SpaceShip>
-</Template>
-
-<Template name=spaceshipassffcameras defaults=0>
-  <SpaceShip>
-    <camerapositions>
-      <CameraPosition position="0,10, 40" drag=true mouselook=true />
-      <CameraPosition position="0,20, 80" drag=true mouselook=true />
-      <CameraPosition position="0,30,120" drag=true mouselook=true />
-      <!--CameraPosition position="0,150,-25" pitch=-90 drag=true />
-      <CameraPosition position="0,0,-40" yaw=180 drag=true />
-      <CameraPosition position="0,3,-14" yaw=0 />
-      <CameraPosition position="-50,5,-8" yaw=-90 drag=true />
-      <CameraPosition position="50,5,-8" yaw=90 drag=true /-->
-    </camerapositions>
-  </SpaceShip>
-</Template>
-
-<Template name=spaceshipassffengine baseclass=MultiStateEngine>
-  <MultiStateEngine
-   boostfactor    = 2
-
-   speedfront     = 150
-   speedback      =  50
-   speedleftright =  50
-   speedupdown    =  50
-
-   defEngineSndNormal = "sounds/Engine_low.ogg"
-   defEngineSndBoost = "sounds/Engine_high.ogg"
-
-   accelerationfront     = 500
-   accelerationbrake     = 500
-   accelerationback      =  125
-   accelerationleftright =  125
-   accelerationupdown    =  125
-  >
-    <EffectContainer condition="idle">
-      <WorldSound mainstate="activity" source="sounds/Engine_idle.ogg" looping=1 active=false/>
-    </EffectContainer>
-    <EffectContainer condition="not idle">
-      <FadingBillboard mainstate=activity active=false scale=0.1 position="0, 0, 9" colour="0.2, 0.65, 1.0, 1.0" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
-<!--
-      <Light mainstate=visibility position=" 8, 0, 8" diffuse="0.3, 0.6, 1.0" specular="0.3, 0.6, 1.0" attenuation="600, 1.0, 0.007, 0.0002" type=point />
-      <Light mainstate=visibility position="-8, 0, 8" diffuse="0.3, 0.6, 1.0" specular="0.3, 0.6, 1.0" attenuation="600, 1.0, 0.007, 0.0002" type=point />
--->
-    </EffectContainer>
-    <EffectContainer condition="normal or brake">
-
-    </EffectContainer>
-    <EffectContainer condition="normal or boost">
-      <Backlight mainstate=activity active=false scale=0.4 name=bltest position=" 7.6, 0, 6" colour="0.2, 0.65, 1.0, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
-      <Backlight mainstate=activity active=false scale=0.4 name=bltest position="-7.6, 0, 6" colour="0.2, 0.65, 1.0, 1.0" width=15 length=1500 lifetime=2 elements=50 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Flares/ThrusterFlare1" />
-    </EffectContainer>
-    <EffectContainer condition="boost">
-      <Backlight mainstate=activity active=false scale=0.4 name=bltest position=" 7.6, 0, 6" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
-      <Backlight mainstate=activity active=false scale=0.4 name=bltest position="-7.6, 0, 6" colour="0.6, 0.75, 0.8, 0.7" width=40 length=1000 lifetime=1 elements=30 trailmaterial="Trail/backlighttrail" turnontime=1 turnofftime=1 material="Examples/Flare" />
-    </EffectContainer>
-    <EffectContainer condition="brake">
-      <FadingBillboard mainstate=activity active=false scale=0.3 position=" 8, 0, 6" colour="0.5, 0.0, 0.0, 0.3" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
-      <FadingBillboard mainstate=activity active=false scale=0.3 position="-8, 0, 6" colour="0.5, 0.0, 0.0, 0.3" material="Examples/Flare" turnontime=0.5 turnofftime=0.5 />
-      <FadingBillboard mainstate=activity active=false scale=0.15 position=" 8, 0, 6" colour="1.0, 0.0, 0.0, 1.0" material="Flares/backlightflare" turnontime=0.5 turnofftime=0.5 />
-      <FadingBillboard mainstate=activity active=false scale=0.15 position="-8, 0, 6" colour="1.0, 0.0, 0.0, 1.0" material="Flares/backlightflare" turnontime=0.5 turnofftime=0.5 />
-    </EffectContainer>
-  </MultiStateEngine>
-</Template>
-

Deleted: code/branches/presentation/data/particle/Shield.particle
===================================================================
--- code/branches/presentation/data/particle/Shield.particle	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/data/particle/Shield.particle	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,49 +0,0 @@
-
-particle_system Orxonox/Shield
-{
-	quota	2000
-	material	PE/lensflare
-	particle_width	25
-	particle_height	25
-	cull_each	false
-	renderer	billboard
-	sorted	false
-	local_space	false
-	iteration_interval	0
-	nonvisible_update_timeout	0
-	billboard_type	point
-	billboard_origin	center
-	billboard_rotation_type	texcoord
-	common_up_vector	0 1 0
-	point_rendering	false
-	accurate_facing	false
-
-	emitter HollowEllipsoid
-	{
-		angle	0
-		colour	0 0.298701 1 0.1
-		colour_range_start	0 0.298701 1 0.1
-		colour_range_end	0 0.298701 1 0.1
-		direction	0 1 0
-		emission_rate	2000
-		position	0 0 0
-		velocity	0
-		velocity_min	0
-		velocity_max	0
-		time_to_live	0.1
-		time_to_live_min	0.1
-		time_to_live_max	0.3
-		duration	0.1
-		duration_min	0.1
-		duration_max	0.2
-		repeat_delay	1000000
-		repeat_delay_min	1000000
-		repeat_delay_max	1000000
-		width	100
-		height	100
-		depth	100
-		inner_width	0.999999
-		inner_height	0.999999
-		inner_depth	0.999999
-	}
-}

Deleted: code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,131 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      simonmie
- *   Co-authors:
- *      ...
- *
- */
-
-#include "BasicProjectile.h"
-
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/GameMode.h"
-#include "core/command/Executor.h"
-#include "objects/collisionshapes/SphereCollisionShape.h"
-#include "worldentities/pawns/Pawn.h"
-#include "graphics/ParticleSpawner.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    /**
-    @brief
-        Constructor. Registers the object and initializes some default values.
-    */
-    BasicProjectile::BasicProjectile() : OrxonoxClass()
-    {
-        RegisterRootObject(BasicProjectile);// - register the BasicProjectile class to the core
-
-        this->bDestroy_ = false;
-
-        // Default damage must be zero, otherwise it would be above zero if no settings are made in the weaponsettings xml file.
-        // same thing for all weaponmodes files
-        this->damage_ = 0;
-        this->healthdamage_ = 0;
-        this->shielddamage_ = 0;
-    }
-
-    BasicProjectile::~BasicProjectile()
-    {
-    }
-
-    /* The function called when a projectile hits another thing.
-     * calls the hit-function, starts the reload countdown, displays visual effects
-     * hit is defined in src/orxonox/worldentities/pawns/pawn.cc
-     */
-    bool BasicProjectile::basicCollidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint, Pawn* owner, BasicProjectile* this_)
-    {
-        if (!this_->getBDestroy() && GameMode::isMaster())
-        {
-            if (otherObject == owner) //prevents you from shooting yourself
-                return false;
-
-            this_->setBDestroy(true); // If something is hit, the object is destroyed and can't hit something else.
-                                      // The projectile is destroyed by its tick()-function (in the following tick).
-
-            Pawn* victim = orxonox_cast<Pawn*>(otherObject); //if otherObject isn't a Pawn, then victim is NULL
-
-            WorldEntity* entity = orxonox_cast<WorldEntity*>(this_);
-            assert(entity); //entity must not be null
-
-
-            // if visual effects after destruction cause problems, put this block below the effects code block
-            if (victim)
-            {
-                victim->hit(owner, contactPoint, this_->getDamage(), this_->getHealthDamage(), this_->getShieldDamage());
-                victim->startReloadCountdown();
-            }
-
-            // visual effects for being hit, depending on whether the shield is hit or not
-            if (owner) //if the owner does not exist (anymore?), no effects are displayed.
-            {
-                // damping and explosion effect is only played if the victim is no pawn (see cast above)
-                // or if the victim is a pawn, has no shield left, is still alive and any damage goes to the health
-                if (!victim || (victim && !victim->hasShield() && victim->getHealth() > 0 && (this_->getDamage() > 0 || this_->getHealthDamage() > 0)))
-                {
-                    {
-                        ParticleSpawner* effect = new ParticleSpawner(owner->getCreator());
-                        effect->setPosition(entity->getPosition());
-                        effect->setOrientation(entity->getOrientation());
-                        effect->setDestroyAfterLife(true);
-                        effect->setSource("Orxonox/explosion3");
-                        effect->setLifetime(2.0f);
-                    }
-                        // second effect with same condition
-                    {
-                        ParticleSpawner* effect = new ParticleSpawner(owner->getCreator());
-                        effect->setPosition(entity->getPosition());
-                        effect->setOrientation(entity->getOrientation());
-                        effect->setDestroyAfterLife(true);
-                        effect->setSource("Orxonox/smoke4");
-                        effect->setLifetime(3.0f);
-                    }
-                }
-
-                // victim->isAlive() is not false until the next tick, so getHealth() > 0 is used instead
-                if (victim && victim->hasShield() && (this_->getDamage() > 0 || this_->getShieldDamage() > 0) && victim->getHealth() > 0)
-                {
-                    ParticleSpawner* effect = new ParticleSpawner(owner->getCreator());
-                    effect->setPosition(entity->getPosition());
-                    effect->setOrientation(entity->getOrientation());
-                    effect->setDestroyAfterLife(true);
-                    effect->setSource("Orxonox/Shield");
-                    effect->setLifetime(0.5f);
-                }
-            }
-
-        }
-        return false;
-    }
-}

Deleted: code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.h
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/BasicProjectile.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -1,83 +0,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      simonmie
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _BasicProjectile_H__
-#define _BasicProjectile_H__
-
-#include "weapons/WeaponsPrereqs.h"
-
-#include "tools/Timer.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class _WeaponsExport BasicProjectile : public virtual OrxonoxClass
-    {
-        public:
-            BasicProjectile();
-
-            virtual ~BasicProjectile();
-
-            static bool basicCollidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint, Pawn* owner, BasicProjectile* this_);
-
-            void basicDestroyObject();
-
-            inline void setDamage(float damage)
-                { this->damage_ = damage;  }
-            inline float getDamage() const
-                { return this->damage_; }
-
-            inline void setHealthDamage(float healthdamage)
-                { this->healthdamage_ = healthdamage; }
-            inline float getHealthDamage() const
-                { return this->healthdamage_; }
-
-            inline void setShieldDamage(float shielddamage)
-                { this->shielddamage_ = shielddamage;  } //ShieldDamage wird korrekt gesettet vom XML-File
-            inline float getShieldDamage() const
-                { return this->shielddamage_; }
-
-
-            inline void setBDestroy(bool bDestroy)
-                { this->bDestroy_ = bDestroy;  }
-            inline float getBDestroy() const
-                { return this->bDestroy_; }
-
-
-        private:
-//            WeakPtr<Pawn> owner_; //owner cannot be set in BasicProjectile, because it's already defined in MobileEntity and Movable Entity
-
-            float damage_;
-            float healthdamage_;
-            float shielddamage_;
-
-            bool bDestroy_;
-    };
-}
-
-#endif /* _BasicProjectile_H__ */

Modified: code/branches/presentation/src/modules/weapons/projectiles/CMakeLists.txt
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/CMakeLists.txt	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/CMakeLists.txt	2011-05-25 19:28:29 UTC (rev 8579)
@@ -5,5 +5,4 @@
   LightningGunProjectile.cc
   Rocket.cc
   SimpleRocket.cc
-  BasicProjectile.cc
 )

Modified: code/branches/presentation/src/modules/weapons/projectiles/Projectile.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/Projectile.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/Projectile.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -40,14 +40,17 @@
 {
     CreateFactory(Projectile);
 
-    Projectile::Projectile(BaseObject* creator) : MovableEntity(creator), BasicProjectile()
+    Projectile::Projectile(BaseObject* creator) : MovableEntity(creator)
     {
         RegisterObject(Projectile);
 
         this->setConfigValues();
+        this->bDestroy_ = false;
         this->owner_ = 0;
+        this->damage_ = 15;
 
         // Get notification about collisions
+
         if (GameMode::isMaster())
         {
             this->setMass(1.0);
@@ -80,7 +83,7 @@
         if (!this->isActive())
             return;
 
-        if (this->getBDestroy())
+        if (this->bDestroy_)
             this->destroy(); // TODO: use a scheduler instead of deleting the object right here in tick()
     }
 
@@ -90,11 +93,40 @@
             this->destroy();
     }
 
-    /* Calls the collidesAgainst function of BasicProjectile
-     */
     bool Projectile::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
-        return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this);
+        if (!this->bDestroy_ && GameMode::isMaster())
+        {
+            if (otherObject == this->owner_)
+                return false;
+
+            this->bDestroy_ = true;
+
+            if (this->owner_)
+            {
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/explosion3");
+                    effect->setLifetime(2.0f);
+                }
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/smoke4");
+                    effect->setLifetime(3.0f);
+                }
+            }
+
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
+            if (victim)
+                victim->hit(this->owner_, contactPoint, this->damage_);
+        }
+        return false;
     }
 
     void Projectile::setOwner(Pawn* owner)

Modified: code/branches/presentation/src/modules/weapons/projectiles/Projectile.h
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/Projectile.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/Projectile.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -34,11 +34,9 @@
 #include "tools/Timer.h"
 #include "worldentities/MovableEntity.h"
 
-#include "BasicProjectile.h"
-
 namespace orxonox
 {
-    class _WeaponsExport Projectile : public MovableEntity, public BasicProjectile
+    class _WeaponsExport Projectile : public MovableEntity
     {
         public:
             Projectile(BaseObject* creator);
@@ -50,14 +48,20 @@
             virtual void tick(float dt);
             virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
 
+            inline void setDamage(float damage)
+                { this->damage_ = damage; }
+            inline float getDamage() const
+                { return this->damage_; }
+
             void setOwner(Pawn* owner);
             inline Pawn* getOwner() const
                 { return this->owner_; }
 
-
         private:
             WeakPtr<Pawn> owner_;
             float lifetime_;
+            float damage_;
+            bool bDestroy_;
             Timer destroyTimer_;
     };
 }

Modified: code/branches/presentation/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/Rocket.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/Rocket.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -51,11 +51,12 @@
     @brief
         Constructor. Registers the object and initializes some default values.
     */
-    Rocket::Rocket(BaseObject* creator) : ControllableEntity(creator), BasicProjectile()
+    Rocket::Rocket(BaseObject* creator) : ControllableEntity(creator)
     {
         RegisterObject(Rocket);// - register the Rocket class to the core
 
         this->localAngularVelocity_ = 0;
+        this->bDestroy_ = false;
         this->lifetime_ = 100;
 
         if (GameMode::isMaster())
@@ -144,8 +145,8 @@
     void Rocket::setOwner(Pawn* owner)
     {
         this->owner_ = owner;
-        this->player_ = this->getOwner()->getPlayer();
-        this->getOwner()->getPlayer()->startTemporaryControl(this);
+        this->player_ = this->owner_->getPlayer();
+        this->owner_->getPlayer()->startTemporaryControl(this);
 
         if( GameMode::isMaster() )
         {
@@ -173,17 +174,48 @@
 
         if( GameMode::isMaster() )
         {
-            if( this->getBDestroy() )
+            if( this->bDestroy_ )
                 this->destroy();
 
         }
     }
 
-    /* Calls the collidesAgainst function of BasicProjectile
-     */
     bool Rocket::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
-        return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this);
+        if (!this->bDestroy_ && GameMode::isMaster())
+        {
+            if (otherObject == this->owner_)
+                return false;
+
+            this->bDestroy_ = true;
+
+            if (this->owner_)
+            {
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/explosion4");
+                    effect->setLifetime(2.0f);
+                }
+
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/smoke4");
+                    effect->setLifetime(3.0f);
+                }
+            }
+
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
+            if (victim)
+                victim->hit(this->owner_, contactPoint, this->damage_);
+//             this->destroy();
+        }
+        return false;
     }
 
     void Rocket::destroyObject()
@@ -200,16 +232,19 @@
 
     void Rocket::fired(unsigned int firemode)
     {
-        this->destroy();
+//         if (this->owner_)
+//         {
+            this->destroy();
+//         }
     }
 
     void Rocket::destructionEffect()
     {
         ParticleSpawner *effect1, *effect2;
-        if( this->getOwner() )
+        if( this->owner_ )
         {
-            effect1 = new ParticleSpawner(this->getOwner()->getCreator());
-            effect2 = new ParticleSpawner(this->getOwner()->getCreator());
+            effect1 = new ParticleSpawner(this->owner_->getCreator());
+            effect2 = new ParticleSpawner(this->owner_->getCreator());
         }
         else
         {

Modified: code/branches/presentation/src/modules/weapons/projectiles/Rocket.h
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/Rocket.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/Rocket.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -34,8 +34,6 @@
 #include "tools/Timer.h"
 #include "worldentities/ControllableEntity.h"
 
-#include "BasicProjectile.h"
-
 namespace orxonox
 {
     class ConeCollisionShape;
@@ -47,7 +45,7 @@
     @author
         Oli Scheuss
     */
-    class _WeaponsExport Rocket : public ControllableEntity, public BasicProjectile
+    class _WeaponsExport Rocket : public ControllableEntity
     {
         public:
             Rocket(BaseObject* creator);
@@ -110,11 +108,17 @@
             inline Pawn* getOwner() const
                 { return this->owner_; }
 
+            inline void setDamage(float damage)
+                { this->damage_ = damage; }
+            inline float getDamage() const
+                { return this->damage_; }
             virtual void fired(unsigned int firemode);
 
         private:
             WeakPtr<Pawn> owner_;
             Vector3 localAngularVelocity_;
+            float damage_;
+            bool bDestroy_;
 
             WeakPtr<PlayerInfo> player_;
             Timer destroyTimer_;

Modified: code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -47,15 +47,16 @@
 
     CreateFactory(SimpleRocket);
 
-    SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator), BasicProjectile()
+    SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator)
     {
         RegisterObject(SimpleRocket);// - register the SimpleRocket class to the core
 
         this->localAngularVelocity_ = 0;
+        this->bDestroy_ = false;
         this->lifetime_ = 120;
 
         this->setMass(15);
-//        COUT(4) << "simplerocket constructed\n";
+        COUT(4) << "simplerocket constructed\n";
 
         if (GameMode::isMaster())
         {
@@ -113,7 +114,7 @@
             } else
                 this->disableFire();
 
-            if( this->getBDestroy() )
+            if( this->bDestroy_ )
                 this->destroy();
         }
 
@@ -157,15 +158,51 @@
     void SimpleRocket::setOwner(Pawn* owner)
     {
         this->owner_ = owner;
-        this->player_ = this->getOwner()->getPlayer();
+        this->player_ = this->owner_->getPlayer();
     }
 
 
-    /* Calls the collidesAgainst function of BasicProjectile
-     */
+
+
     bool SimpleRocket::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
-        return BasicProjectile::basicCollidesAgainst(otherObject,contactPoint,this->getOwner(),this);
+        if (!this->bDestroy_ && GameMode::isMaster())
+        {
+            if (otherObject == this->owner_)
+                return false;
+
+            this->bDestroy_ = true;
+
+            if (this->owner_)
+            {
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/explosion4");
+                    effect->setLifetime(2.0f);
+                }
+
+                {
+                    ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
+                    effect->setPosition(this->getPosition());
+                    effect->setOrientation(this->getOrientation());
+                    effect->setDestroyAfterLife(true);
+                    effect->setSource("Orxonox/smoke4");
+                    effect->setLifetime(3.0f);
+                }
+            }
+
+            float dmg = this->damage_;
+//             if (this->owner_)
+//                 dmg = this->owner_->getPickups().processModifiers(ModifierType::Damage, dmg, false);
+
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
+            if (victim)
+                victim->hit(this->owner_, contactPoint, dmg);
+        }
+        return false;
     }
 
     void SimpleRocket::destroyObject()

Modified: code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/projectiles/SimpleRocket.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -35,8 +35,6 @@
 #include "worldentities/ControllableEntity.h"
 #include "graphics/ParticleSpawner.h"
 
-#include "BasicProjectile.h"
-
 namespace orxonox
 {
     class ConeCollisionShape;
@@ -47,7 +45,7 @@
     @author
        Gabriel Nadler (Original file: Oli Scheuss)
     */
-    class _WeaponsExport SimpleRocket : public ControllableEntity, public BasicProjectile
+    class _WeaponsExport SimpleRocket : public ControllableEntity
     {
         public:
             SimpleRocket(BaseObject* creator);
@@ -112,14 +110,20 @@
             void setOwner(Pawn* owner);
             inline Pawn* getOwner() const
                 { return this->owner_; }
-
             inline bool hasFuel() const
             { return this->fuel_; }
 
+            inline void setDamage(float damage)
+                { this->damage_ = damage; }
+            inline float getDamage() const
+                { return this->damage_; }
 
+
         private:
             WeakPtr<Pawn> owner_;
             Vector3 localAngularVelocity_;
+            float damage_;
+            bool bDestroy_;
             bool fuel_; //!< Bool is true while the rocket "has fuel"
 
 

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/EnergyDrink.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/EnergyDrink.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/EnergyDrink.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Hagen Seifert
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -49,7 +49,7 @@
         RegisterObject(EnergyDrink);
 
         this->reloadTime_ = 0.25;
-        this->damage_ = 0; //default 15
+        this->damage_ = 15;
         this->speed_ = 2500;
         this->delay_ = 0;
         this->setMunitionName("FusionMunition");
@@ -96,8 +96,6 @@
         muzzleFlash->setMaterial(this->material_);
     }
 
-    /* Creates the projectile object, sets its properties to the EnergyDrink properties, calls muendungsfeuer()
-     */
     void EnergyDrink::shot()
     {
         Projectile* projectile = new Projectile(this);
@@ -113,8 +111,6 @@
 
         projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
-        projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
 
         EnergyDrink::muendungsfeuer();
     }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/FusionFire.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/FusionFire.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/FusionFire.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Martin Polak
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -47,14 +47,12 @@
 
         this->reloadTime_ = 1.0;
         this->bParallelReload_ = false;
-        this->damage_ = 0; //default 40
+        this->damage_ = 40;
         this->speed_ = 1250;
 
         this->setMunitionName("FusionMunition");
     }
 
-    /* Creates the projectile (BillboardProjectile) object, sets its properties to the FusionFire properties
-     */
     void FusionFire::fire()
     {
         BillboardProjectile* projectile = new BillboardProjectile(this);
@@ -66,9 +64,6 @@
 
         projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
-        projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
-
         projectile->setColour(ColourValue(1.0f, 0.7f, 0.3f, 1.0f));
     }
 }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/HsW01.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/HsW01.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/HsW01.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Hagen Seifert
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -50,7 +50,7 @@
         RegisterObject(HsW01);
 
         this->reloadTime_ = 0.25;
-        this->damage_ = 0; //default 15
+        this->damage_ = 15;
         this->speed_ = 2500;
         this->delay_ = 0;
         this->setMunitionName("LaserMunition");
@@ -108,8 +108,6 @@
         muzzleFlash->setMaterial(this->material_);
     }
 
-    /* Creates the projectile object, sets its properties to the HsW01 properties, calls muendungsfeuer()
-     */
     void HsW01::shot()
     {
         assert( this->getWeapon() && this->getWeapon()->getWeaponPack() && this->getWeapon()->getWeaponPack()->getWeaponSystem() && this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn() );
@@ -127,8 +125,6 @@
 
         projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
-        projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
 
         HsW01::muendungsfeuer();
     }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/LaserFire.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/LaserFire.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/LaserFire.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Martin Polak
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -44,14 +44,12 @@
         RegisterObject(LaserFire);
 
         this->reloadTime_ = 0.25;
-        this->damage_ = 0; //default 15
+        this->damage_ = 15;
         this->speed_ = 1250;
 
         this->setMunitionName("LaserMunition");
     }
 
-    /* Creates the projectile object, sets its properties to the LaserFire properties
-     */
     void LaserFire::fire()
     {
         ParticleProjectile* projectile = new ParticleProjectile(this);
@@ -62,7 +60,5 @@
 
         projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
-        projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
     }
 }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/LightningGun.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/LightningGun.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/LightningGun.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Joel Smely
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -44,7 +44,7 @@
         RegisterObject(LightningGun);
 
         this->reloadTime_ = 1;
-        this->damage_ = 0; //default 100
+        this->damage_ = 100;
         this->speed_ = 150;
 
         this->setMunitionName("LaserMunition");
@@ -55,8 +55,6 @@
     {
     }
 
-    /* Creates the projectile (LightningGunProjectile) object, sets its properties to the LightningGun properties
-     */
     void LightningGun::fire()
     {
         LightningGunProjectile* projectile = new LightningGunProjectile(this);
@@ -70,7 +68,5 @@
 
         projectile->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         projectile->setDamage(this->getDamage());
-        projectile->setShieldDamage(this->getShieldDamage());
-        projectile->setHealthDamage(this->getHealthDamage());
     }
 }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/RocketFire.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/RocketFire.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/RocketFire.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -47,7 +47,7 @@
 
         this->reloadTime_ = 0.20f;
         this->bParallelReload_ = false;
-        this->damage_ = 0;
+        this->damage_ = 100;
         this->speed_ = 500;
 
         this->setMunitionName("RocketMunition");
@@ -58,8 +58,6 @@
     {
     }
 
-    /* Creates the Rocket object, sets its properties to the RocketFire properties
-     */
     void RocketFire::fire()
     {
         Rocket* rocket = new Rocket(this);
@@ -72,7 +70,5 @@
 
         rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
         rocket->setDamage(this->getDamage());
-        rocket->setShieldDamage(this->getShieldDamage());
-        rocket->setHealthDamage(this->getHealthDamage());
     }
 }

Modified: code/branches/presentation/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- code/branches/presentation/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Oliver Scheuss
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -49,7 +49,7 @@
 
         this->reloadTime_ = 1;
         this->bParallelReload_ = false;
-        this->damage_ = 0;
+        this->damage_ = 100;
         this->speed_ = 500;
 
         this->setMunitionName("RocketMunition");
@@ -61,8 +61,6 @@
     {
     }
 
-    /* Creates the Rocket (RocketController) object, sets its properties to the SimpleRocketFire properties, sets target
-     */
     void SimpleRocketFire::fire()
     {
         RocketController* con = new RocketController(this);
@@ -72,11 +70,7 @@
         rocket->setPosition(this->getMuzzlePosition());
         rocket->setVelocity(this->getMuzzleDirection()*this->speed_);
         rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
-
         rocket->setDamage(this->damage_);
-        rocket->setShieldDamage(this->getShieldDamage());
-        rocket->setHealthDamage(this->getHealthDamage());
-
         WorldEntity* pawnn=static_cast<ControllableEntity*>(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn())->getTarget();
         if (pawnn) con->setTarget(pawnn);
     }

Modified: code/branches/presentation/src/orxonox/controllers/Controller.h
===================================================================
--- code/branches/presentation/src/orxonox/controllers/Controller.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/controllers/Controller.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -51,12 +51,6 @@
 
             virtual inline void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) {};
 
-/* Override needed for different visual effects (e.g. in "NewHumanController.cc") depending on
-   the DIFFERENT AMOUNT OF DAMAGE done to the shield and to the health of "victim" (see Projectile.cc, Pawn.cc)
-
-//            virtual inline void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage) {};
-*/
-
             void setGodMode( bool mode ){ this->bGodMode_ = mode; }
             bool getGodMode(){ return this->bGodMode_; }
 

Modified: code/branches/presentation/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/branches/presentation/src/orxonox/controllers/HumanController.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/controllers/HumanController.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -41,7 +41,6 @@
 {
     extern const std::string __CC_fire_name = "fire";
     extern const std::string __CC_suicide_name = "suicide";
-    const std::string __CC_boost_name = "boost";
 
     SetConsoleCommand("HumanController", "moveFrontBack",          &HumanController::moveFrontBack ).addShortcut().setAsInputCommand();
     SetConsoleCommand("HumanController", "moveRightLeft",          &HumanController::moveRightLeft ).addShortcut().setAsInputCommand();
@@ -51,7 +50,7 @@
     SetConsoleCommand("HumanController", "rotateRoll",             &HumanController::rotateRoll    ).addShortcut().setAsInputCommand();
     SetConsoleCommand("HumanController", __CC_fire_name,           &HumanController::fire          ).addShortcut().keybindMode(KeybindMode::OnHold);
     SetConsoleCommand("HumanController", "reload",                 &HumanController::reload        ).addShortcut();
-    SetConsoleCommand("HumanController", __CC_boost_name,          &HumanController::keepBoost     ).addShortcut().keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand("HumanController", "boost",                  &HumanController::boost         ).addShortcut().keybindMode(KeybindMode::OnHold);
     SetConsoleCommand("HumanController", "greet",                  &HumanController::greet         ).addShortcut();
     SetConsoleCommand("HumanController", "switchCamera",           &HumanController::switchCamera  ).addShortcut();
     SetConsoleCommand("HumanController", "mouseLook",              &HumanController::mouseLook     ).addShortcut();
@@ -66,18 +65,14 @@
     CreateUnloadableFactory(HumanController);
 
     HumanController* HumanController::localController_s = 0;
-    /*static*/ const float HumanController::BOOSTING_TIME = 0.1f;
 
     HumanController::HumanController(BaseObject* creator) : Controller(creator)
     {
         RegisterObject(HumanController);
 
-        this->controlPaused_ = false;
-        this->boosting_ = false;
+        controlPaused_ = false;
 
         HumanController::localController_s = this;
-        this->boostingTimeout_.setTimer(HumanController::BOOSTING_TIME, false, createExecutor(createFunctor(&HumanController::terminateBoosting, this)));
-        this->boostingTimeout_.stopTimer();
     }
 
     HumanController::~HumanController()
@@ -167,51 +162,12 @@
             HumanController::localController_s->controllableEntity_->reload();
     }
 
-    /**
-    @brief
-        Static method,keeps boosting.
-    */
-    /*static*/ void HumanController::keepBoost()
+    void HumanController::boost()
     {
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
-            HumanController::localController_s->keepBoosting();
+            HumanController::localController_s->controllableEntity_->boost();
     }
-    
-    /**
-    @brief
-        Starts, or keeps the boosting mode.
-        Resets the boosting timeout and ells the ControllableEntity to boost (or not boost anymore).
-    */
-    void HumanController::keepBoosting(void)
-    {
-        if(this->boostingTimeout_.isActive())
-        {
-            this->boostingTimeout_.stopTimer();
-            this->boostingTimeout_.startTimer();
-        }
-        else
-        {
-            this->boosting_ = true;
-            this->boostingTimeout_.startTimer();
-            
-            this->controllableEntity_->boost(this->boosting_);
-            COUT(4) << "Start boosting" << endl;
-        }
-    }
 
-    /**
-    @brief
-        Terminates the boosting mode.
-    */
-    void HumanController::terminateBoosting(void)
-    {
-        this->boosting_ = false;
-        this->boostingTimeout_.stopTimer();
-
-        this->controllableEntity_->boost(this->boosting_);
-        COUT(4) << "Stop boosting" << endl;
-    }
-
     void HumanController::greet()
     {
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)

Modified: code/branches/presentation/src/orxonox/controllers/HumanController.h
===================================================================
--- code/branches/presentation/src/orxonox/controllers/HumanController.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/controllers/HumanController.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -31,7 +31,6 @@
 
 #include "OrxonoxPrereqs.h"
 
-#include "tools/Timer.h"
 #include "tools/interfaces/Tickable.h"
 #include "Controller.h"
 
@@ -64,16 +63,7 @@
             virtual void doFire(unsigned int firemode);
             static void reload();
 
-            static void keepBoost(); // Static method, keeps boosting.
-            /**
-            @brief Check whether the HumanController is in boosting mode.
-            @return Returns true if it is, false if not.
-            */
-            inline bool isBoosting(void)
-                { return this->boosting_; }
-            void keepBoosting(void);
-            void terminateBoosting(void);
-            
+            static void boost();
             static void greet();
             static void switchCamera();
             static void mouseLook();
@@ -101,12 +91,6 @@
         protected:
             static HumanController* localController_s;
             bool controlPaused_;
-        
-        private:
-            bool boosting_; // Whether the HumanController is in boosting mode or not.
-            Timer boostingTimeout_; // A timer to check whether the player is no longer boosting.
-            static const float BOOSTING_TIME; // The time after it is checked, whether the player is no longer boosting.
-
     }; // tolua_export
 } // tolua_export
 

Modified: code/branches/presentation/src/orxonox/graphics/Camera.cc
===================================================================
--- code/branches/presentation/src/orxonox/graphics/Camera.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/graphics/Camera.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -47,7 +47,7 @@
 {
     CreateFactory(Camera);
 
-    Camera::Camera(BaseObject* creator) : MovableEntity(creator)
+    Camera::Camera(BaseObject* creator) : StaticEntity(creator)
     {
         RegisterObject(Camera);
 

Modified: code/branches/presentation/src/orxonox/graphics/Camera.h
===================================================================
--- code/branches/presentation/src/orxonox/graphics/Camera.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/graphics/Camera.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -35,12 +35,11 @@
 #include "core/WindowEventListener.h"
 #include "tools/interfaces/Tickable.h"
 #include "tools/interfaces/TimeFactorListener.h"
-#include "worldentities/MovableEntity.h"
+#include "worldentities/StaticEntity.h"
 
 namespace orxonox
 {
-
-    class _OrxonoxExport Camera : public MovableEntity, public TimeFactorListener, public WindowEventListener
+    class _OrxonoxExport Camera : public StaticEntity, public Tickable, public TimeFactorListener, public WindowEventListener
     {
         friend class CameraManager;
 

Modified: code/branches/presentation/src/orxonox/items/Engine.cc
===================================================================
--- code/branches/presentation/src/orxonox/items/Engine.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/items/Engine.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -203,6 +203,8 @@
 
         this->ship_->setAcceleration(this->ship_->getOrientation() * (acceleration*this->getSpeedMultiply()+Vector3(0,0,-this->getSpeedAdd())));
 
+        if (!this->ship_->getPermanentBoost())
+            this->ship_->setBoost(false);
         this->ship_->setSteeringDirection(Vector3::ZERO);
 
         if (this->bEnableMotionBlur_ && !this->boostBlur_ && this->ship_->hasLocalController() && this->ship_->hasHumanController())

Modified: code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -65,8 +65,6 @@
         this->reloadTimer_.stopTimer();
 
         this->damage_ = 0;
-        this->healthdamage_ = 0;
-        this->shielddamage_ = 0;
 
         this->muzzleOffset_ = Vector3::ZERO;
         this->muzzlePosition_ = Vector3::ZERO;
@@ -107,8 +105,6 @@
         XMLPortParam(WeaponMode, "parallelreload",   setParallelReload,   getParallelReload,   xmlelement, mode).description("If true, the weapon reloads in parallel to the magazine reloading");
 
         XMLPortParam(WeaponMode, "damage",           setDamage,           getDamage,           xmlelement, mode);
-        XMLPortParam(WeaponMode, "healthdamage",     setHealthDamage,     getHealthDamage,     xmlelement, mode);
-        XMLPortParam(WeaponMode, "shielddamage",     setShieldDamage,     getShieldDamage,     xmlelement, mode);
         XMLPortParam(WeaponMode, "muzzleoffset",     setMuzzleOffset,     getMuzzleOffset,     xmlelement, mode);
     }
 

Modified: code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/weaponsystem/WeaponMode.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -103,19 +103,10 @@
 
             // Fire
             inline void setDamage(float damage)
-                { this->damage_ = damage;}
+                { this->damage_ = damage; }
             inline float getDamage() const
                 { return this->damage_; }
-            inline void setHealthDamage(float healthdamage)
-                { this->healthdamage_ = healthdamage; }
-            inline float getHealthDamage() const
-                { return this->healthdamage_; }
 
-            inline void setShieldDamage(float shielddamage)
-                { this->shielddamage_ = shielddamage;}
-            inline float getShieldDamage() const
-                { return this->shielddamage_; }
-
             inline void setMuzzleOffset(const Vector3& offset)
                 { this->muzzleOffset_ = offset; }
             inline const Vector3& getMuzzleOffset() const
@@ -154,8 +145,6 @@
             bool bParallelReload_;
 
             float damage_;
-            float healthdamage_;
-            float shielddamage_;
             Vector3 muzzleOffset_;
 
         private:

Modified: code/branches/presentation/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/ControllableEntity.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/ControllableEntity.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -83,6 +83,7 @@
         this->server_angular_velocity_ = Vector3::ZERO;
         this->client_angular_velocity_ = Vector3::ZERO;
 
+
         this->setConfigValues();
         this->setPriority( Priority::VeryHigh );
         this->registerVariables();

Modified: code/branches/presentation/src/orxonox/worldentities/ControllableEntity.h
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/ControllableEntity.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/ControllableEntity.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -92,13 +92,7 @@
             virtual void fired(unsigned int firemode) {}
             virtual void reload() {}
 
-            /**
-            @brief Tells the ControllableEntity to either start or stop boosting.
-                   This doesn't mean, that the ControllableEntity will do so, there might be additional restrictions on boosting, but if it can, then it will.
-            @param bBoost If true the ControllableEntity is told to start boosting, if false it is told to stop.
-            */
-            virtual void boost(bool bBoost) {}
-            
+            virtual void boost() {}
             virtual void greet() {}
             virtual void switchCamera();
             virtual void mouseLook();

Modified: code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -22,7 +22,7 @@
  *   Author:
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      simonmie
+ *      ...
  *
  */
 
@@ -63,16 +63,9 @@
         this->health_ = 0;
         this->maxHealth_ = 0;
         this->initialHealth_ = 0;
-
         this->shieldHealth_ = 0;
-        this->initialShieldHealth_ = 0;
-        this->maxShieldHealth_ = 100; //otherwise shield might increase to float_max
         this->shieldAbsorption_ = 0.5;
 
-        this->reloadRate_ = 0;
-        this->reloadWaitTime_ = 1.0f;
-        this->reloadWaitCountdown_ = 0;
-
         this->lastHitOriginator_ = 0;
 
         this->spawnparticleduration_ = 3.0f;
@@ -115,8 +108,6 @@
         XMLPortParam(Pawn, "initialhealth", setInitialHealth, getInitialHealth, xmlelement, mode).defaultValues(100);
 
         XMLPortParam(Pawn, "shieldhealth", setShieldHealth, getShieldHealth, xmlelement, mode).defaultValues(0);
-        XMLPortParam(Pawn, "initialshieldhealth", setInitialShieldHealth, getInitialShieldHealth, xmlelement, mode).defaultValues(0);
-        XMLPortParam(Pawn, "maxshieldhealth", setMaxShieldHealth, getMaxShieldHealth, xmlelement, mode).defaultValues(100);
         XMLPortParam(Pawn, "shieldabsorption", setShieldAbsorption, getShieldAbsorption, xmlelement, mode).defaultValues(0);
 
         XMLPortParam(Pawn, "spawnparticlesource", setSpawnParticleSource, getSpawnParticleSource, xmlelement, mode);
@@ -126,18 +117,14 @@
         XMLPortObject(Pawn, WeaponSlot, "weaponslots", addWeaponSlot, getWeaponSlot, xmlelement, mode);
         XMLPortObject(Pawn, WeaponSet, "weaponsets", addWeaponSet, getWeaponSet, xmlelement, mode);
         XMLPortObject(Pawn, WeaponPack, "weapons", addWeaponPackXML, getWeaponPack, xmlelement, mode);
-
-        XMLPortParam(Pawn, "reloadrate", setReloadRate, getReloadRate, xmlelement, mode).defaultValues(0);
-        XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f);
     }
 
     void Pawn::registerVariables()
     {
         registerVariable(this->bAlive_,           VariableDirection::ToClient);
         registerVariable(this->health_,           VariableDirection::ToClient);
-        registerVariable(this->maxHealth_,        VariableDirection::ToClient);
+        registerVariable(this->initialHealth_,    VariableDirection::ToClient);
         registerVariable(this->shieldHealth_,     VariableDirection::ToClient);
-        registerVariable(this->maxShieldHealth_,  VariableDirection::ToClient);
         registerVariable(this->shieldAbsorption_, VariableDirection::ToClient);
         registerVariable(this->bReload_,          VariableDirection::ToServer);
         registerVariable(this->aimPosition_,      VariableDirection::ToServer);  // For the moment this variable gets only transfered to the server
@@ -149,25 +136,12 @@
 
         this->bReload_ = false;
 
-        // TODO: use the existing timer functions instead
-        if(this->reloadWaitCountdown_ > 0)
-        {
-            this->decreaseReloadCountdownTime(dt);
-        }
-        else
-        {
-            this->addShieldHealth(this->getReloadRate() * dt);
-            this->resetReloadCountdown();
-        }
-
         if (GameMode::isMaster())
-        {
             if (this->health_ <= 0 && bAlive_)
             {
-                this->fireEvent(); // Event to notify anyone who wants to know about the death.
+                this->fireEvent(); // Event to notify anyone who want's to know about the death.
                 this->death();
             }
-        }
     }
 
     void Pawn::preDestroy()
@@ -193,91 +167,63 @@
         ControllableEntity::removePlayer();
     }
 
-
     void Pawn::setHealth(float health)
     {
-        this->health_ = std::min(health, this->maxHealth_); //Health can't be set to a value bigger than maxHealth, otherwise it will be reduced at first hit
+        this->health_ = std::min(health, this->maxHealth_);
     }
 
-    void Pawn::setShieldHealth(float shieldHealth)
+    void Pawn::damage(float damage, Pawn* originator)
     {
-        this->shieldHealth_ = std::min(shieldHealth, this->maxShieldHealth_);
-    }
-
-    void Pawn::setMaxShieldHealth(float maxshieldhealth)
-    {
-        this->maxShieldHealth_ = maxshieldhealth;
-    }
-
-    void Pawn::setReloadRate(float reloadrate)
-    {
-        this->reloadRate_ = reloadrate;
-    }
-
-    void Pawn::setReloadWaitTime(float reloadwaittime)
-    {
-        this->reloadWaitTime_ = reloadwaittime;
-    }
-
-    void Pawn::decreaseReloadCountdownTime(float dt)
-    {
-        this->reloadWaitCountdown_ -= dt;
-    }
-
-    void Pawn::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
-    {
         if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator))
         {
-            if (shielddamage >= this->getShieldHealth())
+            //share the dealt damage to the shield and the Pawn.
+            float shielddamage = damage*this->shieldAbsorption_;
+            float healthdamage = damage*(1-this->shieldAbsorption_);
+
+            // In case the shield can not take all the shield damage.
+            if (shielddamage > this->getShieldHealth())
             {
+                healthdamage += shielddamage-this->getShieldHealth();
                 this->setShieldHealth(0);
-                this->setHealth(this->health_ - (healthdamage + damage));
             }
-            else
-            {
-                this->setShieldHealth(this->shieldHealth_ - shielddamage);
 
-                // remove remaining shieldAbsorpton-Part of damage from shield
-                shielddamage = damage * this->shieldAbsorption_;
-                shielddamage = std::min(this->getShieldHealth(),shielddamage);
-                this->setShieldHealth(this->shieldHealth_ - shielddamage);
+            this->setHealth(this->health_ - healthdamage);
 
-                // set remaining damage to health
-                this->setHealth(this->health_ - (damage - shielddamage) - healthdamage);
+            if (this->getShieldHealth() > 0)
+            {
+                this->setShieldHealth(this->shieldHealth_ - shielddamage);
             }
 
             this->lastHitOriginator_ = originator;
+
+            // play damage effect
         }
     }
 
-// TODO: Still valid?
-/* HIT-Funktionen
-    Die hit-Funktionen muessen auch in src/orxonox/controllers/Controller.h angepasst werden! (Visuelle Effekte)
-
-*/
-
-    void Pawn::hit(Pawn* originator, const Vector3& force, float damage, float healthdamage, float shielddamage)
+    void Pawn::hit(Pawn* originator, const Vector3& force, float damage)
     {
         if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) )
         {
-            this->damage(damage, healthdamage, shielddamage, originator);
+            this->damage(damage, originator);
             this->setVelocity(this->getVelocity() + force);
+
+            // play hit effect
         }
     }
 
-
-    void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage)
+    void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage)
     {
         if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) )
         {
-            this->damage(damage, healthdamage, shielddamage, originator);
+            this->damage(damage, originator);
 
             if ( this->getController() )
-                this->getController()->hit(originator, contactpoint, damage); // changed to damage, why shielddamage?
+                this->getController()->hit(originator, contactpoint, damage);
+
+            // play hit effect
         }
     }
 
-
     void Pawn::kill()
     {
         this->damage(this->health_);

Modified: code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/pawns/Pawn.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -71,61 +71,21 @@
             inline float getInitialHealth() const
                 { return this->initialHealth_; }
 
-            virtual void setShieldHealth(float shieldHealth);
-
+            inline void setShieldHealth(float shieldHealth)
+            { this->shieldHealth_ = shieldHealth; }
             inline float getShieldHealth()
             { return this->shieldHealth_; }
 
-            inline void addShieldHealth(float amount)
-            { this->setShieldHealth(this->shieldHealth_ + amount); }
-
-            inline bool hasShield()
-            { return (this->getShieldHealth() > 0); }
-
-            virtual void setMaxShieldHealth(float maxshieldhealth);
-            inline float getMaxShieldHealth() const
-                { return this->maxShieldHealth_; }
-
-            inline void setInitialShieldHealth(float initialshieldhealth)
-                { this->initialShieldHealth_ = initialshieldhealth; this->setShieldHealth(initialshieldhealth); }
-            inline float getInitialShieldHealth() const
-                { return this->initialShieldHealth_; }
-
-            inline void restoreInitialShieldHealth()
-                { this->setShieldHealth(this->initialShieldHealth_); }
-            inline void restoreMaxShieldHealth()
-                { this->setShieldHealth(this->maxShieldHealth_); }
-
             inline void setShieldAbsorption(float shieldAbsorption)
             { this->shieldAbsorption_ = shieldAbsorption; }
             inline float getShieldAbsorption()
             { return this->shieldAbsorption_; }
 
-            // TODO: Rename to shieldRechargeRate
-            virtual void setReloadRate(float reloadrate);
-            inline float getReloadRate() const
-                { return this->reloadRate_; }
-
-            virtual void setReloadWaitTime(float reloadwaittime);
-            inline float getReloadWaitTime() const
-                { return this->reloadWaitTime_; }
-
-            inline void resetReloadCountdown()
-            { this->reloadWaitCountdown_ = 0; }
-
-            inline void startReloadCountdown()
-            { this->reloadWaitCountdown_ = this->getReloadWaitTime(); } // TODO: Implement in Projectile.cc
-
-            virtual void decreaseReloadCountdownTime(float dt);
-
             inline ControllableEntity* getLastHitOriginator() const
                 { return this->lastHitOriginator_; }
 
-            //virtual void hit(Pawn* originator, const Vector3& force, float damage);
-            //virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
-            virtual void hit(Pawn* originator, const Vector3& force, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f);
-            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f);
-
+            virtual void hit(Pawn* originator, const Vector3& force, float damage);
+            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
             virtual void kill();
 
             virtual void fired(unsigned int firemode);
@@ -181,8 +141,7 @@
             virtual void deatheffect();
             virtual void spawneffect();
 
-            //virtual void damage(float damage, Pawn* originator = 0);
-            virtual void damage(float damage, float healthdamage = 0.0f, float shielddamage = 0.0f, Pawn* originator = NULL);
+            virtual void damage(float damage, Pawn* originator = 0);
 
             bool bAlive_;
 
@@ -194,14 +153,8 @@
             float health_;
             float maxHealth_;
             float initialHealth_;
-            
             float shieldHealth_;
-            float maxShieldHealth_;
-            float initialShieldHealth_;
             float shieldAbsorption_; // Has to be between 0 and 1
-            float reloadRate_;
-            float reloadWaitTime_;
-            float reloadWaitCountdown_;
 
             WeakPtr<Pawn> lastHitOriginator_;
 

Modified: code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.cc	2011-05-25 19:28:29 UTC (rev 8579)
@@ -35,9 +35,6 @@
 #include "core/Template.h"
 #include "core/XMLPort.h"
 #include "items/Engine.h"
-#include "graphics/Camera.h"
-#include "CameraManager.h"
-#include "util/Math.h"
 
 namespace orxonox
 {
@@ -55,6 +52,7 @@
         this->localLinearAcceleration_.setValue(0, 0, 0);
         this->localAngularAcceleration_.setValue(0, 0, 0);
         this->bBoost_ = false;
+        this->bPermanentBoost_ = false;
         this->steering_ = Vector3::ZERO;
         this->engine_ = 0;
 
@@ -77,14 +75,6 @@
 
         this->setConfigValues();
         this->registerVariables();
-        
-        Camera* camera = CameraManager::getInstance().getActiveCamera();
-        this->cameraOriginalPosition_ = camera->getPosition();
-        this->cameraOriginalOrientation_ = camera->getOrientation();
-
-        this->shakeFrequency_ = 15;
-        this->shakeAmplitude_ = 5;
-        this->shakeDt_ = 0;
     }
 
     SpaceShip::~SpaceShip()
@@ -105,8 +95,6 @@
         XMLPortParamVariable(SpaceShip, "boostPowerRate", boostPowerRate_, xmlelement, mode);
         XMLPortParamVariable(SpaceShip, "boostRate", boostRate_, xmlelement, mode);
         XMLPortParamVariable(SpaceShip, "boostCooldownDuration", boostCooldownDuration_, xmlelement, mode);
-        XMLPortParamVariable(SpaceShip, "shakeFrequency", shakeFrequency_, xmlelement, mode);
-        XMLPortParamVariable(SpaceShip, "shakeAmplitude", shakeAmplitude_, xmlelement, mode);
     }
 
     void SpaceShip::registerVariables()
@@ -114,13 +102,6 @@
         registerVariable(this->primaryThrust_,  VariableDirection::ToClient);
         registerVariable(this->auxilaryThrust_, VariableDirection::ToClient);
         registerVariable(this->rotationThrust_, VariableDirection::ToClient);
-        // TODO: Synchronization of boost needed?
-        registerVariable(this->boostPower_, VariableDirection::ToClient);
-        registerVariable(this->boostPowerRate_, VariableDirection::ToClient);
-        registerVariable(this->boostRate_, VariableDirection::ToClient);
-        registerVariable(this->boostCooldownDuration_, VariableDirection::ToClient);
-        registerVariable(this->shakeFrequency_, VariableDirection::ToClient);
-        registerVariable(this->shakeAmplitude_, VariableDirection::ToClient);
     }
 
     void SpaceShip::setConfigValues()
@@ -146,7 +127,6 @@
 
         if (this->hasLocalController())
         {
-
 /*
             this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxilaryThrust_);
             this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxilaryThrust_);
@@ -169,23 +149,24 @@
             {
                 this->boostPower_ += this->boostPowerRate_*dt;
             }
-
             if(this->bBoost_)
             {
                 this->boostPower_ -=this->boostRate_*dt;
                 if(this->boostPower_ <= 0.0f)
                 {
-                    this->boost(false);
+                    this->bBoost_ = false;
                     this->bBoostCooldown_ = true;
                     this->timer_.setTimer(this->boostCooldownDuration_, false, createExecutor(createFunctor(&SpaceShip::boostCooledDown, this)));
-
                 }
-
-                shakeCamera(dt);
             }
         }
     }
 
+    void SpaceShip::boostCooledDown(void)
+    {
+        this->bBoostCooldown_ = false;
+    }
+
     void SpaceShip::moveFrontBack(const Vector2& value)
     {
         this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
@@ -225,79 +206,28 @@
         Pawn::rotateRoll(value);
     }
 
-    void SpaceShip::fire()
+    // TODO: something seems to call this function every tick, could probably handled a little more efficiently!
+    void SpaceShip::setBoost(bool bBoost)
     {
-    }
+        if(bBoost == this->bBoost_)
+            return;
 
-    /**
-    @brief
-        Starts or stops boosting.
-    @param bBoost
-        Whether to start or stop boosting.
-    */
-    void SpaceShip::boost(bool bBoost)
-    {
-        if(bBoost && !this->bBoostCooldown_)
+        if(bBoost)
+            this->boost();
+        else
         {
-            //COUT(0) << "Boost startet!\n";
-            this->bBoost_ = true;
-        }
-        if(!bBoost)
-        {
-            //COUT(0) << "Boost stoppt\n";
-            this->resetCamera();
             this->bBoost_ = false;
         }
     }
-    
-    void SpaceShip::boostCooledDown(void)
+
+    void SpaceShip::fire()
     {
-        this->bBoostCooldown_ = false;
     }
-    
-    void SpaceShip::shakeCamera(float dt)
-    {
-        //make sure the ship is only shaking if it's moving
-        if (this->getVelocity().squaredLength() > 80)
-        {
-            this->shakeDt_ += dt;
-    
-            int frequency = this->shakeFrequency_ * (this->getVelocity().squaredLength());
-    
-            if (this->shakeDt_ >= 1 /(frequency))
-            {
-                this->shakeDt_ -= 1/(frequency);
-            }
-    
-            Degree angle = Degree(sin(this->shakeDt_ * 2* math::pi * frequency) * this->shakeAmplitude_);
-    
-            //COUT(0) << "Angle: " << angle << std::endl;
-            Camera* c = this->getCamera();
 
-            //Shaking Camera effect
-            if (c != 0)
-            {
-                c->setOrientation(Vector3::UNIT_X, angle);
-            }
-        }
-    }
-    
-    void SpaceShip::resetCamera()
+    void SpaceShip::boost()
     {
-    
-        //COUT(0) << "Resetting camera\n";
-        Camera *c = this->getCamera();
-    
-        if (c == 0)
-        {
-            COUT(2) << "Failed to reset camera!";
-            return;
-        }
-    
-        shakeDt_ = 0;
-        //
-        c->setPosition(this->cameraOriginalPosition_);
-        c->setOrientation(this->cameraOriginalOrientation_);
+        if(!this->bBoostCooldown_)
+            this->bBoost_ = true;
     }
 
     void SpaceShip::loadEngineTemplate()
@@ -342,6 +272,4 @@
         list->push_back(this->engine_);
         return list;
     }
-    
-
 }

Modified: code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h	2011-05-25 19:22:53 UTC (rev 8578)
+++ code/branches/presentation/src/orxonox/worldentities/pawns/SpaceShip.h	2011-05-25 19:28:29 UTC (rev 8579)
@@ -58,7 +58,7 @@
             virtual void rotateRoll(const Vector2& value);
 
             virtual void fire();
-            virtual void boost(bool bBoost); // Starts or stops boosting.
+            virtual void boost();
 
             void setEngine(Engine* engine);
             inline Engine* getEngine() const
@@ -69,6 +69,7 @@
             inline const Vector3& getSteeringDirection() const
                 { return this->steering_; }
 
+            void setBoost(bool bBoost);
             inline bool getBoost() const
                 { return this->bBoost_; }
 
@@ -77,12 +78,18 @@
             inline const std::string& getEngineTemplate() const
                 { return this->enginetemplate_; }
 
+            inline void setPermanentBoost(bool bPermanent)
+                { this->bPermanentBoost_ = bPermanent; }
+            inline bool getPermanentBoost() const
+                { return this->bPermanentBoost_; }
+
         protected:
             virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const;
             bool bInvertYAxis_;
 
             bool bBoost_;
             bool bBoostCooldown_;
+            bool bPermanentBoost_;
             float boostPower_;
             float initialBoostPower_;
             float boostRate_;
@@ -95,9 +102,6 @@
             btVector3 localLinearAcceleration_;
             btVector3 localAngularAcceleration_;
 
-            float shakeFrequency_;
-            float shakeAmplitude_;
-
         private:
             void registerVariables();
             virtual bool isCollisionTypeLegal(WorldEntity::CollisionType type) const;
@@ -105,17 +109,10 @@
             void loadEngineTemplate();
             
             void boostCooledDown(void);
-        
-            void resetCamera();
-            void shakeCamera(float dt);
 
             std::string enginetemplate_;
             Engine* engine_;
             Timer timer_;
-            Vector3 cameraOriginalPosition_;
-            Quaternion cameraOriginalOrientation_;
-        
-            float shakeDt_;
     };
 }
 




More information about the Orxonox-commit mailing list