Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h	(revision 2272)
@@ -51,13 +51,13 @@
 
             virtual void fire();
+            void attachNeededMunition(std::string munitionType);
+            virtual void setParentWeaponSystem();
+            Munition * getAttachedMunition();
+
+            //reloading
             void bulletTimer();
             void magazineTimer();
             void bulletReloaded();
             void magazineReloaded();
-            void attachNeededMunition(std::string munitionType);
-
-            //get and set functions
-            virtual void setParentWeaponSystem();
-            Munition * getAttachedMunition();
             void setBulletLoadingTime(float loadingTime);
             float getBulletLoadingTime();
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponSystem.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponSystem.cc	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponSystem.cc	(revision 2272)
@@ -85,4 +85,5 @@
 */
 
+
     //n is the n'th weaponSet, starting with zero
     //SpaceShip.cc only needs to have the keybinding to a specific Set-number n
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.cc	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.cc	(revision 2272)
@@ -38,5 +38,5 @@
     CreateFactory(BillboardProjectile);
 
-    BillboardProjectile::BillboardProjectile(BaseObject* creator, Weapon* owner) : Projectile(creator, owner)
+    BillboardProjectile::BillboardProjectile(BaseObject* creator) : Projectile(creator)
     {
         RegisterObject(BillboardProjectile);
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.h	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/BillboardProjectile.h	(revision 2272)
@@ -41,5 +41,5 @@
     {
         public:
-            BillboardProjectile(BaseObject* creator, Weapon* owner = 0);
+            BillboardProjectile(BaseObject* creator);
             virtual ~BillboardProjectile();
 
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.cc	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.cc	(revision 2272)
@@ -38,5 +38,5 @@
     CreateFactory(ParticleProjectile);
 
-    ParticleProjectile::ParticleProjectile(BaseObject* creator, Weapon* owner) : BillboardProjectile(creator, owner)
+    ParticleProjectile::ParticleProjectile(BaseObject* creator) : BillboardProjectile(creator)
     {
         RegisterObject(ParticleProjectile);
@@ -45,4 +45,6 @@
         this->particles_->addToSceneNode(this->getNode());
         this->particles_->setKeepParticlesInLocalSpace(true);
+
+        /*
         if (this->owner_)
         {
@@ -52,4 +54,5 @@
 //            this->particles_ = 0;
 //        }
+        */
 
         this->setConfigValues();
@@ -64,5 +67,5 @@
     void ParticleProjectile::setConfigValues()
     {
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback((Projectile*)this, &ParticleProjectile::speedChanged);
+        //SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback((Projectile*)this, &ParticleProjectile::speedChanged);
     }
 
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.h	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/ParticleProjectile.h	(revision 2272)
@@ -41,5 +41,5 @@
     {
         public:
-            ParticleProjectile(BaseObject* creator, Weapon* owner = 0);
+            ParticleProjectile(BaseObject* creator);
             virtual ~ParticleProjectile();
             virtual void changedVisibility();
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc	(revision 2272)
@@ -40,11 +40,9 @@
 #include "objects/worldentities/Model.h"
 #include "objects/worldentities/ParticleSpawner.h"
-#include "Settings.h"
+#include "core/Core.h"
 
 namespace orxonox
 {
-    float Projectile::speed_s = 5000;
-
-    Projectile::Projectile(BaseObject* creator, Weapon* owner) : MovableEntity(creator), owner_(owner)
+    Projectile::Projectile(BaseObject* creator) : MovableEntity(creator)
     {
         RegisterObject(Projectile);
@@ -57,4 +55,5 @@
         this->translate(Vector3(55, 0, 0), Ogre::Node::TS_LOCAL);
 
+        /*
         if (this->owner_)
         {
@@ -63,6 +62,7 @@
             this->setVelocity(this->owner_->getInitialDir() * this->speed_);
         }
+        */
 
-        if(!orxonox::Settings::isClient()) //only if not on client
+        if(!Core::isClient()) //only if not on client
           this->destroyTimer_.setTimer(this->lifetime_, false, this, createExecutor(createFunctor(&Projectile::destroyObject)));
     }
@@ -76,13 +76,6 @@
         SetConfigValue(damage_, 15.0).description("The damage caused by the projectile");
         SetConfigValue(lifetime_, 4.0).description("The time in seconds a projectile stays alive");
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback(this, &Projectile::speedChanged);
     }
 
-    void Projectile::speedChanged()
-    {
-        Projectile::speed_s = this->speed_;
-        if (this->owner_)
-            this->setVelocity(this->owner_->getInitialDir() * this->speed_);
-    }
 
     void Projectile::tick(float dt)
@@ -103,8 +96,14 @@
                 {
                     // hit
-                    ParticleSpawner* explosion = new ParticleSpawner(this->explosionTemplateName_, LODParticle::low, 2.0);
+                    ParticleSpawner* explosion = new ParticleSpawner(this);
+                    explosion->setSource(this->explosionTemplateName_);
+                    explosion->setLOD(LODParticle::low);
+                    explosion->configure(2.0);
                     explosion->setPosition(this->getPosition());
                     explosion->create();
-                    ParticleSpawner* smoke = new ParticleSpawner(this->smokeTemplateName_, LODParticle::normal, 2.0, 0.0);
+                    ParticleSpawner* smoke = new ParticleSpawner(this);
+                    smoke->setSource(this->smokeTemplateName_);
+                    smoke->setLOD(LODParticle::normal);
+                    smoke->configure(2.0, 0.0);
                     smoke->setPosition(this->getPosition());
 //                    smoke->getParticleInterface()->setSpeedFactor(3.0);
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.h	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/projectiles/Projectile.h	(revision 2272)
@@ -42,5 +42,4 @@
             virtual ~Projectile();
             void setConfigValues();
-            void speedChanged();
             void destroyObject();
             virtual void tick(float dt);
@@ -48,10 +47,6 @@
             virtual bool create();
 
-            static float getSpeed()
-                { return Projectile::speed_s; }
-
         protected:
-            Projectile(BaseObject* creator, Weapon* owner = 0);
-            SpaceShip* owner_;
+            Projectile(BaseObject* creator);
 
         private:
@@ -59,5 +54,4 @@
             std::string smokeTemplateName_;
         protected:
-            static float speed_s;
             float speed_;
         private:
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2272)
@@ -46,5 +46,5 @@
         //this->setLoadingTime(0.5);
 
-        //Hack --> will be loaded by XML
+        //how could it be loaded by XML
         this->attachNeededMunition("LaserGunMunition");
     }
@@ -58,7 +58,4 @@
         if ( this->getBulletReadyToShoot() && this->getMagazineReadyToShoot() )
         {
-
-
-
             //take munition
             this->getAttachedMunition()->removeBullets(1,this);
@@ -67,5 +64,9 @@
 
             //create projectile
-            BillboardProjectile* projectile = new ParticleProjectile(this,this);
+            BillboardProjectile* projectile = new ParticleProjectile(this);
+            projectile->setOrientation(projectile->getOrientation());
+            projectile->setPosition(projectile->getWorldPosition());
+            projectile->setVelocity(WorldEntity::FRONT * this->speed_);
+
             //projectile->setColour(this->getProjectileColour());
         }
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2232)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2272)
@@ -53,4 +53,5 @@
 
         private:
+            float speed_;
 
 
