Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10260)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10261)
@@ -155,22 +155,16 @@
   Weapon* wpRight1 = new LightBlaster ();
   wpRight1->setName( "LightBlaster");
-  //wpRight1->setParent( this);
   Weapon* wpLeft1 = new LightBlaster ();
   wpLeft1->setName( "LightBlaster");
-  //wpLeft1->setParent( this);
 
   Weapon* wpRight2 = new MediumBlaster ();
   wpRight2->setName( "MediumBlaster");
-  //wpRight2->setParent( this);
   Weapon* wpLeft2 = new MediumBlaster ();
   wpLeft2->setName( "MediumBlaster");
-  //wpLeft2->setParent( this);
 
   Weapon* wpRight3 = new HeavyBlaster (1);
   wpRight3->setName( "HeavyBlaster");
-  //wpRight3->setParent( this);
   Weapon* wpLeft3 = new HeavyBlaster (0);
   wpLeft3->setName( "HeavyBlaster");
-  //wpLeft3->setParent( this);
 
   Weapon* cannon = new SwarmLauncher();
@@ -180,6 +174,6 @@
   spike->setName( "SpikeThrower" );
 
-  Weapon* spike2 = new SpikeLauncher();
-  spike2->setName( "SpikeLauncher" );
+//  Weapon* spike2 = new SpikeLauncher();
+//  spike2->setName( "SpikeLauncher" );
 
   this->weaponMan.addWeapon( wpLeft1, 0, 0);
@@ -203,9 +197,9 @@
   this->secWeaponMan.addWeapon( cannon, 0, 0);
   this->secWeaponMan.addWeapon( spike, 1, 1);
-  this->secWeaponMan.addWeapon( spike2, 2, 2);
+//  this->secWeaponMan.addWeapon( spike2, 2, 2);
 
 
   this->weaponMan.changeWeaponConfig(3);
-  this->secWeaponMan.changeWeaponConfig(1);
+  this->secWeaponMan.changeWeaponConfig(0);
 
   curWeaponPrimary    = 3;
@@ -367,15 +361,12 @@
   this->setSupportedPlaymodes(Playable::Horizontal | Playable::Vertical);
 
-  
-  this->trail = new Trail( 10, 10, .2, this);
-  //this->trail->setParent( this);
+  /// FIXME
+  this->trail = new Trail( 5, 10, .2, this);
   this->trail->setTexture( "maps/engine.png");
 
-  this->trailL = new Trail( 10, 10, .2, this);
-  //this->trailL->setParent( this);
+  this->trailL = new Trail( 5, 10, .2, this);
   this->trailL->setTexture( "maps/engine.png");
 
-  this->trailR = new Trail( 10, 10, .2, this);
-  //this->trailR->setParent( this);
+  this->trailR = new Trail( 5, 10, .2, this);
   this->trailR->setTexture( "maps/engine.png");
 
@@ -384,4 +375,5 @@
 
   //FIXME Just testaddition to show the wobblegrid
+/*
   this->test  = new Wobblegrid(5);
   test->setTexture("maps/blub.png");
@@ -389,4 +381,5 @@
   test->setAbsCoor( this->getAbsCoor() + Vector(0, 2, 0));
   test->setParent( this);
+*/
   
 }
@@ -448,4 +441,7 @@
 void SpaceShip::postSpawn ()
 {
+  if(this->hasPlayer())
+    Playable::postSpawn();
+
   //setCollision(new CollisionCluster(1.0, Vector(0,0,0)));
 }
@@ -460,13 +456,4 @@
 
 WorldEntity* ref = NULL;
-/**
- *  this function is called, when two entities collide
- * @param entity: the world entity with whom it collides
- *
- * Implement behaviour like damage application or other miscellaneous collision stuff in this function
- */
-void SpaceShip::collidesWith(WorldEntity* entity, const Vector& location)
-{
-}
 
 /**
@@ -485,5 +472,5 @@
   glMultMatrixf((float*)matrix);
   //glScalef(2.0, 2.0, 2.0);  // no double rescale
-  
+  /*	// FIXME
   this->trail->draw();
   
@@ -493,4 +480,5 @@
   glTranslatef(0,0,1);
   this->trailR->draw();
+*/
   glPopMatrix();
   //this->debug(0);
@@ -503,6 +491,8 @@
 void SpaceShip::tick (float time)
 {
-  // Playable::tick(time);$
-  this->test->tick(time);
+  // Playable::tick(time);
+
+ // this->test->tick(time);
+
   // Own Tick Setup, as a different fire routine is used on the weapon manager
   this->weaponMan.tick(time);
@@ -552,10 +542,8 @@
   this->oldPos    = this->getAbsCoor();
 
+//FIXME
   this->trail->tick(time);
   this->trailL->tick(time);
   this->trailR->tick(time);
-
-  this->weaponMan.setParentEntity( this);
-  this->secWeaponMan.setParentEntity( this);
 
   //orient the spaceship in direction of the mouse
@@ -566,25 +554,4 @@
   //this->setAbsDirSoft(mouseDir,5);
   */
-
-  // this is the air friction (necessary for a smooth control)
-  /*
-  if(travelSpeed >= 120) velocity -= velocity.getNormalized()*travelSpeed*travelSpeed*0.0001;
-  else if (travelSpeed <= 80) velocity -= velocity.getNormalized()*travelSpeed*0.001;
-  */
-
-  //other physics (gravity)
-  //if(travelSpeed < 120)
-  //move += Vector(0,-1,0)*60*time + Vector(0,1,0)*travelSpeed/2*time;
-
-  //hoover effect
-  //cycle += time;
-  //this->shiftCoor(Vector(0,1,0)*cos(this->cycle*2.0)*0.02);
-
-  //readjust
-  //if (this->getAbsDirZ().y > 0.1) this->shiftDir(Quaternion(time*0.3, Vector(1,0,0)));
-  //else if (this->getAbsDirZ().y < -0.1) this->shiftDir(Quaternion(-time*0.3, Vector(1,0,0)));
-
-  //SDL_WarpMouse(GraphicsEngine::getInstance()->getResolutionX()/2, GraphicsEngine::getInstance()->getResolutionY()/2);
-
   /*
   this->shiftCoor(move);
@@ -674,6 +641,9 @@
 void SpaceShip::destroy( WorldEntity* killer )
 {
+  if(this->hasPlayer())
+    Playable::destroy( killer);
+
   PRINTF(5)("spaceship destroy\n");
-  
+
   EmitterNode* node  = NULL;
   DotEmitter* emitter = NULL;
@@ -706,5 +676,4 @@
   if( !node->start())
     PRINTF(0)("Explosion node not correctly started!");
-
 /*
   PNode* node          = new PNode();
@@ -713,5 +682,5 @@
   explosion->explode( node, Vector(5,5,5));
 */
-
+/*
   if( this->hasPlayer())
   {
@@ -720,7 +689,7 @@
   }
   else
-  {
+  {*/
     this->setAbsCoor( this->getAbsCoor() + Vector(100,0,0) + Vector(1,0,0) * VECTOR_RAND(150).dot(Vector(1,0,0)));
-  }
+  //}
 
 }
@@ -728,30 +697,5 @@
 void SpaceShip::respawn( )
 {
-  this->unhide();
-  /*for(ObjectList<PNode>::const_iterator it = this->getNodesChildren().begin(); it != this->getNodesChildren().end(); it++)
-  {
-    if( dynamic_cast<WorldEntity*>(*it) != NULL)
-      dynamic_cast<WorldEntity*>(*it)->toList( OM_GROUP_00);
-  }*/
-  /*
-  if( this->hasPlayer())
-  {
-    this->toList( OM_GROUP_01);
-    for(ObjectList<PNode>::const_iterator it = this->getNodesChildren().begin(); it != this->getNodesChildren().end(); it++)
-	{
-	  if( likely( dynamic_cast<Weapon*>(*it) != NULL))
-		dynamic_cast<WorldEntity*>(*it)->toList( OM_GROUP_00_PROJ);
-	}
-  }
-  else
-  {
-    this->toList( OM_GROUP_00);
-    for(ObjectList<PNode>::const_iterator it = this->getNodesChildren().begin(); it != this->getNodesChildren().end(); it++)
-	{
-	  if( likely( dynamic_cast<Weapon*>(*it) != NULL))
-		dynamic_cast<WorldEntity*>(*it)->toList( OM_GROUP_01_PROJ);
-	}
-  }*/
-
+  Playable::respawn();
 }
 
@@ -1095,6 +1039,4 @@
 {
   this->damage(killer->getDamage(),0);
-  killer->collidesWith( this, this->getAbsCoor());
-  //this->collidesWith(killer, this->getAbsCoor());
 }
 
