Index: branches/playability/src/world_entities/WorldEntities.am
===================================================================
--- branches/playability/src/world_entities/WorldEntities.am	(revision 10022)
+++ branches/playability/src/world_entities/WorldEntities.am	(revision 10023)
@@ -40,5 +40,5 @@
                 world_entities/weapons/medium_blaster.cc \
                 world_entities/weapons/heavy_blaster.cc \
-                world_entities/weapons/swarm_missile.cc \
+                world_entities/weapons/swarm_launcher.cc \
                 \
                 world_entities/projectiles/bolt.cc \
@@ -152,5 +152,5 @@
                 weapons/medium_blaster.h \
                 weapons/heavy_blaster.h \
-                weapons/swarm_missile.h \
+                weapons/swarm_launcher.h \
                 \
                 projectiles/bolt.h \
Index: branches/playability/src/world_entities/player.cc
===================================================================
--- branches/playability/src/world_entities/player.cc	(revision 10022)
+++ branches/playability/src/world_entities/player.cc	(revision 10023)
@@ -16,4 +16,5 @@
 #include "player.h"
 #include "playable.h"
+#include "space_ships/space_ship.h"
 
 #include "event_handler.h"
@@ -74,5 +75,8 @@
     this->playable = playable;
     this->_hud.setEnergyWidget(this->playable->getHealthWidget());
-    this->_hud.setWeaponManager(&this->playable->getWeaponManager());
+    /*if (dynamic_cast<SpaceShip*>(this->playable))
+      this->_hud.setWeaponManager(&this->playable->getWeaponManager(), &dynamic_cast<SpaceShip*>(this->playable)->getWeaponManagerSecondary());
+    else*/
+      this->_hud.setWeaponManager(&this->playable->getWeaponManager());
 
     this->playable->setPlayer(this);
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10022)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10023)
@@ -26,5 +26,5 @@
 #include "weapons/medium_blaster.h"
 #include "weapons/heavy_blaster.h"
-#include "weapons/swarm_missile.h"
+#include "weapons/swarm_launcher.h"
 #include "weapons/boomerang_gun.h"
 #include "weapons/turret.h"
@@ -154,11 +154,11 @@
   wpLeft2->setName("Medium Blaster Left");
 
-  Weapon* wpRight3 = new HeavyBlaster ();
+/*  Weapon* wpRight3 = new HeavyBlaster ();
   wpRight3->setName("Heavy Blaster Right");
   Weapon* wpLeft3 = new HeavyBlaster ();
-  wpLeft3->setName("Heavy Blaster Left");
-
-  Weapon* cannon = new SwarmMissile();
-  cannon->setName("Swarm Missile");
+  wpLeft3->setName("Heavy Blaster Left");*/
+
+  Weapon* cannon = new SwarmLauncher();
+  cannon->setName("SwarmLauncher");
   
 
@@ -168,10 +168,11 @@
   this->weaponMan.addWeapon( wpLeft2, 0, 2);
   this->weaponMan.addWeapon( wpRight2, 0, 3);
-  this->weaponMan.addWeapon( wpLeft3, 0, 4);
-  this->weaponMan.addWeapon( wpRight3, 0, 5);
-
-  this->secWeaponMan.addWeapon( cannon, 0, 0);
+/*  this->weaponMan.addWeapon( wpLeft3, 0, 4);
+  this->weaponMan.addWeapon( wpRight3, 0, 5);*/
+
+  this->secWeaponMan.addWeapon( cannon, 1, 0);
 
   this->weaponMan.changeWeaponConfig(0);
+  this->secWeaponMan.changeWeaponConfig(1);
 
   wpRight1->requestAction(WA_ACTIVATE);
@@ -179,6 +180,6 @@
   wpRight2->requestAction(WA_ACTIVATE);
   wpLeft2->requestAction(WA_ACTIVATE);
-  wpRight3->requestAction(WA_ACTIVATE);
-  wpLeft3->requestAction(WA_ACTIVATE);
+/*  wpRight3->requestAction(WA_ACTIVATE);
+  wpLeft3->requestAction(WA_ACTIVATE);*/
 
   cannon->requestAction(WA_ACTIVATE);
@@ -369,4 +370,5 @@
   registerVar( new SynchronizeableFloat( &cameraLook, &cameraLook, "cameraLook", PERMISSION_OWNER ) );
   registerVar( new SynchronizeableFloat( &rotation, &rotation, "rotation", PERMISSION_OWNER ) );
+  registerVar( new SynchronizeableBool( &bFire, &bFire, "bSecFire", PERMISSION_OWNER));
 
   registerVar( new SynchronizeableVector( &velocity, &velocity, "velocity", PERMISSION_MASTER_SERVER ) );
Index: branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10022)
+++ branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10023)
@@ -89,5 +89,4 @@
     short                 supportedPlaymodes; //!< What Playmodes are Supported in this Playable.
     Playable::Playmode    playmode;           //!< The current playmode.
-    bool                  bSecFire;
 
     //ship atributes
@@ -135,4 +134,5 @@
     bool                  bRollL;             //!< rolling button pressed (left)
     bool                  bRollR;             //!< rolling button pressed (right)
+    bool                  bSecFire;           //!< second fire button pressed
 
     /*
Index: branches/playability/src/world_entities/weapons/swarm_launcher.cc
===================================================================
--- branches/playability/src/world_entities/weapons/swarm_launcher.cc	(revision 10023)
+++ branches/playability/src/world_entities/weapons/swarm_launcher.cc	(revision 10023)
@@ -0,0 +1,149 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific
+   main-programmer: Benjamin Grauer
+   co-programmer:
+*/
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WEAPON
+
+#include "swarm_launcher.h"
+
+#include "weapon_manager.h"
+#include "world_entities/projectiles/projectile.h"
+
+#include "model.h"
+
+#include "state.h"
+#include "animation3d.h"
+
+#include "util/loading/factory.h"
+
+#include "class_id_DEPRECATED.h"
+
+ObjectListDefinitionID(SwarmLauncher, CL_SWARM_LAUNCHER);
+CREATE_FACTORY(SwarmLauncher);
+
+/**
+ *  standard constructor
+ *
+ * creates a new SwarmLauncher
+ */
+SwarmLauncher::SwarmLauncher()
+  : Weapon()
+{
+  this->init();
+}
+
+/**
+ * creates a new SwarmLauncher from a TiXmlElement
+ */
+SwarmLauncher::SwarmLauncher(const TiXmlElement* root)
+{
+  this->init();
+  if (root != NULL)
+    this->loadParams(root);
+}
+
+/**
+ *  standard deconstructor
+*/
+SwarmLauncher::~SwarmLauncher ()
+{
+  // model will be deleted from WorldEntity-destructor
+}
+
+void SwarmLauncher::init()
+{
+  this->registerObject(this, SwarmLauncher::_objectList);
+
+  Animation3D* animation1 = this->getAnimation(WS_ACTIVATING, this);
+  Animation3D* animation2 = this->getAnimation(WS_DEACTIVATING, this);
+
+  animation1->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation2->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+  animation2->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
+
+  animation1->setInfinity(ANIM_INF_CONSTANT);
+  animation2->setInfinity(ANIM_INF_CONSTANT);
+
+  this->setStateDuration(WS_SHOOTING, .6);
+  this->setStateDuration(WS_RELOADING, 1.0f);
+  this->setStateDuration(WS_ACTIVATING, .4);
+  this->setStateDuration(WS_DEACTIVATING, .4);
+
+  this->setEnergyMax(10);
+  this->increaseEnergy(10);
+  //this->minCharge = 2;
+
+  this->setCapability(WTYPE_ALLDIRS | WTYPE_TURRET | WTYPE_DIRECTIONAL | WTYPE_LIGHT);
+  this->setProjectileTypeC("SwarmProjectile");
+
+  this->loadModel("models/guns/turret1.obj", 1.0);
+
+  this->setEmissionPoint(1.684, 0.472, 0);
+  //this->getProjectileFactory()->prepare(100);
+
+  this->setActionSound(WA_SHOOT, "sound/explosions/explosion_3.wav");
+  this->setActionSound(WA_ACTIVATE, "sound/vocals/missiles.wav");
+  this->setActionSound(WA_RELOAD, "sound/vocals/reload.wav");
+
+}
+
+void SwarmLauncher::loadParams(const TiXmlElement* root)
+{
+  Weapon::loadParams(root);
+}
+
+void SwarmLauncher::activate()
+{
+}
+
+void SwarmLauncher::deactivate()
+{
+}
+
+void SwarmLauncher::tick(float dt)
+{
+  if (!Weapon::tickW(dt))
+    return;
+
+  Quaternion quat;
+  Vector direction;
+  if (this->getDefaultTarget() == NULL)
+    direction = this->getAbsCoor();
+  else
+    direction = this->getDefaultTarget()->getAbsCoor() - this->getAbsCoor();
+
+  direction.normalize();
+
+  if (likely (this->getParent() != NULL))
+    quat = Quaternion(direction, this->getParent()->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
+  else
+    quat = Quaternion(direction, Vector(0,1,0)) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
+
+  this->setAbsDirSoft(quat, 5);
+}
+
+void SwarmLauncher::fire()
+{
+  Projectile* pj = this->getProjectile();
+  if (pj == NULL)
+    return;
+
+  pj->setVelocity(this->getVelocity()+(this->getAbsDir().apply(Vector(1,0,0))*100.0 /*+ VECTOR_RAND(13) */
+            /*target->getAbsCoor() - this->getAbsCoor()*/)*.5);//this->getVelocity());
+
+  pj->setParent(PNode::getNullParent());
+  pj->setAbsCoor(this->getEmissionPoint());
+  pj->setAbsDir(this->getAbsDir());
+  pj->activate();
+}
Index: branches/playability/src/world_entities/weapons/swarm_launcher.h
===================================================================
--- branches/playability/src/world_entities/weapons/swarm_launcher.h	(revision 10023)
+++ branches/playability/src/world_entities/weapons/swarm_launcher.h	(revision 10023)
@@ -0,0 +1,32 @@
+/*!
+ * @file swarm_launcher.h
+*/
+
+
+#ifndef _SWARM_LAUNCHER_H
+#define _SWARM_LAUNCHER_H
+
+#include "weapon.h"
+
+class SwarmLauncher : public Weapon
+  {
+  ObjectListDeclaration(SwarmLauncher);
+  public:
+    SwarmLauncher ();
+    SwarmLauncher(const TiXmlElement* root);
+    virtual ~SwarmLauncher ();
+
+    void init();
+    virtual void loadParams(const TiXmlElement* root);
+
+    virtual void activate();
+    virtual void deactivate();
+
+    virtual void tick(float dt);
+    virtual void fire();
+
+
+  private:
+  };
+
+#endif /* _SWARM_LAUNCHER_H */
Index: branches/playability/src/world_entities/weapons/swarm_missile.cc
===================================================================
--- branches/playability/src/world_entities/weapons/swarm_missile.cc	(revision 10022)
+++ 	(revision )
@@ -1,146 +1,0 @@
-/*
-   orxonox - the future of 3D-vertical-scrollers
-
-   Copyright (C) 2004 orx
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   ### File Specific
-   main-programmer: Benjamin Grauer
-   co-programmer:
-*/
-#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WEAPON
-
-#include "swarm_missile.h"
-
-#include "weapon_manager.h"
-#include "world_entities/projectiles/projectile.h"
-
-#include "model.h"
-
-#include "state.h"
-#include "animation3d.h"
-
-#include "util/loading/factory.h"
-
-#include "class_id_DEPRECATED.h"
-CREATE_FACTORY(SwarmMissile);
-
-
-/**
- *  standard constructor
- *
- * creates a new SwarmMissile
- */
-SwarmMissile::SwarmMissile()
-  : Weapon()
-{
-  this->init();
-}
-
-/**
- * creates a new SwarmMissile from a TiXmlElement
- */
-SwarmMissile::SwarmMissile(const TiXmlElement* root)
-{
-  this->init();
-  if (root != NULL)
-    this->loadParams(root);
-}
-
-/**
- *  standard deconstructor
-*/
-SwarmMissile::~SwarmMissile ()
-{
-  // model will be deleted from WorldEntity-destructor
-}
-
-void SwarmMissile::init()
-{
-  Animation3D* animation1 = this->getAnimation(WS_ACTIVATING, this);
-  Animation3D* animation2 = this->getAnimation(WS_DEACTIVATING, this);
-
-  animation1->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-  animation1->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-  animation2->addKeyFrame(Vector(0, 0, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-  animation2->addKeyFrame(Vector(0, -.5, 0), Quaternion(), 0.3, ANIM_LINEAR, ANIM_CONSTANT);
-
-  animation1->setInfinity(ANIM_INF_CONSTANT);
-  animation2->setInfinity(ANIM_INF_CONSTANT);
-
-  this->setStateDuration(WS_SHOOTING, .6);
-  this->setStateDuration(WS_RELOADING, 1.0f);
-  this->setStateDuration(WS_ACTIVATING, .4);
-  this->setStateDuration(WS_DEACTIVATING, .4);
-
-  this->setEnergyMax(100);
-  this->increaseEnergy(100);
-  //this->minCharge = 2;
-
-  this->setCapability(WTYPE_ALLDIRS | WTYPE_TURRET);
-  this->setProjectileTypeC("SwarmProjectile");
-
-  this->loadModel("models/guns/turret1.obj", 1.0);
-
-  this->setEmissionPoint(1.684, 0.472, 0);
-  //this->getProjectileFactory()->prepare(100);
-
-  this->setActionSound(WA_SHOOT, "sound/explosions/explosion_3.wav");
-  this->setActionSound(WA_ACTIVATE, "sound/vocals/missiles.wav");
-  this->setActionSound(WA_RELOAD, "sound/vocals/reload.wav");
-
-}
-
-void SwarmMissile::loadParams(const TiXmlElement* root)
-{
-  Weapon::loadParams(root);
-}
-
-void SwarmMissile::activate()
-{
-}
-
-void SwarmMissile::deactivate()
-{
-}
-
-void SwarmMissile::tick(float dt)
-{
-  if (!Weapon::tickW(dt))
-    return;
-
-  Quaternion quat;
-  Vector direction;
-  if (this->getDefaultTarget() == NULL)
-    direction = this->getAbsCoor();
-  else
-    direction = this->getDefaultTarget()->getAbsCoor() - this->getAbsCoor();
-
-  direction.normalize();
-
-  if (likely (this->getParent() != NULL))
-    quat = Quaternion(direction, this->getParent()->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
-  else
-    quat = Quaternion(direction, Vector(0,1,0)) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
-
-  this->setAbsDirSoft(quat, 5);
-}
-
-void SwarmMissile::fire()
-{
-  Projectile* pj = this->getProjectile();
-  if (pj == NULL)
-    return;
-
-  pj->setVelocity(this->getVelocity()+(this->getAbsDir().apply(Vector(1,0,0))*100.0 /*+ VECTOR_RAND(13) */
-            /*target->getAbsCoor() - this->getAbsCoor()*/)*.5);//this->getVelocity());
-
-  pj->setParent(PNode::getNullParent());
-  pj->setAbsCoor(this->getEmissionPoint());
-  pj->setAbsDir(this->getAbsDir());
-  pj->activate();
-}
Index: branches/playability/src/world_entities/weapons/swarm_missile.h
===================================================================
--- branches/playability/src/world_entities/weapons/swarm_missile.h	(revision 10022)
+++ 	(revision )
@@ -1,32 +1,0 @@
-/*!
- * @file swarm_missile.h
-*/
-
-
-#ifndef _SWARM_MISSILE_H
-#define _SWARM_MISSILE_H
-
-#include "weapon.h"
-
-class SwarmMissile : public Weapon
-  {
-  
-  public:
-    SwarmMissile ();
-    SwarmMissile(const TiXmlElement* root);
-    virtual ~SwarmMissile ();
-
-    void init();
-    virtual void loadParams(const TiXmlElement* root);
-
-    virtual void activate();
-    virtual void deactivate();
-
-    virtual void tick(float dt);
-    virtual void fire();
-
-
-  private:
-  };
-
-#endif /* _BOOMERANG_GUN_H */
Index: branches/playability/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- branches/playability/src/world_entities/weapons/weapon_manager.cc	(revision 10022)
+++ branches/playability/src/world_entities/weapons/weapon_manager.cc	(revision 10023)
@@ -481,6 +481,6 @@
       if (tickWeapon != NULL)
       {
-           //        if (this->parent != NULL)
-          tickWeapon->toList(this->parentEntity->getOMListNumber());
+        //if (this->parent != NULL)
+        tickWeapon->toList(this->parentEntity->getOMListNumber());
         tickWeapon->requestAction(WA_ACTIVATE);
         this->currentSlotConfig[i].position.activateNode();
