Index: /branches/presentation/src/world_entities/space_ships/spacecraft_2d.cc
===================================================================
--- /branches/presentation/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9158)
+++ /branches/presentation/src/world_entities/space_ships/spacecraft_2d.cc	(revision 9159)
@@ -91,7 +91,7 @@
 
   //weapons:
-  Weapon* wpRight = new TestGun(0);
+  Weapon* wpRight = dynamic_cast<Weapon*>(Factory::fabricate(CL_LASER_CANNON));
   wpRight->setName("testGun Right");
-  Weapon* wpLeft = new TestGun(1);
+  Weapon* wpLeft = dynamic_cast<Weapon*>(Factory::fabricate(CL_LASER_CANNON));
   wpLeft->setName("testGun Left");
   //Weapon* cannon = dynamic_cast<Weapon*>(Factory::fabricate(CL_HYPERBLASTER));
@@ -123,5 +123,5 @@
   this->cameraLook = 0.0f;
   this->rotation = 0.0f;
-  this->acceleration = 10.0f;
+  this->acceleration = 20.0f;
   this->airFriction = 0.0f;
 
@@ -136,4 +136,5 @@
   this->travelNode = new PNode();
 
+  this->loadModel("models/ships/mantawing.obj", 5.0f);
 
   // camera - issue
@@ -180,8 +181,8 @@
   this->getWeaponManager().setSlotCount(5);
 
-  this->getWeaponManager().setSlotPosition(0, Vector(-0.28, 1.186, -2.750));
+  this->getWeaponManager().setSlotPosition(0, Vector(1.843, -0.335, 2.029) * 5.0);
   this->getWeaponManager().setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
 
-  this->getWeaponManager().setSlotPosition(1, Vector(-0.28, 1.186, 2.750));
+  this->getWeaponManager().setSlotPosition(1, Vector(1.843, -0.335, -2.029) * 5.0);
   this->getWeaponManager().setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
 
@@ -207,4 +208,7 @@
   registerVar( new SynchronizeableFloat( &cameraLook, &cameraLook, "cameraLook", PERMISSION_OWNER ) );
   registerVar( new SynchronizeableFloat( &rotation, &rotation, "rotation", PERMISSION_OWNER ) );
+
+
+
 }
 
@@ -454,12 +458,12 @@
         this->velocity += (accelerationDir - damping)* dt;
 
-        if (this->getRelCoor().z > this->travelDistance.y && accel.z > 0.0)
+        if (this->getRelCoor().z > this->travelDistance.y && velocity.z > 0.0)
           this->velocity.z = 0.0f;
-        if (this->getRelCoor().z < -this->travelDistance.y && accel.z < 0.0)
+        if (this->getRelCoor().z < -this->travelDistance.y && velocity.z < 0.0)
           this->velocity.z = 0.0f;
 
-        if (this->getRelCoor().x > this->travelDistance.x && accel.x > 0.0)
+        if (this->getRelCoor().x > this->travelDistance.x && velocity.x > 0.0)
           this->velocity.x = 0.0f;
-        if (this->getRelCoor().x < -this->travelDistance.x && accel.x < 0.0)
+        if (this->getRelCoor().x < -this->travelDistance.x && velocity.x < 0.0)
           this->velocity.x = 0.0f;
 
@@ -467,7 +471,7 @@
         this->shiftCoor (this->velocity * dt);
         if (accel.z == 0)
-          this->setRelDirSoft(Quaternion(0, Vector(0,0,0)), 3.0f);
+          this->setRelDirSoft(Quaternion(0, Vector(0,0,0)), 5.0f);
         else
-          this->setRelDirSoft(Quaternion(this->velocity.z * .01, Vector(1,0,0)), 2.0f);
+          this->setRelDirSoft(Quaternion(this->velocity.z * .004, Vector(1,0,0)), 4.5f);
       }
       break;
Index: /branches/presentation/src/world_entities/weapons/laser_cannon.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/laser_cannon.cc	(revision 9158)
+++ /branches/presentation/src/world_entities/weapons/laser_cannon.cc	(revision 9159)
@@ -33,59 +33,4 @@
 CREATE_FACTORY(LaserCannon, CL_LASER_CANNON);
 
-/**
- *  standard constructor
-
-   creates a new weapon
-*/
-LaserCannon::LaserCannon ( int leftRight)
-  : Weapon()
-{
-  this->init();
-
-
-  this->leftRight = leftRight;
-
-  this->objectComponent1 = new PNode();
-  Animation3D* animation1 = this->getAnimation(WS_SHOOTING, this->objectComponent1);
-  Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);
-  Animation3D* animation3 = this->getAnimation(WS_DEACTIVATING, this);
-  //parent->addChild(this->objectComponent1, PNODE_ALL);
-  this->addChild(this->objectComponent1);
-
-  animation1->setInfinity(ANIM_INF_CONSTANT);
-  animation2->setInfinity(ANIM_INF_CONSTANT);
-  animation3->setInfinity(ANIM_INF_CONSTANT);
-
-  if( this->leftRight == W_LEFT)
-  {
-    this->setEmissionPoint(1.0, -0.6, -0.2);
-
-    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-    animation1->addKeyFrame(Vector(-0.4, 0, 0), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-    animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);
-
-    animation2->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-    animation2->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-
-    animation3->addKeyFrame(Vector(0.0, 0.0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-    animation3->addKeyFrame(Vector(0.0, 0.0, -1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-  }
-  else if( this->leftRight == W_RIGHT)
-  {
-    this->setEmissionPoint(1.0, -0.6, 0.3);
-
-    this->objectComponent1->setRelCoor(Vector(0,0,0.35));
-    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-    animation1->addKeyFrame(Vector(-0.4, 0, .5), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-    animation1->addKeyFrame(Vector(0, 0, .5), Quaternion(), 0.0, ANIM_LINEAR, ANIM_NULL);
-
-    animation2->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-    animation2->addKeyFrame(Vector(.0, .0, .0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-
-    animation3->addKeyFrame(Vector(.0, .0, 0.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-    animation3->addKeyFrame(Vector(.0, .0, 1.0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_NULL);
-  }
-}
-
 
 LaserCannon::LaserCannon(const TiXmlElement* root)
@@ -111,5 +56,5 @@
 //  this->model = (Model*)ResourceManager::getInstance()->load("models/guns/laser_cannon.obj", OBJ, RP_CAMPAIGN);
 
-  this->loadModel("models/guns/laser_cannon.obj");
+  this->loadModel("models/guns/lasercannon.obj", 5.0f);
 
   this->setStateDuration(WS_SHOOTING, .1);
@@ -129,5 +74,5 @@
   this->setProjectileType(CL_LASER);
   this->prepareProjectiles(100);
-
+  this->setEmissionPoint(Vector(2.8,0,0) * 5.0);
 }
 
@@ -184,36 +129,2 @@
   pj->activate();
 }
-
-
-
-/**
- *  this will draw the weapon
-*/
-void LaserCannon::draw () const
-{
-  /* draw gun body */
-  glMatrixMode(GL_MODELVIEW);
-  glPushMatrix();
-  glTranslatef (this->getAbsCoor ().x,
-                this->getAbsCoor ().y,
-                this->getAbsCoor ().z);
-
-  Vector tmpRot = this->getAbsDir().getSpacialAxis();
-  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
-
-  if( this->leftRight == W_RIGHT)
-    glScalef(1.0, 1.0, -1.0);
-  static_cast<StaticModel*>(this->getModel())->draw(1);
-  glPopMatrix();
-
-  /* draw objectComponent1: gun coil - animated stuff */
-  glPushMatrix();
-  glTranslatef (this->objectComponent1->getAbsCoor ().x,
-                this->objectComponent1->getAbsCoor ().y,
-                this->objectComponent1->getAbsCoor ().z);
-  tmpRot = this->objectComponent1->getAbsDir().getSpacialAxis();
-  glRotatef (this->objectComponent1->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
-  static_cast<StaticModel*>(this->getModel())->draw(0);
-  glPopMatrix();
-}
-
Index: /branches/presentation/src/world_entities/weapons/laser_cannon.h
===================================================================
--- /branches/presentation/src/world_entities/weapons/laser_cannon.h	(revision 9158)
+++ /branches/presentation/src/world_entities/weapons/laser_cannon.h	(revision 9159)
@@ -27,17 +27,8 @@
 
 
-//! a weapon can be left or right sided
-/**
- * @todo this will be reset with mirror X/Y/Z
- */
-#define    W_LEFT        0
-#define    W_RIGHT       1
-
-
 class LaserCannon : public Weapon
   {
   public:
-    LaserCannon (int leftRight);
-    LaserCannon (const TiXmlElement* root);
+    LaserCannon (const TiXmlElement* root = NULL);
     virtual ~LaserCannon ();
 
@@ -50,10 +41,7 @@
     virtual void fire();
 
-    virtual void draw() const;
-
   private:
     PNode* objectComponent1;         //<! the gun is made of multiple parts, these PNodes represent their location and orientation
+  };
 
-    int leftRight;   // this will become an enum
-  };
 #endif /* _LASER_CANNON_H */
