Index: code/branches/rocket/src/modules/weapons/RocketController.cc
===================================================================
--- code/branches/rocket/src/modules/weapons/RocketController.cc	(revision 6905)
+++ code/branches/rocket/src/modules/weapons/RocketController.cc	(revision 6943)
@@ -63,14 +63,10 @@
     {
 		haha++;
-		
 
-        SimpleRocket *rocket = static_cast<SimpleRocket*>(this->getControllableEntity());
-		if (haha<30)rocket->setVelocity(rocket->getVelocity()*1.03);
+		//if (haha<30)this->rocket->setVelocity(rocket->getVelocity()*1.03);
 		if (this->target_) {
 			this->setTargetPosition();
 			this->moveToTargetPosition();
-		
 		}
-		
 		if (haha>500) rocket->setDestroy();;
 	
@@ -85,6 +81,6 @@
 
 	void RocketController::setTargetPosition() {
-		this->targetPosition_=this->target_->getPosition();
-		//this->targetPosition_ = getPredictedPosition(this->getControllableEntity()->getPosition(),this->getControllableEntity()->getVelocity().length() , this->target_->getPosition(), this->target_->getVelocity());
+		//this->targetPosition_=this->target_->getWorldPosition();
+		this->targetPosition_ = getPredictedPosition(this->getControllableEntity()->getPosition(),this->getControllableEntity()->getVelocity().length() , this->target_->getPosition(), this->target_->getVelocity());
 	}
 	void RocketController::moveToTargetPosition() {
@@ -103,17 +99,39 @@
        if (!this->getControllableEntity())
             return;
-
-	   COUT(0)<<"moving";
-
+	   float dx = target.x-this->getControllableEntity()->getPosition().x;
+	   float dy = target.y-this->getControllableEntity()->getPosition().y;
+	   COUT(0)<<"\n diff: ";
+	   COUT(0)<<target.x-this->getControllableEntity()->getPosition().x;
+	   COUT(0)<<" ";
+	   COUT(0)<<target.y-this->getControllableEntity()->getPosition().y;
+	   COUT(0)<<" ";
+	   COUT(0)<<target.z-this->getControllableEntity()->getPosition().z;
+	   //COUT(0)<<"\n 2D view: ";
+	  /* COUT(0)<<this->getControllableEntity()->getPosition().x;
+	   COUT(0)<<" ";
+	   COUT(0)<<this->getControllableEntity()->getPosition().y;
+	   COUT(0)<<" ";
+	   COUT(0)<<this->getControllableEntity()->getPosition().z;
+	   COUT(0)<<"\n";*/
         Vector2 coord = get2DViewdirection(this->getControllableEntity()->getPosition(), this->getControllableEntity()->getOrientation() * WorldEntity::FRONT, this->getControllableEntity()->getOrientation() * WorldEntity::UP, target);
         float distance = (target - this->getControllableEntity()->getPosition()).length();
-
-        if (this->target_ || distance > 10)
-        {
-            // Multiply with 0.8 to make them a bit slower
-			 this->getControllableEntity()->rotateYaw(-0.2f * sgn(coord.x) * coord.x*coord.x);
-            this->getControllableEntity()->rotatePitch(0.2f * sgn(coord.y) * coord.y*coord.y);
-			
-        }
+		//Vector3D diff =target-this->rocket->getPosition();
+		//COUT(0)<<coord.x;
+		//COUT(0)<<"  ";
+		//COUT(0)<<coord.y;
+		 this->getControllableEntity()->rotateYaw(coord.x*coord.x*coord.x*coord.x);
+            this->getControllableEntity()->rotatePitch(coord.y*coord.y* coord.y*coord.y);
+		//this->getControllableEntity()->rotatePitch(rotation.getPitch().valueRadians());
+		//this->getControllableEntity()->rotateYaw(rotation.getYaw().valueRadians());
+		//this->getControllableEntity()->moveUpDown(coord.y);
+		//this->getControllableEntity()->moveRightLeft(coord.x);
+		//this->getControllableEntity()->rotatePitch(coord);
+   //     if (this->target_ || distance > 10)
+   //     {
+   //         // Multiply with 0.8 to make them a bit slower
+			//this->getControllableEntity()->rotateYaw(coord.x );
+   //         this->getControllableEntity()->rotatePitch(coord.y);
+			//
+   //     }
     }
 
Index: code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 6905)
+++ code/branches/rocket/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 6943)
@@ -49,5 +49,5 @@
         this->bParallelReload_ = false;
         this->damage_ = 100;
-        this->speed_ = 50;
+        this->speed_ = 1;
 
         this->setMunitionName("LaserMunition");
@@ -67,8 +67,9 @@
 		Vector3 pos = this->getMuzzlePosition() + (this->getMuzzleOrientation()* Vector3(-2, -3, -2));
         rocket->setPosition(pos);
+		rocket->setAcceleration(20*rocket->getOrientation() * WorldEntity::FRONT);
 		rocket->setVelocity(this->getMuzzleDirection()*this->speed_);
 		rocket->setOwner(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
 		rocket->setDamage(this->damage_);
-		WorldEntity* pawnn=(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getTarget());
+		WorldEntity* pawnn=this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getTarget();
 		if (pawnn) {
 		con->setTarget(pawnn);
