Index: orxonox/trunk/src/lib/graphics/graphics_engine.h
===================================================================
--- orxonox/trunk/src/lib/graphics/graphics_engine.h	(revision 4831)
+++ orxonox/trunk/src/lib/graphics/graphics_engine.h	(revision 4832)
@@ -49,8 +49,12 @@
     int resolutionChanged(const SDL_ResizeEvent& resizeInfo);
 
-
-    static void showMouse(bool show) { (show)?SDL_ShowCursor(SDL_ENABLE):SDL_ShowCursor(SDL_DISABLE); };
-    static bool isMouseVisible() {return (SDL_ShowCursor(SDL_QUERY) == SDL_ENABLE)?true:false; };
+    /** @param show if The mouse-cursor should be visible */
+    inline static void showMouse(bool show) { (show)?SDL_ShowCursor(SDL_ENABLE):SDL_ShowCursor(SDL_DISABLE); };
+    /** @returns The Visinility of the mouse-cursor (true if visible, false if it is invisible) */
+    static bool isMouseVisible() { return (SDL_ShowCursor(SDL_QUERY) == SDL_ENABLE)?true:false; };
+    /** @param steal If the Winodow-Managers Events should be stolen to this app (steals the mouse, and all WM-clicks) */
     static void stealWMEvents(bool steal) { (steal)?SDL_WM_GrabInput(SDL_GRAB_ON):SDL_WM_GrabInput(SDL_GRAB_OFF); };
+    /** @returns true if Events are stolen from the WM, false if not. */
+    static bool isStealingEvents() { if (SDL_GRAB_ON) return true; };
 
     static void enter2DMode();
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 4831)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 4832)
@@ -1044,6 +1044,6 @@
 
       /* update tick the rest */
-      TrackManager::getInstance()->tick(this->dt);
-      this->localCamera->tick(this->dt);
+      TrackManager::getInstance()->tick(this->dtS);
+      this->localCamera->tick(this->dtS);
       // tick the engines
       AnimationPlayer::getInstance()->tick(this->dtS);
@@ -1054,4 +1054,6 @@
       GarbageCollector::getInstance()->tick(this->dtS);
 
+
+      crosshair->tick(this->dtS);
 
       /** actualy the Graphics Engine should tick the world not the other way around...
Index: orxonox/trunk/src/util/track/track_manager.cc
===================================================================
--- orxonox/trunk/src/util/track/track_manager.cc	(revision 4831)
+++ orxonox/trunk/src/util/track/track_manager.cc	(revision 4832)
@@ -1074,5 +1074,4 @@
 void TrackManager::tick(float dt)
 {
-  dt /= 1000;
   PRINTF(4)("CurrentTrackID: %d, LocalTime is: %f, timestep is: %f\n", this->currentTrackElem->ID, this->localTime, dt);
   if (this->localTime <= this->firstTrackElem->duration)
Index: orxonox/trunk/src/world_entities/camera.cc
===================================================================
--- orxonox/trunk/src/world_entities/camera.cc	(revision 4831)
+++ orxonox/trunk/src/world_entities/camera.cc	(revision 4832)
@@ -1,5 +1,5 @@
 
 
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -127,5 +127,5 @@
       this->toRelCoor = Vector(12, 5, 0);
       break;
-    case VIEW_LEFT: 
+    case VIEW_LEFT:
       this->toFovy = 90;
       this->toRelCoor = Vector(0, 2, -10);
@@ -148,5 +148,4 @@
 void Camera::tick(float dt)
 {
-  dt /= 500;
   float tmpFovy = (this->toFovy - this->fovy) * dt;
   if (tmpFovy > .001)
@@ -163,5 +162,5 @@
 /**
    \brief initialize rendering perspective according to this camera
-   
+
    This is called immediately before the rendering cycle starts, it sets all global
    rendering options as well as the GL_PROJECTION matrix according to the camera.
@@ -175,7 +174,7 @@
   // setting up the perspective
   gluPerspective(this->fovy,
-		 this->aspectRatio,
-		 this->nearClip,
-		 this->farClip);
+                 this->aspectRatio,
+                 this->nearClip,
+                 this->farClip);
 
   // speed-up feature
@@ -187,6 +186,6 @@
   // Setting the Camera Eye, lookAt and up Vectors
   gluLookAt(cameraPosition.x, cameraPosition.y, cameraPosition.z,
-	    targetPosition.x, targetPosition.y, targetPosition.z,
-	    up.x, up.y, up.z);
+            targetPosition.x, targetPosition.y, targetPosition.z,
+            up.x, up.y, up.z);
 
   // switching back to Modeling Matrix
Index: orxonox/trunk/src/world_entities/weapons/crosshair.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/crosshair.cc	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/crosshair.cc	(revision 4832)
@@ -19,9 +19,9 @@
 #include "event_handler.h"
 
+#include "load_param.h"
 #include "graphics_engine.h"
 #include "glincl.h"
-#include "p_node.h"
 #include "state.h"
-#include "model.h"
+#include "material.h"
 
 #include <iostream>
@@ -31,33 +31,45 @@
 
 /**
-   \brief standard constructor
+ * standart constructor
+ */
+Crosshair::Crosshair (const TiXmlElement* root)
+{
+  this->init();
+
+  if (root)
+    this->loadParams(root);
+  else
+    this->setTexture("maps/aim.png");
+}
+
+
+/**
+ * destroys a Crosshair
 */
-Crosshair::Crosshair ()
+Crosshair::~Crosshair ()
+{
+  if (this->material)
+  delete this->material;
+
+  // delete what has to be deleted here
+  EventHandler::getInstance()->unsubscribe(this);
+
+  GraphicsEngine::showMouse(true);
+  GraphicsEngine::stealWMEvents(false);
+}
+
+/**
+ * initializes the Crosshair
+ */
+void Crosshair::init()
 {
   this->setClassID(CL_CROSSHAIR, "Crosshair");
   this->setName("Crosshair");
 
-  this->material = NULL;
-  this->model = NULL;
   this->rotation = 0;
-
-  this->material = new Material("Crosshair Material");
-  this->material->setDiffuseMap("maps/aim.png");
-
-  float size = 50;
-  this->model = new Model();
-  this->model->addVertex (-0.5*size, -0.5*size, 0);
-  this->model->addVertex (0.5*size, -0.5*size, 0);
-  this->model->addVertex (0.5*size, 0.5*size, 0);
-  this->model->addVertex (-0.5*size, 0.5*size, 0);
-
-  this->model->addVertexTexture(0,0);
-  this->model->addVertexTexture(1,0);
-  this->model->addVertexTexture(1,1);
-  this->model->addVertexTexture(0,1);
-
-  this->model->setMaterial(this->material);
-  this->model->addFace(4, VERTEX_TEXCOORD, 0,0, 1,1 ,2,2, 3,3);
-  this->model->finalize();
+  this->rotationSpeed = 5;
+  this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0);
+
+  this->material = new Material;
 
   EventHandler::getInstance()->subscribe(this, ES_GAME, EV_MOUSE_MOTION);
@@ -70,18 +82,42 @@
 
 
-/**
-   \brief standard deconstructor
-*/
-Crosshair::~Crosshair ()
-{
- // delete this->model;
-
-  // delete what has to be deleted here
-  EventHandler::getInstance()->unsubscribe(this);
-
-  GraphicsEngine::showMouse(true);
-  GraphicsEngine::stealWMEvents(false);
-}
-
+void Crosshair::loadParams(const TiXmlElement* root)
+{
+  static_cast<PNode*>(this)->loadParams(root);
+  static_cast<EventListener*>(this)->loadParams(root);
+
+  LoadParam<Crosshair>(root, "texture", this, &Crosshair::setTexture)
+      .describe("the texture-file to load onto the Crosshair");
+
+  LoadParam<Crosshair>(root, "size", this, &Crosshair::setSize)
+      .describe("the size of the Crosshair in Pixels");
+
+  LoadParam<Crosshair>(root, "rotation-speed", this, &Crosshair::setRotationSpeed)
+      .describe("the Speed with which the Crosshair should rotate");
+}
+
+
+/**
+ * sets the size of the Crosshair.
+ * @param size the size in pixels
+ */
+void Crosshair::setSize(float size)
+{
+  this->size = size*.5;
+};
+
+/**
+ * sets the material to load
+ * @param textureFile The texture-file to load onto the crosshair
+ */
+void Crosshair::setTexture(const char* textureFile)
+{
+  this->material->setDiffuseMap(textureFile);
+}
+
+/**
+ * processes the input
+ * @param event the Event coming as input
+ */
 void Crosshair::process(const Event &event)
 {
@@ -113,5 +149,19 @@
 }
 
-
+/**
+ * ticks the Crosshair
+ * @param dt the time to ticks
+ */
+void Crosshair::tick(float dt)
+{
+  this->rotation += dt * rotationSpeed;
+
+
+
+}
+
+/**
+ * draws the crosshair
+ */
 void Crosshair::draw()
 {
@@ -189,9 +239,18 @@
              pos, pos+1, pos+2 );
 
-  this->rotation += 1;
 
   glTranslatef(position2D[0], position2D[1], 0);
   glRotatef(this->rotation, 0,0,1);
-  this->model->draw();
+  this->material->select();
+  glBegin(GL_TRIANGLE_STRIP);
+  glTexCoord2f(0, 0);
+  glVertex2f(-size, -size);
+  glTexCoord2f(1, 0);
+  glVertex2f(size, -size);
+  glTexCoord2f(0, 1);
+  glVertex2f(-size, size);
+  glTexCoord2f(1, 1);
+  glVertex2f(size, size);
+  glEnd();
   /*
   glBegin(GL_QUADS);
Index: orxonox/trunk/src/world_entities/weapons/crosshair.h
===================================================================
--- orxonox/trunk/src/world_entities/weapons/crosshair.h	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/crosshair.h	(revision 4832)
@@ -15,4 +15,5 @@
 class Model;
 class Material;
+class TiXmlElement;
 
 //! A class that enables the
@@ -20,10 +21,16 @@
 
  public:
-  Crosshair();
+  Crosshair(const TiXmlElement* root = NULL);
   virtual ~Crosshair();
 
+  void init();
+  void loadParams(const TiXmlElement* root);
+
+  void setSize(float size);
+  void setTexture(const char* textureFile);
+  /** @param rotationSpeed the speed at what the crosshair should rotate */
+  void setRotationSpeed(float rotationSpeed) { this->rotationSpeed = rotationSpeed; };
 
   virtual void process(const Event &event);
-
   void tick(float dt);
   void draw();
@@ -32,7 +39,7 @@
    float            position2D[2];        //!< The 2D-position on the screen
 
-   Model*           model;                //!< A model for the crosshair representing the Aim
    Material*        material;             //!< a material for the Aim.
    float            rotation;             //!< a rotation of the aim.
+   float            rotationSpeed;        //!< Speed of the Rotation.
    float            size;                 //!< The Size of the Crosshair (in % of screen resolution 1 is fullscreen)
 };
Index: orxonox/trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon.cc	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/weapon.cc	(revision 4832)
@@ -12,5 +12,5 @@
 ### File Specific
    main-programmer: Patrick Boenzli
-   co-programmer:
+   co-programmer: Benjamin Grauer
 */
 
Index: orxonox/trunk/src/world_entities/weapons/weapon.h
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon.h	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/weapon.h	(revision 4832)
@@ -22,8 +22,4 @@
 #include "world_entity.h"
 
-#define W_MAX_SLOTS 8
-#define W_MAX_CONFIGS 4
-
-
 // FORWARD DECLARATION
 class Projectile;
@@ -42,5 +38,5 @@
   WA_SPECIAL1      =    6,    //!< Special Action taken
 
-  WA_ACTION_COUNT  =    6     //!< This must match the count of enumerations (without W_NONE)
+  WA_ACTION_COUNT  =    7     //!< This must match the count of enumerations-members.
 } WeaponActions;
 
@@ -55,5 +51,5 @@
   WS_IDLE          =    7,    //!< The State where the weapon is idle
 
-  WS_STATE_COUNT  =    7     //!< This must match the count of the enumerations (without W_NONE)
+  WS_STATE_COUNT  =     8      //!< This must match the count of the enumerations-members.
 } WeaponState;
 
Index: orxonox/trunk/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon_manager.cc	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/weapon_manager.cc	(revision 4832)
@@ -12,5 +12,5 @@
 ### File Specific
    main-programmer: Patrick Boenzli
-   co-programmer:
+   co-programmer: Benjamin Grauer
 */
 
@@ -26,10 +26,9 @@
 
 
-
-/**
- * @brief this initializes the weaponManager for a given nnumber of weapon slots
+/**
+ * this initializes the weaponManager for a given nnumber of weapon slots
  * @param number of weapon slots of the model/ship <= 8 (limitied)
  */
-              WeaponManager::WeaponManager(int nrOfSlots)
+WeaponManager::WeaponManager(int nrOfSlots)
 {
   this->setClassID(CL_WEAPON_MANAGER, "WeaponManager");
@@ -63,15 +62,15 @@
 
 /**
- * @brief adds a weapon to the selected weaponconfiguration into the selected slot
+ * adds a weapon to the selected weaponconfiguration into the selected slot
  * @param the weapon to add
  * @param an identifier for the slot: number between 0..7 if not specified: slotID=next free slot
  * @param an identifier for the weapon configuration, number between 0..3
-
- if you add explicitly a weapon at config:n, slot:m, the weapon placed at this location will be
-              replaced by the weapon specified. if you use the W_FREE_SLOT, the manager will look for a free
-              slot in this weaponconfiguration. if there is non, the weapon won't be added and there will be
-              a error message.
- */
-              void WeaponManager::addWeapon(Weapon* weapon, int configID, int slotID)
+ *
+ * if you add explicitly a weapon at config:n, slot:m, the weapon placed at this location will be
+ * replaced by the weapon specified. if you use the W_FREE_SLOT, the manager will look for a free
+ * slot in this weaponconfiguration. if there is non, the weapon won't be added and there will be
+ * a error message.
+ */
+void WeaponManager::addWeapon(Weapon* weapon, int configID, int slotID)
 {
   if( slotID == W_FREE_SLOT)
@@ -101,10 +100,10 @@
 
 /**
-   * @brief changes to the next weapon configuration
-
-              if there are multiple weapon configurations defined by the manager, use this to switch between them
-              this function will deactivate the weapons first, change the config and reactivate them later
- */
-              void WeaponManager::nextWeaponConf()
+ * changes to the next weapon configuration
+ *
+ * if there are multiple weapon configurations defined by the manager, use this to switch between them
+ * this function will deactivate the weapons first, change the config and reactivate them later
+ */
+void WeaponManager::nextWeaponConf()
 {
   PRINTF(4)("Changing weapon configuration: from %i to next\n", this->currConfID);
@@ -146,7 +145,7 @@
 
 /**
-   * @brief triggers fire of all weapons in the current weaponconfig
- */
-              void WeaponManager::fire()
+ * triggers fire of all weapons in the current weaponconfig
+ */
+void WeaponManager::fire()
 {
   Weapon* firingWeapon;
@@ -160,8 +159,8 @@
 
 /**
-   * @brief triggers tick of all weapons in the current weaponconfig
-              * @param second passed since last tick
- */
-              void WeaponManager::tick(float sec)
+ * triggers tick of all weapons in the current weaponconfig
+ * @param second passed since last tick
+ */
+void WeaponManager::tick(float sec)
 {
   Weapon* w;
@@ -175,5 +174,5 @@
 
 /**
-   * @brief triggers draw of all weapons in the current weaponconfig
+ * triggers draw of all weapons in the current weaponconfig
  */
 void WeaponManager::draw()
@@ -189,8 +188,8 @@
 
 /**
-   * @brief private gets the next free slot in a certain weaponconfig
-              * @param the selected weaponconfig
- */
-              int WeaponManager::getNextFreeSlot(int configID)
+ * private gets the next free slot in a certain weaponconfig
+ * @param the selected weaponconfig
+ */
+int WeaponManager::getNextFreeSlot(int configID)
 {
   for( int i = 0; i < W_MAX_SLOTS; ++i)
Index: orxonox/trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4831)
+++ orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4832)
@@ -33,5 +33,6 @@
 class Weapon;
 
-
+#define    W_MAX_SLOTS       8
+#define    W_MAX_CONFIGS     4
 
 //! this is an identifier for the weapon config
@@ -56,5 +57,5 @@
 //! this is a weapon Configuration: it has up to 8 slots
 typedef struct weaponConfig {
-  bool           bUsed;                       //<! is set to true, if this configuration is
+  bool           bUsed;                       //!< is set to true, if this configuration is
   Weapon*        slots[8];
 };
