Index: trunk/src/world_entities/effects/billboard.cc
===================================================================
--- trunk/src/world_entities/effects/billboard.cc	(revision 9406)
+++ trunk/src/world_entities/effects/billboard.cc	(revision 9869)
@@ -26,7 +26,7 @@
 
 
-
-CREATE_FACTORY(Billboard, CL_BILLBOARD);
-
+#include "class_id_DEPRECATED.h"
+ObjectListDefinitionID(Billboard, CL_BILLBOARD);
+CREATE_FACTORY(Billboard);
 
 /**
@@ -57,5 +57,5 @@
 void Billboard::init()
 {
-  this->setClassID(CL_BILLBOARD, "Billboard");
+  this->registerObject(this, Billboard::_objectList);
   this->setName("Billboard");
 
@@ -124,5 +124,5 @@
   glDisable(GL_LIGHTING);
   glDisable(GL_FOG);
-  
+
   glPushMatrix();
 
@@ -130,5 +130,5 @@
   //glTranslatef(0,0,0);
   this->material->select();
-  
+
   const PNode* camera = State::getCameraNode();  //!< @todo MUST be different
   Vector cameraPos = camera->getAbsCoor();
@@ -141,5 +141,5 @@
   h.normalize();
   v.normalize();
-  
+
   v *= sizeX;
   h *= sizeY;
@@ -165,8 +165,8 @@
              this->getAbsCoor().z - h.z + v.z);
   glEnd();
-  
-  
+
+
   glPopMatrix();
-  
+
   glPopAttrib();
 }
Index: trunk/src/world_entities/effects/billboard.h
===================================================================
--- trunk/src/world_entities/effects/billboard.h	(revision 9406)
+++ trunk/src/world_entities/effects/billboard.h	(revision 9869)
@@ -13,4 +13,5 @@
 class Billboard : public WorldEntity
 {
+  ObjectListDeclaration(Billboard);
   public:
     Billboard(const TiXmlElement* root = NULL);
Index: trunk/src/world_entities/effects/explosion.cc
===================================================================
--- trunk/src/world_entities/effects/explosion.cc	(revision 9406)
+++ trunk/src/world_entities/effects/explosion.cc	(revision 9869)
@@ -18,17 +18,16 @@
 #include "explosion.h"
 
-#include "fast_factory.h"
+#include "loading/fast_factory.h"
 
 #include "state.h"
-#include "class_list.h"
 
-#include "box_emitter.h"
-#include "sprite_particles.h"
+#include "particles/box_emitter.h"
+#include "particles/sprite_particles.h"
 
 
 
-
-CREATE_FAST_FACTORY_STATIC(Explosion, CL_EXPLOSION);
-
+#include "class_id_DEPRECATED.h"
+ObjectListDefinitionID(Explosion, CL_EXPLOSION);
+CREATE_FAST_FACTORY_STATIC(Explosion);
 
 /**
@@ -37,5 +36,5 @@
 Explosion::Explosion ()
 {
-  this->setClassID(CL_EXPLOSION, "Explosion");
+  this->registerObject(this, Explosion::_objectList);
   this->toList(OM_DEAD_TICK);
 
@@ -59,5 +58,5 @@
 
   /* this is normaly done by World.cc by deleting the ParticleEngine */
-  if (Explosion::explosionParticles != NULL && ClassList::getList(CL_EXPLOSION)->size() <= 1)
+  if (Explosion::explosionParticles != NULL && Explosion::objectList().size() <= 1)
      Explosion::explosionParticles = NULL;
 }
Index: trunk/src/world_entities/effects/explosion.h
===================================================================
--- trunk/src/world_entities/effects/explosion.h	(revision 9406)
+++ trunk/src/world_entities/effects/explosion.h	(revision 9869)
@@ -15,4 +15,5 @@
 class Explosion : public WorldEntity
 {
+  ObjectListDeclaration(Explosion);
   public:
     static void explode (PNode* position, const Vector& size);
Index: trunk/src/world_entities/effects/lightning_bolt.cc
===================================================================
--- trunk/src/world_entities/effects/lightning_bolt.cc	(revision 9406)
+++ trunk/src/world_entities/effects/lightning_bolt.cc	(revision 9869)
@@ -20,12 +20,12 @@
 #include "material.h"
 
-#include "util/loading/resource_manager.h"
+#include "sound/resource_sound_buffer.h"
 
 
 
 
-
-CREATE_FACTORY(LightningBolt, CL_LIGHTNING_BOLT);
-
+#include "class_id_DEPRECATED.h"
+ObjectListDefinitionID(LightningBolt, CL_LIGHTNING_BOLT);
+CREATE_FACTORY(LightningBolt);
 
 /**
@@ -34,5 +34,5 @@
 LightningBolt::LightningBolt (const TiXmlElement* root)
 {
-  this->setClassID(CL_LIGHTNING_BOLT, "LightningBolt");
+  this->registerObject(this, LightningBolt::_objectList);
 
   this->toList(OM_COMMON);
@@ -56,13 +56,7 @@
   this->seedTime = 4.0f;
 
-  this->soundSource = NULL;
-  this->thunderBuffer = NULL;
-
   this->soundSource.setSourceNode(this);
 
-  //load sound
-  if (this->thunderBuffer != NULL)
-    ResourceManager::getInstance()->unload(this->thunderBuffer);
-  this->thunderBuffer = (OrxSound::SoundBuffer*)ResourceManager::getInstance()->load("sound/atmosphere/thunder.wav", WAV);
+  this->thunderBuffer = OrxSound::ResourceSoundBuffer("sound/atmosphere/thunder.wav");
 }
 
Index: trunk/src/world_entities/effects/lightning_bolt.h
===================================================================
--- trunk/src/world_entities/effects/lightning_bolt.h	(revision 9406)
+++ trunk/src/world_entities/effects/lightning_bolt.h	(revision 9869)
@@ -2,8 +2,8 @@
  * @file lightning_bolt.h
  * @brief a LightningBolt Projectile
- *  Der Effekt soll folgendermaßen funktionieren:
+ *  Der Effekt soll folgenderma�n funktionieren:
  * -> Ein Partikel mit einer Blitz-Textur soll sehr schnell erscheinen,
- * -> während er an Intensität zunimmt soll die Beleuchtung der gerenderten Szene entsprechend zunehmen.
- * -> Je mehr Blitze zum gleichen Zeitpunkt sichtbar sind, desto heller soll die Beleuchtung werden, das heißt die Helligkeitszunahme pro Blitz soll Additiv sein.
+ * -> w�rend er an Intensit� zunimmt soll die Beleuchtung der gerenderten Szene entsprechend zunehmen.
+ * -> Je mehr Blitze zum gleichen Zeitpunkt sichtbar sind, desto heller soll die Beleuchtung werden, das hei� die Helligkeitszunahme pro Blitz soll Additiv sein.
  * -> Ein Partikel soll ebenfalls sehr schnell wieder verblassen, dabei soll die Beleuchtung entsprechend der vorhergehenden Zunahme wieder abnehmen (Additiv)
  */
@@ -21,4 +21,5 @@
 class LightningBolt : public WorldEntity
 {
+  ObjectListDeclaration(LightningBolt);
   public:
     LightningBolt(const TiXmlElement* root = NULL);
@@ -51,5 +52,5 @@
 
     OrxSound::SoundSource    soundSource;
-    OrxSound::SoundBuffer*   thunderBuffer;
+    OrxSound::SoundBuffer    thunderBuffer;
 };
 
