Index: /branches/presentation/src/lib/collision_detection/obb_tree.cc
===================================================================
--- /branches/presentation/src/lib/collision_detection/obb_tree.cc	(revision 9171)
+++ /branches/presentation/src/lib/collision_detection/obb_tree.cc	(revision 9172)
@@ -41,4 +41,11 @@
 
 
+/**
+ *  standard constructor
+ */
+OBBTree::OBBTree()
+  : BVTree()
+{}
+
 
 void OBBTree::init()
@@ -78,4 +85,12 @@
 
   this->rootNode->spawnBVTree(modelInf, triangleIndexes, modelInf.numTriangles);
+}
+
+
+void OBBTree::createBox(Vector start, Vector end)
+{
+  this->rootNode = new OBBTreeNode(*this, NULL, 11);
+
+  this->rootNode->createBox(start, end);
 }
 
Index: /branches/presentation/src/lib/collision_detection/obb_tree.h
===================================================================
--- /branches/presentation/src/lib/collision_detection/obb_tree.h	(revision 9171)
+++ /branches/presentation/src/lib/collision_detection/obb_tree.h	(revision 9172)
@@ -23,4 +23,5 @@
   public:
     OBBTree(int depth, const modelInfo* modInfo, WorldEntity* entity);
+    OBBTree();
     virtual ~OBBTree();
     void init();
@@ -28,4 +29,6 @@
     virtual void spawnBVTree(const modelInfo& modelInf);
     virtual void flushTree();
+
+    void createBox(Vector start, Vector end);
 
     virtual void collideWith(WorldEntity* entity1, WorldEntity* entity2);
Index: /branches/presentation/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- /branches/presentation/src/lib/collision_detection/obb_tree_node.cc	(revision 9171)
+++ /branches/presentation/src/lib/collision_detection/obb_tree_node.cc	(revision 9172)
@@ -90,4 +90,20 @@
     delete this->bvElement;
 }
+
+
+
+void OBBTreeNode::createBox(Vector start, Vector end)
+{
+
+  this->bvElement = new OBB();
+  this->nodeLeft = NULL;
+  this->nodeRight = NULL;
+
+  this->bvElement->center = (end - start) * 0.5f;
+  this->bvElement->halfLength[0] = (end.x - start.x) * 0.5f;
+  this->bvElement->halfLength[1] = (end.y - start.y) * 0.5f;
+  this->bvElement->halfLength[2] = (end.z - start.z) * 0.5f;
+}
+
 
 
@@ -682,5 +698,5 @@
     if( depth == 0/*!(drawMode & DRAW_SINGLE && depth != 0)*/)
     {
-      if( 1 /*drawMode & DRAW_POINTS*/)
+      if( 0 /*drawMode & DRAW_POINTS*/)
       {
         glBegin(GL_POINTS);
Index: /branches/presentation/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- /branches/presentation/src/lib/collision_detection/obb_tree_node.h	(revision 9171)
+++ /branches/presentation/src/lib/collision_detection/obb_tree_node.h	(revision 9172)
@@ -31,4 +31,5 @@
 
     virtual void spawnBVTree(const modelInfo& modelInf, const int* triangleIndexes, int length);
+    void createBox(Vector start, Vector end);
 
     virtual void collideWith(BVTreeNode* treeNode, WorldEntity* nodeA, WorldEntity* nodeB);
Index: /branches/presentation/src/world_entities/creatures/fps_player.cc
===================================================================
--- /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 9171)
+++ /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 9172)
@@ -243,5 +243,5 @@
       this->getWeaponManager().setSlotPosition(1, Vector(5.0, box->halfLength[1] * f, 0.0));
 
-      this->aimingSystem->toList(/*OM_LIST(this->getOMListNumber() + 1)*/ OM_GROUP_00);
+      this->aimingSystem->toList(/*OM_LIST(this->getOMListNumber() + 1)*/ OM_COMMON);
     }
   }
@@ -399,5 +399,5 @@
 
   this->setOnGround(false);
-
+  this->aimingSystem->flushList();
 }
 
Index: /branches/presentation/src/world_entities/weapons/aiming_system.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/aiming_system.cc	(revision 9171)
+++ /branches/presentation/src/world_entities/weapons/aiming_system.cc	(revision 9172)
@@ -1,3 +1,3 @@
-/*
+  /*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -36,4 +36,6 @@
 AimingSystem::AimingSystem (WorldEntity* entity)
 {
+  this->owner = entity;
+
   this->init();
 }
@@ -55,8 +57,16 @@
   this->setName("AimingSystem");
 
-  this->loadModel("models/guns/targeting_system_body.obj");
+  //this->loadModel("models/guns/targeting_system_body2.obj");
+//   this->loadModel("models/ships/fighter.obj");
 
   // registering default reactions:
   this->subscribeReaction(CREngine::CR_OBJECT_DAMAGE, CL_WORLD_ENTITY);
+
+  this->range = 1000.0f;
+  this->sideLength = 10.0f;
+
+  // new obb tree
+  this->obbTree = new OBBTree();
+  this->obbTree->createBox(Vector(0.0f, 0.0f, 0.0f), Vector(this->range, this->sideLength, this->sideLength));
 }
 
@@ -69,8 +79,11 @@
 WorldEntity* AimingSystem::getNearestTarget()
 {
+
+//   PRINTF(0)("size: %i\n", this->selectionList.size());
+
+
   if( this->selectionList.size() == 0)
     return NULL;
-  else if( this->selectionList.size() == 1)
-    return this->selectionList.back();
+
 
   WorldEntity* nearestEntity     = NULL;
@@ -91,5 +104,6 @@
   if( nearestEntity != this->owner)
     return nearestEntity;
-  else return NULL;
+  else
+    return NULL;
 }
 
@@ -123,7 +137,19 @@
 void AimingSystem::draw() const
 {
-  WorldEntity::draw();
+//   WorldEntity::draw();
 
-  if( this->getOBBTree () != NULL)
-    this->getOBBTree()->drawBV(0, 1);
+  glMatrixMode(GL_MODELVIEW);
+  glPushMatrix();
+
+  /* translate */
+  glTranslatef (this->getAbsCoor ().x,
+                this->getAbsCoor ().y,
+                this->getAbsCoor ().z);
+  Vector tmpRot = this->getAbsDir().getSpacialAxis();
+  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
+
+  this->obbTree->drawBV(1, 1);
+
+  glPopMatrix();
+
 }
Index: /branches/presentation/src/world_entities/weapons/aiming_system.h
===================================================================
--- /branches/presentation/src/world_entities/weapons/aiming_system.h	(revision 9171)
+++ /branches/presentation/src/world_entities/weapons/aiming_system.h	(revision 9172)
@@ -16,4 +16,5 @@
 class BVTree;
 class Model;
+class OBBTree;
 
 
@@ -28,4 +29,5 @@
 
   WorldEntity* getNearestTarget();
+  void flushList() { this->selectionList.clear(); }
 
   void setRange(float range){this->range = range;};
@@ -39,8 +41,11 @@
  private:
    float                       range;                //!<
+   float                       sideLength;
    std::vector<WorldEntity*>   selectionList;        //!< the selections
 
    WorldEntity*                owner;                //!< the owner of the targeting system
 
+   OBBTree*                    obbTree;
+
 };
 
