Index: code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc	(revision 9667)
@@ -49,7 +49,7 @@
 namespace orxonox
 {
-    CreateFactory(EnergyDrink);
+    RegisterClass(EnergyDrink);
 
-    EnergyDrink::EnergyDrink(BaseObject* creator) : WeaponMode(creator)
+    EnergyDrink::EnergyDrink(Context* context) : WeaponMode(context)
     {
         RegisterObject(EnergyDrink);
@@ -101,6 +101,6 @@
     {
         // Create the projectile
-        Projectile* projectile = new Projectile(this);
-        Model* model = new Model(projectile);
+        Projectile* projectile = new Projectile(this->getContext());
+        Model* model = new Model(projectile->getContext());
         model->setMeshSource("can.mesh");
         model->setCastShadows(false);
@@ -127,5 +127,5 @@
     void EnergyDrink::muzzleflash()
     {
-        MuzzleFlash *muzzleFlash = new MuzzleFlash(this);
+        MuzzleFlash *muzzleFlash = new MuzzleFlash(this->getContext());
         this->getWeapon()->attach(muzzleFlash);
         muzzleFlash->setPosition(this->getMuzzleOffset());
Index: code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h	(revision 9667)
@@ -54,5 +54,5 @@
     {
         public:
-            EnergyDrink(BaseObject* creator);
+            EnergyDrink(Context* context);
             virtual ~EnergyDrink() {}
 
Index: code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc	(revision 9667)
@@ -46,7 +46,7 @@
 namespace orxonox
 {
-    CreateFactory(FusionFire);
+    RegisterClass(FusionFire);
 
-    FusionFire::FusionFire(BaseObject* creator) : WeaponMode(creator)
+    FusionFire::FusionFire(Context* context) : WeaponMode(context)
     {
         RegisterObject(FusionFire);
@@ -66,5 +66,5 @@
     void FusionFire::fire()
     {
-        BillboardProjectile* projectile = new BillboardProjectile(this);
+        BillboardProjectile* projectile = new BillboardProjectile(this->getContext());
 
         projectile->setOrientation(this->getMuzzleOrientation());
Index: code/trunk/src/modules/weapons/weaponmodes/FusionFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/FusionFire.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/FusionFire.h	(revision 9667)
@@ -51,5 +51,5 @@
     {
         public:
-            FusionFire(BaseObject* creator);
+            FusionFire(Context* context);
             virtual ~FusionFire() {}
 
Index: code/trunk/src/modules/weapons/weaponmodes/HsW01.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/HsW01.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/HsW01.cc	(revision 9667)
@@ -50,7 +50,7 @@
 namespace orxonox
 {
-    CreateFactory(HsW01);
+    RegisterClass(HsW01);
 
-    HsW01::HsW01(BaseObject* creator) : WeaponMode(creator)
+    HsW01::HsW01(Context* context) : WeaponMode(context)
     {
         RegisterObject(HsW01);
@@ -111,6 +111,6 @@
 
         // Create the projectile.
-        Projectile* projectile = new Projectile(this);
-        Model* model = new Model(projectile);
+        Projectile* projectile = new Projectile(this->getContext());
+        Model* model = new Model(projectile->getContext());
         model->setMeshSource(mesh_);
         model->setCastShadows(false);
@@ -138,5 +138,5 @@
     void HsW01::muzzleflash()
     {
-        MuzzleFlash *muzzleFlash = new MuzzleFlash(this);
+        MuzzleFlash *muzzleFlash = new MuzzleFlash(this->getContext());
         this->getWeapon()->attach(muzzleFlash);
         muzzleFlash->setPosition(this->getMuzzleOffset());
Index: code/trunk/src/modules/weapons/weaponmodes/HsW01.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 9667)
@@ -53,5 +53,5 @@
     {
         public:
-            HsW01(BaseObject* creator);
+            HsW01(Context* context);
             virtual ~HsW01();
 
Index: code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc	(revision 9667)
@@ -45,7 +45,7 @@
 namespace orxonox
 {
-    CreateFactory(LaserFire);
+    RegisterClass(LaserFire);
 
-    LaserFire::LaserFire(BaseObject* creator) : WeaponMode(creator)
+    LaserFire::LaserFire(Context* context) : WeaponMode(context)
     {
         RegisterObject(LaserFire);
@@ -64,5 +64,5 @@
     void LaserFire::fire()
     {
-        ParticleProjectile* projectile = new ParticleProjectile(this);
+        ParticleProjectile* projectile = new ParticleProjectile(this->getContext());
 
         projectile->setOrientation(this->getMuzzleOrientation());
Index: code/trunk/src/modules/weapons/weaponmodes/LaserFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LaserFire.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/LaserFire.h	(revision 9667)
@@ -51,5 +51,5 @@
     {
         public:
-            LaserFire(BaseObject* creator);
+            LaserFire(Context* context);
             virtual ~LaserFire() {}
 
Index: code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc	(revision 9667)
@@ -44,7 +44,7 @@
 namespace orxonox
 {
-    CreateFactory(LightningGun);
+    RegisterClass(LightningGun);
 
-    LightningGun::LightningGun(BaseObject* creator) : WeaponMode(creator)
+    LightningGun::LightningGun(Context* context) : WeaponMode(context)
     {
         RegisterObject(LightningGun);
@@ -68,5 +68,5 @@
     void LightningGun::fire()
     {
-        LightningGunProjectile* projectile = new LightningGunProjectile(this);
+        LightningGunProjectile* projectile = new LightningGunProjectile(this->getContext());
         projectile->setMaterial("Flares/LightningBall_");
 
Index: code/trunk/src/modules/weapons/weaponmodes/LightningGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LightningGun.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/LightningGun.h	(revision 9667)
@@ -51,5 +51,5 @@
     {
         public:
-            LightningGun(BaseObject* creator);
+            LightningGun(Context* context);
             virtual ~LightningGun();
 
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 9667)
@@ -46,7 +46,7 @@
 namespace orxonox
 {
-    CreateFactory(RocketFire);
+    RegisterClass(RocketFire);
 
-    RocketFire::RocketFire(BaseObject* creator) : WeaponMode(creator)
+    RocketFire::RocketFire(Context* context) : WeaponMode(context)
     {
         RegisterObject(RocketFire);
@@ -71,5 +71,5 @@
     void RocketFire::fire()
     {
-        Rocket* rocket = new Rocket(this);
+        Rocket* rocket = new Rocket(this->getContext());
 
         this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 9667)
@@ -51,5 +51,5 @@
     {
         public:
-            RocketFire(BaseObject* creator);
+            RocketFire(Context* context);
             virtual ~RocketFire();
 
Index: code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 9667)
@@ -50,7 +50,7 @@
 {
 
-    CreateFactory(SimpleRocketFire);
+    RegisterClass(SimpleRocketFire);
 
-    SimpleRocketFire::SimpleRocketFire(BaseObject* creator) : WeaponMode(creator)
+    SimpleRocketFire::SimpleRocketFire(Context* context) : WeaponMode(context)
     {
         RegisterObject(SimpleRocketFire);
@@ -76,5 +76,5 @@
     void SimpleRocketFire::fire()
     {
-        RocketController* controller = new RocketController(this);
+        RocketController* controller = new RocketController(this->getContext());
         SimpleRocket* rocket = controller->getRocket();
         this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
Index: code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h	(revision 9526)
+++ code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h	(revision 9667)
@@ -50,5 +50,5 @@
     {
         public:
-            SimpleRocketFire(BaseObject* creator);
+            SimpleRocketFire(Context* context);
             virtual ~SimpleRocketFire();
             void deactivateFire();
