Index: /branches/presentation/src/world_entities/creatures/fps_player.cc
===================================================================
--- /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 10704)
+++ /branches/presentation/src/world_entities/creatures/fps_player.cc	(revision 10705)
@@ -109,5 +109,6 @@
   this->jumpAcceleration = 0.0f;
 
-  this->cameraNode.setParent(this);
+  this->cameraNode = new PNode();
+  this->cameraNode->setParent(this);
 
   this->attitude = this->getAbsDir().getAttitude();
@@ -133,5 +134,5 @@
   //this->aimingSystem = new AimingSystem(this);
 
-#if 0
+#if 1
   this->getWeaponManager().changeWeaponConfig(1);
   this->getWeaponManager().setSlotCount(2);
@@ -142,8 +143,8 @@
   this->getWeaponManager().setSlotPosition(1, Vector(5.0, 0.0, 0.0));
 
-  this->getWeaponManager().setParentNode(&this->cameraNode);
-  this->cameraNode.addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE);
-
-  this->getWeaponManager().getFixedTarget()->setParent(&this->cameraNode);
+  this->getWeaponManager().setParentNode(this->cameraNode);
+  this->cameraNode->addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE);
+
+  this->getWeaponManager().getFixedTarget()->setParent(this->cameraNode);
   this->getWeaponManager().getFixedTarget()->setParentMode(PNODE_ALL);
   this->getWeaponManager().getFixedTarget()->setRelCoor(10,0,0);
@@ -155,11 +156,11 @@
     this->addWeapon(wpRight,1, 0);
     wpRight->toList( this->getOMListNumber() );
-    wpRight->setParent( &this->cameraNode );
-    wpRight->requestAction( WA_ACTIVATE );
+    wpRight->setParent( this->cameraNode );
+    //wpRight->requestAction( WA_ACTIVATE );
     //wpRight->addChild(this->aimingSystem);
 
     //this->toList( OM_PLAYERS );
   }
-#endif
+#else
                          
   FPSSniperRifle* wpRight = new FPSSniperRifle(0);
@@ -169,6 +170,7 @@
   
   this->weaponMan.setParentEntity( this );
-  this->weaponMan.setSlotCount(1);
-  this->weaponMan.createWeaponSlot(0, this->cameraNode.getRelCoor().x, this->cameraNode.getRelCoor().y, this->cameraNode.getRelCoor().z, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+  this->weaponMan.setSlotCount(2);
+  this->weaponMan.createWeaponSlot(0, 0, 0, 0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+  this->weaponMan.createWeaponSlot(1, 0, 0, 0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
   this->weaponMan.addWeapon(wpRight, 0, 0);
   this->weaponMan.changeWeaponConfig(0);
@@ -176,5 +178,5 @@
   this->weaponMan.getFixedTarget()->setParent(&this->cameraNode );
   this->weaponMan.getFixedTarget()->setRelCoor( 100000,0,0 );
-
+#endif
 
   // network registration
@@ -240,10 +242,10 @@
   dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true );
 
-  State::getCameraNode()->setParentSoft(&this->cameraNode);
-  State::getCameraTargetNode()->setParentSoft(&this->cameraNode);
+  State::getCameraNode()->setParentSoft(this->cameraNode);
+  State::getCameraTargetNode()->setParentSoft(this->cameraNode);
   
   State::getCamera()->setViewMode(Camera::ViewFPS);
   
-  this->getWeaponManager().getFixedTarget()->setParent(&this->cameraNode);
+  this->getWeaponManager().getFixedTarget()->setParent(this->cameraNode);
   //this->getWeaponManager().getFixedTarget()->setParentMode(PNODE_ALL);
   //this->getWeaponManager().getFixedTarget()->setRelCoor(100,0,0);
@@ -278,8 +280,8 @@
     this->initWeapon = true;
 
-    this->cameraNode.setParentMode(PNODE_ROTATE_AND_MOVE);
+    this->cameraNode->setParentMode(PNODE_ROTATE_AND_MOVE);
 
     this->getWeaponManager().getParentNode()->setParentMode(PNODE_ROTATE_AND_MOVE);
-    this->getWeaponManager().getFixedTarget()->setParent(&this->cameraNode);
+    this->getWeaponManager().getFixedTarget()->setParent(this->cameraNode);
     //this->getWeaponManager().getFixedTarget()->setParentMode(PNODE_ROTATE_AND_MOVE);
     State::getCamera()->setViewMode(Camera::ViewFPS);
@@ -298,9 +300,11 @@
           f = 0.3*f;
       
-      this->cameraNode.setRelCoor(0, box->halfLength[1] * f, 0);
+      this->cameraNode->setRelCoor(0, box->halfLength[1] * f, 0);
+//      this->weaponMan.setRelCoor(0, box->halfLength[1] * f, 0);
 //      this->cameraNode.setRelCoor(10, box->halfLength[1] * f, 0);
      float v = 0.1f;
-     this->getWeaponManager().setSlotPosition(0, Vector(-8.0, box->halfLength[1] * v, 1.1));
-     this->getWeaponManager().setSlotPosition(1, Vector(5.0, box->halfLength[1] * v, 0.0));
+     //this->getWeaponManager().setSlotPosition(0, Vector(-8.0, box->halfLength[1] * v, 1.1));
+     //this->getWeaponManager().setSlotPosition(1, Vector(5.0, box->halfLength[1] * v, 0.0));
+     this->getWeaponManager().setSlotDirection( 0, Quaternion( 0.04, Vector( 0, 0, 1 ) ) );
   }
   
@@ -390,5 +394,5 @@
 
   this->setAbsDir(Quaternion(heading, Vector(0,1,0)));
-  this->cameraNode.setRelDir(Quaternion( attitude, Vector( 0, 0, 1 ) ));
+  this->cameraNode->setRelDir(Quaternion( attitude, Vector( 0, 0, 1 ) ));
 
   Vector velocity;
Index: /branches/presentation/src/world_entities/creatures/fps_player.h
===================================================================
--- /branches/presentation/src/world_entities/creatures/fps_player.h	(revision 10704)
+++ /branches/presentation/src/world_entities/creatures/fps_player.h	(revision 10705)
@@ -62,5 +62,5 @@
     float                 attitude;          //!< defines the camera angle to the x-z-plane
 
-    PNode                 cameraNode;        //!< the "eyes" of the player (or call it head if you want)
+    PNode*                cameraNode;        //!< the "eyes" of the player (or call it head if you want)
 
     float                 fallVelocity;      //!< velocity for falling down
Index: /branches/presentation/src/world_entities/weapons/bsp_weapon.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/bsp_weapon.cc	(revision 10704)
+++ /branches/presentation/src/world_entities/weapons/bsp_weapon.cc	(revision 10705)
@@ -94,5 +94,5 @@
 void BspWeapon::tick( float dt )
 {
-  PRINTF(0)("BSPWEAPON TICK: %d %f %f\n", bFire, bRate, dt );
+  //PRINTF(0)("BSPWEAPON TICK: %d %f %f\n", bFire, bRate, dt );
 	if (bFire) {
 		if (bRate <= 0) {
Index: /branches/presentation/src/world_entities/weapons/fps_sniper_rifle.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/fps_sniper_rifle.cc	(revision 10704)
+++ /branches/presentation/src/world_entities/weapons/fps_sniper_rifle.cc	(revision 10705)
@@ -168,7 +168,9 @@
   glMatrixMode(GL_MODELVIEW);
   glPushMatrix();
-  glTranslatef (this->getAbsCoor ().x,
-                this->getAbsCoor ().y,
-                this->getAbsCoor ().z);
+
+  Vector pos = this->getAbsCoor() + this->getAbsDir().apply( Vector( 2, 0, 0 ) );
+  glTranslatef (pos.x,
+                pos.y,
+                pos.z);
 
   Vector tmpRot = this->getAbsDir().getSpacialAxis();
@@ -183,5 +185,4 @@
 
   glPopMatrix();
-
 }
 
