Index: code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.cc	(revision 9667)
@@ -35,7 +35,7 @@
 namespace orxonox
 {
-    CreateFactory(DefaultWeaponmodeLink);
+    RegisterClass(DefaultWeaponmodeLink);
 
-    DefaultWeaponmodeLink::DefaultWeaponmodeLink(BaseObject* creator) : BaseObject(creator)
+    DefaultWeaponmodeLink::DefaultWeaponmodeLink(Context* context) : BaseObject(context)
     {
         RegisterObject(DefaultWeaponmodeLink);
Index: code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/DefaultWeaponmodeLink.h	(revision 9667)
@@ -39,5 +39,5 @@
     {
         public:
-            DefaultWeaponmodeLink(BaseObject* creator);
+            DefaultWeaponmodeLink(Context* context);
             virtual ~DefaultWeaponmodeLink();
 
Index: code/trunk/src/orxonox/weaponsystem/Munition.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Munition.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/Munition.cc	(revision 9667)
@@ -35,7 +35,7 @@
 namespace orxonox
 {
-    CreateFactory(Munition);
-
-    Munition::Munition(BaseObject* creator) : BaseObject(creator)
+    RegisterClass(Munition);
+
+    Munition::Munition(Context* context) : BaseObject(context)
     {
         RegisterObject(Munition);
Index: code/trunk/src/orxonox/weaponsystem/Munition.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Munition.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/Munition.h	(revision 9667)
@@ -56,5 +56,5 @@
 
         public:
-            Munition(BaseObject* creator);
+            Munition(Context* context);
             virtual ~Munition();
 
Index: code/trunk/src/orxonox/weaponsystem/Weapon.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Weapon.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/Weapon.cc	(revision 9667)
@@ -39,7 +39,7 @@
 namespace orxonox
 {
-    CreateFactory(Weapon);
+    RegisterClass(Weapon);
 
-    Weapon::Weapon(BaseObject* creator) : StaticEntity(creator)
+    Weapon::Weapon(Context* context) : StaticEntity(context)
     {
         RegisterObject(Weapon);
Index: code/trunk/src/orxonox/weaponsystem/Weapon.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Weapon.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/Weapon.h	(revision 9667)
@@ -42,5 +42,5 @@
     {
         public:
-            Weapon(BaseObject* creator);
+            Weapon(Context* context);
             virtual ~Weapon();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 9667)
@@ -45,5 +45,7 @@
 namespace orxonox
 {
-    WeaponMode::WeaponMode(BaseObject* creator) : BaseObject(creator)
+    RegisterAbstractClass(WeaponMode).inheritsFrom(Class(BaseObject));
+
+    WeaponMode::WeaponMode(Context* context) : BaseObject(context)
     {
         RegisterObject(WeaponMode);
@@ -75,5 +77,5 @@
         if( GameMode::isMaster() )
         {
-            this->defSndWpnFire_ = new WorldSound(this);
+            this->defSndWpnFire_ = new WorldSound(this->getContext());
             this->defSndWpnFire_->setLooping(false);
             this->bSoundAttached_ = false;
Index: code/trunk/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponMode.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponMode.h	(revision 9667)
@@ -36,5 +36,5 @@
 #include "util/Math.h"
 #include "core/BaseObject.h"
-#include "core/SubclassIdentifier.h"
+#include "core/class/SubclassIdentifier.h"
 #include "tools/Timer.h"
 
@@ -44,5 +44,5 @@
     {
         public:
-            WeaponMode(BaseObject* creator);
+            WeaponMode(Context* context);
             virtual ~WeaponMode();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponPack.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponPack.cc	(revision 9667)
@@ -38,7 +38,7 @@
 namespace orxonox
 {
-    CreateFactory(WeaponPack);
+    RegisterClass(WeaponPack);
 
-    WeaponPack::WeaponPack(BaseObject* creator) : BaseObject(creator)
+    WeaponPack::WeaponPack(Context* context) : BaseObject(context)
     {
         RegisterObject(WeaponPack);
Index: code/trunk/src/orxonox/weaponsystem/WeaponPack.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponPack.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponPack.h	(revision 9667)
@@ -41,5 +41,5 @@
     {
         public:
-            WeaponPack(BaseObject* creator);
+            WeaponPack(Context* context);
             virtual ~WeaponPack();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponSet.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSet.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSet.cc	(revision 9667)
@@ -37,7 +37,7 @@
 namespace orxonox
 {
-    CreateFactory(WeaponSet);
+    RegisterClass(WeaponSet);
 
-    WeaponSet::WeaponSet(BaseObject* creator) : BaseObject(creator)
+    WeaponSet::WeaponSet(Context* context) : BaseObject(context)
     {
         RegisterObject(WeaponSet);
Index: code/trunk/src/orxonox/weaponsystem/WeaponSet.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSet.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSet.h	(revision 9667)
@@ -41,5 +41,5 @@
     {
         public:
-            WeaponSet(BaseObject* creator);
+            WeaponSet(Context* context);
             virtual ~WeaponSet();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc	(revision 9667)
@@ -37,7 +37,7 @@
 namespace orxonox
 {
-    CreateFactory(WeaponSlot);
+    RegisterClass(WeaponSlot);
 
-    WeaponSlot::WeaponSlot(BaseObject* creator) : StaticEntity(creator)
+    WeaponSlot::WeaponSlot(Context* context) : StaticEntity(context)
     {
         RegisterObject(WeaponSlot);
Index: code/trunk/src/orxonox/weaponsystem/WeaponSlot.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSlot.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSlot.h	(revision 9667)
@@ -57,5 +57,5 @@
     {
         public:
-            WeaponSlot(BaseObject* creator);
+            WeaponSlot(Context* context);
             virtual ~WeaponSlot();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 9667)
@@ -30,5 +30,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/SubclassIdentifier.h"
+#include "core/class/SubclassIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
@@ -46,7 +46,7 @@
 namespace orxonox
 {
-    CreateFactory(WeaponSystem);
-
-    WeaponSystem::WeaponSystem(BaseObject* creator) : BaseObject(creator)
+    RegisterClass(WeaponSystem);
+
+    WeaponSystem::WeaponSystem(Context* context) : BaseObject(context)
     {
         RegisterObject(WeaponSystem);
@@ -308,5 +308,5 @@
         else if (identifier->getIdentifier()->isA(Class(Munition)))
         {
-            Munition* munition = identifier->fabricate(this);
+            Munition* munition = identifier->fabricate(this->getContext());
             this->munitions_[identifier->getIdentifier()] = munition;
             return munition;
Index: code/trunk/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSystem.h	(revision 8891)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSystem.h	(revision 9667)
@@ -43,5 +43,5 @@
     {
         public:
-            WeaponSystem(BaseObject* creator);
+            WeaponSystem(Context* context);
             virtual ~WeaponSystem();
 
