Index: /branches/bsp_model/src/lib/collision_reaction/collision_event.h
===================================================================
--- /branches/bsp_model/src/lib/collision_reaction/collision_event.h	(revision 8218)
+++ /branches/bsp_model/src/lib/collision_reaction/collision_event.h	(revision 8219)
@@ -25,6 +25,6 @@
   { this->entityA = entityA; this->entityB = entityB; this->bvA = bvA; this->bvB = bvB; }
   /** collides two WorldEntities @param entity world entity , @param ground ground plane, @param position position on the ground */
-  inline void collide(WorldEntity* entity, Vector normal, Vector position)
-  { this->entityA = entity; this->groundNormal = normal; this->position = position; }
+  inline void collide(WorldEntity* entity, WorldEntity* groundEntity, Vector normal, Vector position)
+  { this->entityA = entity; this->entityB = groundEntity, this->groundNormal = normal; this->position = position; }
 
 
Index: /branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc
===================================================================
--- /branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc	(revision 8218)
+++ /branches/bsp_model/src/lib/graphics/importer/bsp_manager.cc	(revision 8219)
@@ -48,6 +48,7 @@
 //CREATE_FACTORY( BspManager, CL_BSP_MODEL);
 
-BspManager::BspManager()
-{
+BspManager::BspManager(WorldEntity* parent)
+{
+  this->parent = parent;
   /*// open a BSP file
   this->bspFile = new BspFile();
@@ -917,5 +918,5 @@
     // Return the normal here: Normal's stored in this->collPlane;
    if(collision)
-     worldEntity->registerCollision(worldEntity, Vector(this->collPlane->x, this->collPlane->y, this->collPlane->z), out);
+     worldEntity->registerCollision(worldEntity, this->parent, Vector(this->collPlane->x, this->collPlane->y, this->collPlane->z), out);
 }
 
Index: /branches/bsp_model/src/lib/graphics/importer/bsp_manager.h
===================================================================
--- /branches/bsp_model/src/lib/graphics/importer/bsp_manager.h	(revision 8218)
+++ /branches/bsp_model/src/lib/graphics/importer/bsp_manager.h	(revision 8219)
@@ -51,5 +51,5 @@
 public:
   // Constructors
-  BspManager();
+  BspManager(WorldEntity* parent);
 
   BspManager(const char* fileName, float scale = 0.4f);
@@ -99,4 +99,5 @@
                             For example, if traceMins was (-100,-3,-15) and traceMaxs was (55,22,7), traceExtents */
 
+  WorldEntity* parent;          //!< the parent entity of the bspManager: interface to this
 
   bool * alreadyVisible;
Index: /branches/bsp_model/src/world_entities/bsp_entity.cc
===================================================================
--- /branches/bsp_model/src/world_entities/bsp_entity.cc	(revision 8218)
+++ /branches/bsp_model/src/world_entities/bsp_entity.cc	(revision 8219)
@@ -42,5 +42,5 @@
 void BspEntity::setName(const std::string& name)
 {
-  printf("+++++++++++ LOADING NAME %s\n", name.c_str());
+  PRINTF(0)("+++++++++++ LOADING NAME %s\n", name.c_str());
 
   this->bspManager->load(name.c_str(), 0.1f);
@@ -55,5 +55,5 @@
 void BspEntity::init()
 {
-  this->bspManager = new BspManager();
+  this->bspManager = new BspManager(this);
   this->setClassID(CL_BSP_ENTITY, "BspEntity");
 
Index: /branches/bsp_model/src/world_entities/world_entity.cc
===================================================================
--- /branches/bsp_model/src/world_entities/world_entity.cc	(revision 8218)
+++ /branches/bsp_model/src/world_entities/world_entity.cc	(revision 8219)
@@ -410,5 +410,5 @@
  *  @param position it collides on the plane
  */
-bool WorldEntity::registerCollision(WorldEntity* entity, Vector normal, Vector position)
+bool WorldEntity::registerCollision(WorldEntity* entity, WorldEntity* groundEntity, Vector normal, Vector position)
 {
   // is there any handler listening?
@@ -419,5 +419,5 @@
   CollisionEvent* c = CREngine::getInstance()->popCollisionEventObject();
   assert(c != NULL); // if this should fail: we got not enough precached CollisionEvents: alter value in cr_defs.h
-  c->collide(entity, normal, position);
+  c->collide(entity, groundEntity, normal, position);
 
   for( int i = 0; i < CREngine::CR_NUMBER; ++i)
Index: /branches/bsp_model/src/world_entities/world_entity.h
===================================================================
--- /branches/bsp_model/src/world_entities/world_entity.h	(revision 8218)
+++ /branches/bsp_model/src/world_entities/world_entity.h	(revision 8219)
@@ -85,5 +85,5 @@
 
   bool registerCollision(WorldEntity* entityA, WorldEntity* entityB, BoundingVolume* bvA, BoundingVolume* bvB);
-  bool registerCollision(WorldEntity* entity, Vector normal, Vector position);
+  bool registerCollision(WorldEntity* entity, WorldEntity* groundEntity, Vector normal, Vector position);
   /** @return true if there is at least on collision reaction subscribed */
   inline bool isReactive() const { return this->bReactive; }
