Index: /branches/cr/src/lib/collision_reaction/collision_handle.cc
===================================================================
--- /branches/cr/src/lib/collision_reaction/collision_handle.cc	(revision 7988)
+++ /branches/cr/src/lib/collision_reaction/collision_handle.cc	(revision 7989)
@@ -34,6 +34,4 @@
   this->owner = owner;
   this->type = type;
-
-  this->targetList.clear();
 }
 
@@ -60,7 +58,7 @@
  *  @param classID the classid to look for
  */
-void CollisionHandle::addTarget(long classID)
+void CollisionHandle::addTarget(long target)
 {
-  printf("addTarget: %i this is target nr %i\n", classID, this->targetList.size());
+  PRINTF(0)("addTarget: %i \n", target);
   // make sure there is no dublicate
 //   for(int i = 0; i < this->targetList.size(); ++i)
@@ -73,6 +71,7 @@
 //       return;
 
+
   // add element
-  this->targetList.push_back(classID);
+  this->targetList.push_back(target);
 }
 
Index: /branches/cr/src/lib/collision_reaction/collision_handle.h
===================================================================
--- /branches/cr/src/lib/collision_reaction/collision_handle.h	(revision 7988)
+++ /branches/cr/src/lib/collision_reaction/collision_handle.h	(revision 7989)
@@ -11,4 +11,5 @@
 
 #include <vector>
+#include <list>
 
 
@@ -28,5 +29,5 @@
     void reset();
 
-    void addTarget(long classID);
+    void addTarget(long target);
     Collision* registerCollision(WorldEntity* entityA, WorldEntity* entityB);
     void registerCollisionEvent(CollisionEvent* collisionEvent);
Index: /branches/cr/src/world_entities/world_entity.cc
===================================================================
--- /branches/cr/src/world_entities/world_entity.cc	(revision 7988)
+++ /branches/cr/src/world_entities/world_entity.cc	(revision 7989)
@@ -76,6 +76,6 @@
 
   // registering default reactions:
-  this->subscribeReaction(CREngine::CR_OBJECT_DAMAGE, 1, CL_WORLD_ENTITY);
-  this->subscribeReaction(CREngine::CR_PHYSICS_GROUND, 1, CL_TERRAIN);
+  this->subscribeReaction(CREngine::CR_OBJECT_DAMAGE, CL_WORLD_ENTITY);
+  this->subscribeReaction(CREngine::CR_PHYSICS_GROUND, CL_TERRAIN);
 
   this->toList(OM_NULL);
@@ -249,8 +249,70 @@
  * subscribes this world entity to a collision reaction
  *  @param type the type of reaction to subscribe to
+ *  @param target1 a filter target (classID)
+ */
+void WorldEntity::subscribeReaction(CREngine::CRType type, long target1)
+{
+  this->subscribeReaction(type);
+
+  // add the target filter
+  this->collisionHandles[type]->addTarget(target1);
+}
+
+
+/**
+ * subscribes this world entity to a collision reaction
+ *  @param type the type of reaction to subscribe to
+ *  @param target1 a filter target (classID)
+ */
+void WorldEntity::subscribeReaction(CREngine::CRType type, long target1, long target2)
+{
+  this->subscribeReaction(type);
+
+  // add the target filter
+  this->collisionHandles[type]->addTarget(target1);
+  this->collisionHandles[type]->addTarget(target2);
+}
+
+
+/**
+ * subscribes this world entity to a collision reaction
+ *  @param type the type of reaction to subscribe to
+ *  @param target1 a filter target (classID)
+ */
+void WorldEntity::subscribeReaction(CREngine::CRType type, long target1, long target2, long target3)
+{
+  this->subscribeReaction(type);
+
+  // add the target filter
+  this->collisionHandles[type]->addTarget(target1);
+  this->collisionHandles[type]->addTarget(target2);
+  this->collisionHandles[type]->addTarget(target3);
+}
+
+
+/**
+ * subscribes this world entity to a collision reaction
+ *  @param type the type of reaction to subscribe to
+ *  @param target1 a filter target (classID)
+ */
+void WorldEntity::subscribeReaction(CREngine::CRType type, long target1, long target2, long target3, long target4)
+{
+  this->subscribeReaction(type);
+
+  // add the target filter
+  this->collisionHandles[type]->addTarget(target1);
+  this->collisionHandles[type]->addTarget(target2);
+  this->collisionHandles[type]->addTarget(target3);
+  this->collisionHandles[type]->addTarget(target4);
+}
+
+
+/**
+ * subscribes this world entity to a collision reaction
+ *  @param type the type of reaction to subscribe to
  *  @param nrOfTargets number of target filters
  *  @param ... the targets as classIDs
  */
-void WorldEntity::subscribeReaction(CREngine::CRType type, int nrOfTargets, long target...)
+void WorldEntity::subscribeReaction(CREngine::CRType type)
 {
   if( this->collisionHandles[type] != NULL)  {
@@ -260,11 +322,4 @@
 
   this->collisionHandles[type] = CREngine::getInstance()->subscribeReaction(this, type);
-
-  // add the target filter
-  va_list itemlist;
-  va_start (itemlist, target);
-  for (int i = 0; i < nrOfTargets; i++)
-    this->collisionHandles[type]->addTarget(va_arg(itemlist, long));
-  va_end(itemlist);
 
   // now there is at least one collision reaction subsribed
Index: /branches/cr/src/world_entities/world_entity.h
===================================================================
--- /branches/cr/src/world_entities/world_entity.h	(revision 7988)
+++ /branches/cr/src/world_entities/world_entity.h	(revision 7989)
@@ -70,5 +70,10 @@
 
   /* --- Collision Reaction Block --- */
-  void subscribeReaction(CREngine::CRType type, int nrOfTargets, long target, ...);
+  void subscribeReaction(CREngine::CRType type);
+  void subscribeReaction(CREngine::CRType type, long target1);
+  void subscribeReaction(CREngine::CRType type, long target1, long target2);
+  void subscribeReaction(CREngine::CRType type, long target1, long target2, long target3);
+  void subscribeReaction(CREngine::CRType type, long target1, long target2, long target3, long target4);
+
   void unsubscribeReaction(CREngine::CRType type);
   void unsubscribeReaction();
