Index: /code/branches/presentation3/src/modules/weapons/RocketController.cc
===================================================================
--- /code/branches/presentation3/src/modules/weapons/RocketController.cc	(revision 7020)
+++ /code/branches/presentation3/src/modules/weapons/RocketController.cc	(revision 7021)
@@ -50,5 +50,4 @@
         this->rocket_->setController(this);
         this->setControllableEntity(dynamic_cast<ControllableEntity*> (this->rocket_));
-        this->counter_=0;
     }
 
@@ -62,5 +61,4 @@
     void RocketController::tick(float dt)
     {
-        counter_++;
 
         if (this->target_ && this->rocket_->hasFuel()) {
@@ -99,14 +97,15 @@
         if (!this->getControllableEntity())
             return;
-        Vector2 coord = get2DViewdirection(this->getControllableEntity()->getPosition(), this->getControllableEntity()->getOrientation() * WorldEntity::FRONT, this->getControllableEntity()->getOrientation() * WorldEntity::UP, target);
-        float distance = (target - this->getControllableEntity()->getWorldPosition()).length();
+
+        Vector2 coord = get2DViewdirection(this->rocket_->getPosition(), this->rocket_->getOrientation() * WorldEntity::FRONT, this->rocket_->getOrientation() * WorldEntity::UP, target);
+        float distance = (target - this->rocket_->getWorldPosition()).length();
 
 
-        if (distance > 1000&&this->getControllableEntity()->getVelocity().squaredLength()<160000) 
-            this->getControllableEntity()->setAcceleration(this->rocket_->getOrientation()*Vector3(-20,-20,-20));
+        if (distance > 1000 && this->rocket_->getVelocity().squaredLength()<160000) 
+            this->rocket_->setAcceleration(this->rocket_->getOrientation()*Vector3(-20,-20,-20));
         if (distance <1000) this->rocket_->setAcceleration(0,0,0);
-        
-        this->getControllableEntity()->rotateYaw(-sgn(coord.x)*coord.x*coord.x);
-        this->getControllableEntity()->rotatePitch(sgn(coord.y)*coord.y*coord.y);
+
+        this->rocket_->rotateYaw(-sgn(coord.x)*coord.x*coord.x);
+        this->rocket_->rotatePitch(sgn(coord.y)*coord.y*coord.y);
     }
 
Index: /code/branches/presentation3/src/modules/weapons/RocketController.h
===================================================================
--- /code/branches/presentation3/src/modules/weapons/RocketController.h	(revision 7020)
+++ /code/branches/presentation3/src/modules/weapons/RocketController.h	(revision 7021)
@@ -52,5 +52,6 @@
             
             virtual void tick(float dt);
-			SimpleRocket* getRocket(){return this->rocket_;};
+			SimpleRocket* getRocket() const
+             {  return this->rocket_;  };
 			void setTarget(WorldEntity* target);
         protected:
@@ -60,10 +61,9 @@
 
         private:
-			SimpleRocket* rocket_;
+			SimpleRocket* rocket_; //!<The Rocket it controlls
 			Vector3 targetPosition_;
 			WeakPtr<PlayerInfo> player_;
 						
 			WeakPtr<WorldEntity> target_;
-            int counter_;
 
 
Index: /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 7020)
+++ /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 7021)
@@ -45,11 +45,14 @@
 namespace orxonox
 {
+        /**
+    @file
+    @brief
+        SimpleRocket, follows direction from a Rocketcontroller, has fuel for 80% of its lifetime, afterwords it's fire disappears.
+    @author
+       Gabriel Nadler (Original file: Oli Scheuss)
+    */
     CreateFactory(SimpleRocket);
-    // create the factory for the SimpleRocket
-
-    /**
-    @brief
-        Constructor. Registers the object and initializes some default values.
-    */
+
+
     SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator)
     {
@@ -59,7 +62,7 @@
         this->bDestroy_ = false;
         this->lifetime_ = 120;
+
         this->setMass(15);
         COUT(4) << "simplerocket constructed\n";
-        this->maxLife_=90;
 
         if (GameMode::isMaster())
@@ -92,8 +95,11 @@
 
     }
-   
-
-
-
+
+
+    
+    /**
+    * @brief updates state of rocket, disables fire if no fuel
+    * @param dt tick-length
+    */
     void SimpleRocket::tick(float dt)
     {
@@ -102,7 +108,5 @@
         if ( GameMode::isMaster() )
         {
-            if (this->getVelocity().squaredLength() >130000)
-                this->maxLife_-=dt; //if Velocity bigger than about 360, uses a lot more "fuel" :)
-            
+
 
             this->setAngularVelocity(this->getOrientation() * this->localAngularVelocity_);
@@ -110,14 +114,13 @@
             this->localAngularVelocity_ = 0;
 
-            
+        
             if (this->fuel_)
             {
-                if (this->destroyTimer_.getRemainingTime()<  this->lifetime_-this->maxLife_ ) 
+                if (this->destroyTimer_.getRemainingTime()<  (static_cast<float>(this->FUEL_PERCENTAGE)/100) *this->lifetime_ ) 
                     this->fuel_=false;
-            }
-            else 
+            } else
                 this->disableFire();
 
-            if( this->bDestroy_ )
+            if( this->bDestroy_ ) 
                 this->destroy();
         }
@@ -125,10 +128,12 @@
     }
 
+    /**
+    * @brief Sets the Acceleration to 0 and detaches the fire
+    * @return void
+    */
     void SimpleRocket::disableFire()
     {
-        this->setAcceleration(0,0,0);
-        this->fire_->destroy();
-        this->fire_ = 0;
-//         this->fire_->detachFromParent();
+        this->setAcceleration(0,0,0);        
+        this->fire_->detachFromParent();
     }
 
@@ -144,5 +149,4 @@
             {
                 this->getController()->destroy();
-                COUT(4)<< "simplerocket destroyed\n";
             }
         }
@@ -162,7 +166,7 @@
     {
         this->owner_ = owner;
-        //this->originalControllableEntity_ = this->owner_->getPlayer()->getControllableEntity();
         this->player_ = this->owner_->getPlayer();
     }
+
 
 
Index: /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h	(revision 7020)
+++ /code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h	(revision 7021)
@@ -27,4 +27,14 @@
  */
 
+    /**
+    @file
+    @brief
+        SimpleRocket, follows direction from a Rocketcontroller, has fuel for 80% of its lifetime, afterwords it's fire disappears.
+    @author
+       Gabriel Nadler (Original file: Oli Scheuss)
+    */
+
+
+
 #ifndef _SimpleRocket_H__
 #define _SimpleRocket_H__
@@ -40,11 +50,5 @@
     class ConeCollisionShape;
 
-    /**
-    @brief
-        SimpleRocket, that is made to move upon a specified pattern.
-        This class was constructed for the PPS tutorial.
-    @author
-        Oli Scheuss
-    */
+
     class _WeaponsExport SimpleRocket : public ControllableEntity
     {
@@ -58,5 +62,5 @@
             void destroyObject();
 
-            void disableFire();
+            void disableFire(); //!< Method to disable the fire and stop all acceleration
 
             virtual void moveFrontBack(const Vector2& value){}
@@ -112,9 +116,6 @@
             inline Pawn* getOwner() const
                 { return this->owner_; }
-            inline bool hasFuel()
-            { return this->fuel_;}
-
-            inline void fuelRefill()
-            {this->fuel_=true;}
+            inline bool hasFuel() const
+            { return this->fuel_; }
 
             inline void setDamage(float damage)
@@ -128,6 +129,6 @@
             Vector3 localAngularVelocity_;
             float damage_;
-            bool bDestroy_;
-            bool fuel_;
+            bool bDestroy_; 
+            bool fuel_; //!< Bool is true while the rocket "has fuel"
 
 
@@ -135,7 +136,7 @@
             Timer destroyTimer_;
             float lifetime_;
-            float maxLife_;
+            static const int FUEL_PERCENTAGE=80; //!<Percentage of Lifetime the rocket has fuel
 
-            ParticleEmitter* fire_;
+            ParticleEmitter* fire_; //!< Fire-Emittor
 
 
Index: /code/branches/presentation3/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- /code/branches/presentation3/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 7020)
+++ /code/branches/presentation3/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 7021)
@@ -40,4 +40,11 @@
 namespace orxonox
 {
+       /**
+    @file
+    @brief
+        FireMode for target-seeking Rocket
+        @author
+        Gabriel Nadler (Original file: Oli Scheuss)
+        */
     CreateFactory(SimpleRocketFire);
 
