Index: code/branches/rocket/src/modules/weapons/RocketController.cc
===================================================================
--- code/branches/rocket/src/modules/weapons/RocketController.cc	(revision 6834)
+++ code/branches/rocket/src/modules/weapons/RocketController.cc	(revision 6863)
@@ -48,4 +48,5 @@
 		this->rocket->setController(dynamic_cast<RocketController*>(this));
 		this->setControllableEntity(dynamic_cast<ControllableEntity*> (rocket));
+		this->haha=0;
     }
 
@@ -59,9 +60,13 @@
     void RocketController::tick(float dt)
     {
+		haha++;
 
         SimpleRocket *rocket = static_cast<SimpleRocket*>(this->getControllableEntity());
-		double rd = rand();
-		if (rd > 0.5) rocket->rotateRoll(5); 
+		rocket->setAcceleration(rocket->getAcceleration()*2);
+		if (haha < 100) rocket->rotateYaw(10);
+		else {
+		if (rand() > 0.5) rocket->rotateRoll(5); 
 		else rocket->rotatePitch(5);
+		}
 
     }
@@ -69,4 +74,5 @@
 
 	RocketController::~RocketController() {
+		
 		COUT(0)<< "RocketController destroyed\n";
 	}
Index: code/branches/rocket/src/modules/weapons/RocketController.h
===================================================================
--- code/branches/rocket/src/modules/weapons/RocketController.h	(revision 6834)
+++ code/branches/rocket/src/modules/weapons/RocketController.h	(revision 6863)
@@ -52,5 +52,5 @@
             
             virtual void tick(float dt);
-			SimpleRocket* getRocket(){return rocket;};
+			SimpleRocket* getRocket(){return this->rocket;};
         protected:
 
@@ -58,4 +58,7 @@
         private:
 			SimpleRocket* rocket;
+			WeakPtr<PlayerInfo> player_;
+						int haha;
+
 
     };
Index: code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 6834)
+++ code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 6863)
@@ -98,6 +98,6 @@
     {
 		if (this->isInitialized()) {
+			this->getController()->destroy();
 		COUT(0)<< "simplerocket destroyed\n";
-		delete this->getController();
 		}
 	}
@@ -158,5 +158,5 @@
             if (victim)
                 victim->hit(this->owner_, contactPoint, dmg);
-//             this->destroy();
+             this->destroy();
         }
         return false;
Index: code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.h	(revision 6834)
+++ code/branches/rocket/src/modules/weapons/projectiles/SimpleRocket.h	(revision 6863)
@@ -112,4 +112,5 @@
                 { return this->damage_; }
             virtual void fired(unsigned int firemode);
+			
 
         private:
@@ -118,4 +119,5 @@
             float damage_;
             bool bDestroy_;
+
 
             WeakPtr<PlayerInfo> player_;
Index: code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 6834)
+++ code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 6863)
@@ -45,12 +45,11 @@
     {
         RegisterObject(SimpleRocketFire);
-		
 
-      /*  this->reloadTime_ = 0.20f;
+        this->reloadTime_ = 0.20f;
         this->bParallelReload_ = false;
         this->damage_ = 100;
-        this->speed_ = 500;
+        this->speed_ = 50;
 
-        this->setMunitionName("LaserMunition");*/
+        this->setMunitionName("LaserMunition");
         // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning)
     }
@@ -67,9 +66,13 @@
 		this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
 		rocket->setOrientation(this->getMuzzleOrientation());
-        rocket->setPosition(this->getMuzzlePosition());
-		rocket->setVelocity(this->getMuzzleDirection() * rocket->getVelocity());
+		Vector3 pos = this->getMuzzlePosition() + (this->getMuzzleOrientation()* Vector3(-2, -3, -2));
+        rocket->setPosition(pos);
+		rocket->setVelocity(this->getMuzzleDirection()*this->speed_);
+		//Ogre::Vector3 vec = this->getMuzzlePosition();
+		//vec.normalise();
+		//rocket->setAcceleration(100*vec);
 		rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
 		//con->getRocket()->setPosition(this->getMuzzlePosition());
-	//con->setControllableEntity(dynamic_cast<ControllableEntity*>(rocket));
+	//con->setControllableEntity(dynamic_cast<rocket*>(ControllableEntity));
 	//con->getControllableEntity()->setPosition(this->getMuzzlePosition());
 
