Index: /branches/cr/src/defs/class_id.h
===================================================================
--- /branches/cr/src/defs/class_id.h	(revision 8005)
+++ /branches/cr/src/defs/class_id.h	(revision 8006)
@@ -1,2 +1,3 @@
+
 /*
    orxonox - the future of 3D-vertical-scrollers
@@ -250,8 +251,18 @@
   CL_COLLISION                  =    0x00000711,
   CL_COLLISION_HANDLE           =    0x00000712,
+  CL_COLLISION_REACTION         =    0X00000713,
+  CL_CR_PHYSICS_MOMENTUM        =    0X00000714,
+  CL_CR_PHYSICS_GROUND          =    0X00000715,
+  CL_CR_PHYSICS_GROUND_WALK     =    0X00000716,
+  CL_CR_OBJECT_DAMAGE          =    0X00000717,
+  CL_CR_OBJECT_PICKUP           =    0X00000718,
+  CL_CR_VERTEX_TRAFO            =    0X00000719,
+  CL_CR_SPECIAL_CALLBACK        =    0X00000720,
+
+
   CL_BV_TREE                    =    0x00701000,
   CL_BV_TREE_NODE               =    0x00702000,
-  CL_OBB_TREE                   =    0x00000714,
-  CL_OBB_TREE_NODE              =    0x00000715,
+  CL_OBB_TREE                   =    0x00000721,
+  CL_OBB_TREE_NODE              =    0x00000722,
   CL_BOUNDING_VOLUME            =    0x00710000,
   CL_OBB                        =    0x00720000,
Index: /branches/cr/src/lib/collision_reaction/Makefile.am
===================================================================
--- /branches/cr/src/lib/collision_reaction/Makefile.am	(revision 8005)
+++ /branches/cr/src/lib/collision_reaction/Makefile.am	(revision 8006)
@@ -7,5 +7,7 @@
                      collision.cc \
                      collision_event.cc \
-                     collision_handle.cc
+                     collision_handle.cc \
+                     collision_reaction.cc \
+                     cr_object_damage.cc
 
 
@@ -15,4 +17,6 @@
                      collision_event.h \
                      collision_handle.h \
-                     cr_defs.h
+                     cr_defs.h \
+                     collision_reaction.h \
+                     cr_object_damage.h
 
Index: /branches/cr/src/lib/collision_reaction/collision.h
===================================================================
--- /branches/cr/src/lib/collision_reaction/collision.h	(revision 8005)
+++ /branches/cr/src/lib/collision_reaction/collision.h	(revision 8006)
@@ -33,4 +33,6 @@
     /** registers a @param event CollisionEvent to take place */
     inline void registerCollisionEvent(CollisionEvent* event) { this->collisionEvents.push_back(event); }
+    /** @returns a vector of collision events */
+    inline const std::vector<CollisionEvent*>& getCollisionEvents() const { return this->collisionEvents; }
 
     void handleCollisionEvents();
Index: /branches/cr/src/lib/collision_reaction/collision_reaction.cc
===================================================================
--- /branches/cr/src/lib/collision_reaction/collision_reaction.cc	(revision 8006)
+++ /branches/cr/src/lib/collision_reaction/collision_reaction.cc	(revision 8006)
@@ -0,0 +1,40 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION_REACTION
+
+#include "collision_reaction.h"
+
+
+using namespace std;
+
+
+/**
+ *  standard constructor
+ */
+CollisionReaction::CollisionReaction ()
+  : BaseObject()
+{
+  this->setClassID(CL_COLLISION_REACTION, "CollisionReaction");
+}
+
+
+/**
+ *  standard deconstructor
+ */
+CollisionReaction::~CollisionReaction ()
+{
+}
+
Index: /branches/cr/src/lib/collision_reaction/collision_reaction.h
===================================================================
--- /branches/cr/src/lib/collision_reaction/collision_reaction.h	(revision 8006)
+++ /branches/cr/src/lib/collision_reaction/collision_reaction.h	(revision 8006)
@@ -0,0 +1,29 @@
+/*!
+ * @file collision_reaction.h
+ *  Definition of a generic collision reaction
+ */
+
+#ifndef _COLLISION_REACTION_H
+#define _COLLISION_REACTION_H
+
+#include "base_object.h"
+
+
+
+class Collision;
+
+//! A class representing a simple collision
+class CollisionReaction : public BaseObject
+{
+
+  public:
+    CollisionReaction();
+    virtual ~CollisionReaction();
+
+    virtual void reactToCollision(Collision* collision) = 0;
+
+  private:
+
+};
+
+#endif /* _COLLISION_REACTION_H */
Index: /branches/cr/src/lib/collision_reaction/cr_object_damage.cc
===================================================================
--- /branches/cr/src/lib/collision_reaction/cr_object_damage.cc	(revision 8006)
+++ /branches/cr/src/lib/collision_reaction/cr_object_damage.cc	(revision 8006)
@@ -0,0 +1,61 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION_REACTION
+
+#include "collision.h"
+
+#include "cr_object_damage.h"
+
+
+using namespace std;
+
+
+/**
+ *  standard constructor
+ */
+CRObjectDamage::CRObjectDamage ()
+  : CollisionReaction()
+{
+  this->setClassID(CL_CR_OBJECT_DAMAGE, "CRObjectDamage");
+
+}
+
+
+/**
+ *  standard deconstructor
+ */
+CRObjectDamage::~CRObjectDamage ()
+{
+}
+
+
+/**
+ * caluculates and applys the reaction to a specific collision
+ *  @param collision the collision
+ */
+void CRObjectDamage::reactToCollision(Collision* collision)
+{
+
+  const std::vector<CollisionEvent*>* v = &collision->getCollisionEvents();
+  const std::vector<CollisionEvent*>::const_iterator it = v->begin();
+  for(; it < v->end(); it++)
+  {
+    // go through the collisions and try to estimate the damage
+
+  }
+
+}
+
Index: /branches/cr/src/lib/collision_reaction/cr_object_damage.h
===================================================================
--- /branches/cr/src/lib/collision_reaction/cr_object_damage.h	(revision 8006)
+++ /branches/cr/src/lib/collision_reaction/cr_object_damage.h	(revision 8006)
@@ -0,0 +1,27 @@
+/*!
+ * @file cr_object_damage.h
+ *  Definition of a collision reaction: dealing damage to an object
+ */
+
+#ifndef _CR_OBJECT_DAMAGE_H
+#define _CR_OBJECT_DAMAGE_H
+
+#include "collision_reaction.h"
+
+
+class Collision;
+
+//! A class representing a reaction to a collision: dealing damage to an object
+class CRObjectDamage : public CollisionReaction
+{
+  public:
+    CRObjectDamage();
+    virtual ~CRObjectDamage();
+
+    virtual void reactToCollision(Collision* collision);
+
+  private:
+
+};
+
+#endif /* _CR_OBJECT_DAMAGE_H */
