Index: code/branches/FICN/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 592)
+++ code/branches/FICN/src/orxonox/CMakeLists.txt	(revision 594)
@@ -6,5 +6,4 @@
   ADD_SUBDIRECTORY(objects)
 ENDIF(NOT WIN32)
-ADD_SUBDIRECTORY(weapon)
 ADD_SUBDIRECTORY(particle)
 
@@ -12,9 +11,5 @@
 SET( ORXONOX_SRC_FILES
   orxonox.cc
-  orxonox_scene.cc
-  orxonox_ship.cc
-  run_manager.cc
   spaceship_steering.cc
-  inertial_node.cc
   main.cc
   graphicsEngine.cc
@@ -61,5 +56,4 @@
   hud
   ${LINK_OBJECTS_LIBRARY}
-  weapon
   xml
   particle
Index: code/branches/FICN/src/orxonox/inertial_node.cc
===================================================================
--- code/branches/FICN/src/orxonox/inertial_node.cc	(revision 592)
+++ 	(revision )
@@ -1,126 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreSceneNode.h"
-#include "OgreVector3.h"
-
-#include "inertial_node.h"
-
-
-namespace orxonox {
-  using namespace Ogre;
-
-  InertialNode::InertialNode(SceneNode *node, Vector3 speed)
-        : node_(node), speed_(speed), childListSize_(4), childListIndex_(0),
-        parentNode_(NULL)
-  {
-    childList_ = new InertialNode*[childListSize_];
-  }
-
-
-  InertialNode::InertialNode(orxonox::InertialNode *parentNode, Vector3 speed)
-        : parentNode_(parentNode), childListSize_(4), childListIndex_(0), speed_(speed)
-  {
-    childList_ = new InertialNode*[childListSize_];
-    node_ = parentNode_->getSceneNode()->createChildSceneNode();
-  }
-
-
-  InertialNode::~InertialNode()
-  {
-    if (childList_)
-    {
-      for (int i = 0; i < childListIndex_; i++)
-        if (childList_[i])
-          delete childList_[i];
-      delete childList_;
-    }
-  }
-
-
-  InertialNode* InertialNode::createChildNode()
-  {
-    InertialNode *temp = new InertialNode(this);
-    addChild(temp);
-    return temp;
-  }
-
-
-  InertialNode* InertialNode::getParentNode()
-  {
-    return parentNode_;
-  }
-
-
-  SceneNode* InertialNode::getSceneNode()
-  {
-    return node_;
-  }
-
-
-  Vector3 InertialNode::getSpeed()
-  {
-    return speed_;
-  }
-
-
-  Vector3 InertialNode::getWorldSpeed()
-  {
-    // go through the tree of Inertial nodes
-    Vector3 speed = speed_;
-    InertialNode *temp = parentNode_;
-    while (temp != NULL)
-    {
-      speed = temp->getSceneNode()->getOrientation() * speed + temp->getSpeed();
-      temp = temp->getParentNode();
-    }
-    return speed;
-  }
-
-
-  void InertialNode::addSpeed(Vector3 speed)
-  {
-    speed_ += speed;
-  }
-
-
-  void InertialNode::addChild(orxonox::InertialNode *node)
-  {
-    if (childListIndex_ == childListSize_)
-    {
-      // redimension the array
-      InertialNode **tempArray = new InertialNode*[2*childListSize_];
-      for (int i = 0; i < childListSize_; i++)
-        tempArray[i] = childList_[i];
-      childListSize_ *= 2;
-      delete childList_;
-      childList_ = tempArray;
-    }
-    childList_[childListIndex_++] = node;
-  }
-
-}
Index: code/branches/FICN/src/orxonox/inertial_node.h
===================================================================
--- code/branches/FICN/src/orxonox/inertial_node.h	(revision 592)
+++ 	(revision )
@@ -1,49 +1,0 @@
-#ifndef INERTIAL_NODE_H
-#define INERTIAL_NODE_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox_prerequisites.h"
-
-
-namespace orxonox {
-
-  class InertialNode
-  {
-  public:
-    InertialNode(Ogre::SceneNode*, Ogre::Vector3);
-    ~InertialNode();
-
-    InertialNode* createChildNode();
-
-    InertialNode* getParentNode();
-
-    Ogre::SceneNode* getSceneNode();
-
-    Ogre::Vector3 getSpeed();
-
-    Ogre::Vector3 getWorldSpeed();
-
-    void addSpeed(Ogre::Vector3);
-
-  protected:
-    InertialNode(InertialNode*, Ogre::Vector3 speed = Ogre::Vector3::ZERO);
-    void addChild(InertialNode*);
-
-  public:
-
-  protected:
-    InertialNode **childList_;
-    int childListSize_;
-    int childListIndex_;
-
-    Ogre::SceneNode *node_;
-    Ogre::Vector3 speed_;
-
-    InertialNode* parentNode_;
-
-  };
-
-}
-
-#endif /* INERTIAL_NODE_H */
Index: code/branches/FICN/src/orxonox/ogre_control.h
===================================================================
--- code/branches/FICN/src/orxonox/ogre_control.h	(revision 592)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef OGRE_CONTROL_H
-#define OGRE_CONTROL_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox_prerequisites.h"
-
-
-namespace orxonox {
-
-  class OgreControl
-  {
-  public:
-	  OgreControl();
-
-	  virtual ~OgreControl();
-
-	  /** Sets up the application - returns false if the user chooses to abandon configuration. */
-	  virtual bool initialise();
-
-    virtual Ogre::Root* getRoot();
-
-	  virtual Ogre::RenderWindow* getRenderWindow();
-
-	  virtual Ogre::String getResourcePath();
-
-  protected:
-	  /** Configures the application - returns false if the user chooses to abandon configuration. */
-	  virtual bool configure(void);
-
-	  /// Method which will define the source of resources (other than current folder)
-	  virtual void setupResources(void);
-
-  protected:
-	  Ogre::Root         *root_;
-	  Ogre::RenderWindow *window_;
-	  Ogre::String  resourcePath_;
-
-  };
-
-}
-
-#endif /* OGRE_CONTROL_H */
Index: code/branches/FICN/src/orxonox/orxonox_prerequisites.h
===================================================================
--- code/branches/FICN/src/orxonox/orxonox_prerequisites.h	(revision 592)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef ORXONOX_PREREQUISITES_H
-#define ORXONOX_PREREQUISITES_H
-
-namespace orxonox {
-
-  class CameraManager;
-  class InertialNode;
-  class OgreControl;
-  class Orxonox;
-  class OrxonoxShip;
-  class OrxonoxScene;
-  class RunManager;
-
-
-  namespace weapon {
-
-    class AmmunitionDump;
-    class Bullet;
-    class BulletManager;
-    class BaseWeapon;
-    class BarrelGun;
-    class WeaponStation;
-
-  }
-
-
-  namespace hud {
-    
-    class HUDOverlay;
-    class TestOverlay;
-
-  }
-
-}
-
-#endif /* ORXONOX_PREREQUISITES_H */
Index: code/branches/FICN/src/orxonox/orxonox_scene.cc
===================================================================
--- code/branches/FICN/src/orxonox/orxonox_scene.cc	(revision 592)
+++ 	(revision )
@@ -1,155 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreSceneManager.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreLight.h"
-#include "OgreBillboard.h"
-#include "OgreBillboardSet.h"
-#include "OgreVector3.h"
-
-#include "orxonox_scene.h"
-
-namespace orxonox {
-  using namespace Ogre;
-
-  /**
-  * The orxonox scene includes everything running in the background like terrain,
-  * static figures, dangling lamp, etc.
-  */
-
-
-  /**
-  * Empty Consructor except the initialiser list.
-  * @param sceneMgr The Scene Manager.
-  */
-  OrxonoxScene::OrxonoxScene(SceneManager *sceneMgr) : sceneMgr_(sceneMgr)
-  {
-  }
-
-  /**
-  * Empty Destructor.
-  */
-  OrxonoxScene::~OrxonoxScene()
-  {
-  }
-
-  /**
-  * Ogre initialisation method.
-  * This function is called by the Run Manager to load the neccessary recources
-  * and to create the scene.
-  * @return False if failed.
-  */
-  bool OrxonoxScene::initialise()
-  {
-	  // Load resources
-	  loadResources();
-
-	  distance_ = 0;
-	  radius_ = 100;
-
-	  createScene();
-
-	  return true;
-  }
-
-
-  /**
-  * Resource loader.
-  * Currently, this method loads everything! TODO: If done this ugly, it should
-  * at least be in the Run Manager.
-  */
-  void OrxonoxScene::loadResources()
-  {
-	  // Initialise, parse scripts etc
-	  ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
-  }
-
-
-  /**
-  * Scene creation.
-  * Currently just a test scene with an ogre head an a surrounding light.
-  */
-  void OrxonoxScene::createScene()
-  {
-	  sceneMgr_->setAmbientLight(ColourValue(0.3,0.3,0.3)*2);
-
-	  //create first entity
-	  Entity *head = sceneMgr_->createEntity("head", "ogrehead.mesh");
-
-	  //create a scene node to attach the head to
-	  SceneNode *node = sceneMgr_->getRootSceneNode()
-          ->createChildSceneNode("OgreHeadNode", Vector3(0,0,0));
-	  //attach the ogre head
-	  node->attachObject(head);
-
-	  // set up skybox
-	  sceneMgr_->setSkyBox(true, "Examples/SceneSkyBox1");
-
-	  // set up one light_ source
-	  light_ = sceneMgr_->createLight("Light1");
-	  light_->setType(Light::LT_POINT);
-	  light_->setPosition(Vector3(0, 0, 0));
-	  light_->setDiffuseColour(1.0, 1.0, 1.0);
-	  light_->setSpecularColour(1.0, 1.0, 1.0);
-
-	  //create billboard
-	  bbs_ = sceneMgr_->createBillboardSet("bb", 1);
-	  bbs_->createBillboard(Vector3::ZERO, ColourValue(1.0, 1.0, 1.0));
-	  bbs_->setMaterialName("Examples/Flare");
-
-	  lightNode_ = sceneMgr_->getRootSceneNode()
-          ->createChildSceneNode("lightNode_", Vector3(0, 100, 0));
-
-	  lightNode_->attachObject(bbs_);
-	  lightNode_->attachObject(light_);
-  }
-
-
-  /**
-  * Compute something between frames if neccessary.
-  * @param time Absolute time.
-  * @param deltaTime Relative time.
-  * @return Return true to continue rendering.
-  */
-  bool OrxonoxScene::tick(unsigned long time, Real deltaTime)
-  {
-	  Real t = time/1000.0;
-
-	  lightNode_->setPosition(radius_*sin(5*t), radius_*cos(5*t), sin(1*t)*distance_);
-
-	  light_->setDiffuseColour(sin(1*t), sin(1*t + 2.09), sin(1*t + 2.09*2));
-	  light_->setSpecularColour(sin(1*t), sin(1*t + 2.09), sin(1*t + 2.09*2));
-
-	  bbs_->getBillboard(0)->setColour(ColourValue(sin(1*t),
-          sin(1*t + 2.09), sin(1*t + 2.09*2)));
-
-    return true;
-  }
-
-}
Index: code/branches/FICN/src/orxonox/orxonox_scene.h
===================================================================
--- code/branches/FICN/src/orxonox/orxonox_scene.h	(revision 592)
+++ 	(revision )
@@ -1,70 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef ORXONOX_SCENE_H
-#define ORXONOX_SCENE_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox_prerequisites.h"
-
-
-namespace orxonox {
-
-  class OrxonoxScene
-  {
-  public:
-    OrxonoxScene(Ogre::SceneManager*);
-
-	  virtual ~OrxonoxScene();
-
-	  virtual bool initialise();
-
-	  virtual bool tick(unsigned long, Ogre::Real);
-
-  protected:
-	  /// method where you can perform resource group loading
-	  virtual void loadResources();
-
-	  /// Define what is in the scene
-	  virtual void createScene();
-
-  protected:
-	  Ogre::SceneManager* sceneMgr_;
-
-	  //specific variables for test purposes
-	  Ogre::Light        *light_;
-	  Ogre::SceneNode    *lightNode_;
-	  Ogre::BillboardSet *bbs_;
-	  Ogre::Real distance_;
-    Ogre::Real radius_;
-  };
-
-}
-
-#endif /* ORXONOX_SCENE_H */
Index: code/branches/FICN/src/orxonox/orxonox_ship.cc
===================================================================
--- code/branches/FICN/src/orxonox/orxonox_ship.cc	(revision 592)
+++ 	(revision )
@@ -1,254 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreQuaternion.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
-#include "OgreParticleSystem.h"
-
-#include "inertial_node.h"
-#include "run_manager.h"
-#include "weapon/bullet.h"
-#include "weapon/bullet_manager.h"
-#include "weapon/weapon_station.h"
-#include "weapon/base_weapon.h"
-#include "weapon/barrel_gun.h"
-#include "weapon/ammunition_dump.h"
-
-#include "orxonox_ship.h"
-
-
-namespace orxonox {
-  using namespace Ogre;
-  using namespace weapon;
-
-  /**
-  * Base class for any kind of flyable ship in Orxonox.
-  *
-  * The ship offers steering methods (like left, right, etc.) and translates
-  * them into movement. A ship can also hold more than one weapons (where each
-  * of these can be replaced during the game). This means that a ship can have
-  * many WeaponManagers but only one MunitionManager (independant object that
-  * is referenced in each WeaponManager).
-  * Furthermore a ship in Orxonox is responsible for its visualization, which is
-  * why it receives a pointer to the SceneManager.
-  */
-
-
-  /**
-  * Standard constructor, that only initalizes a few variables. Some of them
-  * could be made static, since any new ship would be derived from the BaseShip.
-  * Or even better: write config files for each ship so that manipulating
-  * its properties would be even easier.
-  * @param mSceneMgr The current main SceneManager
-  * @param mNode The scene node which the ship will be attached to later.
-  */
-  OrxonoxShip::OrxonoxShip(SceneNode *node)
-    : sceneMgr_(RunManager::getSingletonPtr()->getSceneManagerPtr()),
-      bulletManager_(RunManager::getSingletonPtr()->getBulletManagerPtr()),
-      baseThrust_(1000), currentThrust_(Vector3::ZERO), objectCounter_(0)
-  {
-    rootNode_ = new InertialNode(node, Vector3::ZERO);
-  }
-
-
-  /**
-  * Standard destructor.
-  * Doesn't have any work to do yet.
-  */
-  OrxonoxShip::~OrxonoxShip()
-  {
-    if (mainWeapon_)
-      delete mainWeapon_;
-    if (railGunStation_)
-      delete railGunStation_;
-    if (rootNode_)
-      delete rootNode_;
-  }
-
-
-  /**
-  * Initialises everything.
-  * Once that ResourceGroups are organised, this method loads them.
-  * It might be an idea to make this function static in order for the
-  * SceneManger to call the initialise method of every needed class (macros..)
-  * @return Returns false when failed.
-  */
-  bool OrxonoxShip::initialise()
-  {
-	  // load all the resources needed (no resource groups yet,
-    // so the allInit is not executed!)
-	  // ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
-
-	  // create the "space ship" (currently a fish..)
-	  // TODO: names must be unique! use static variables..
-	  shipEntity_ = sceneMgr_->createEntity("Ship", "fish.mesh");
-	  InertialNode *fishNode = rootNode_->createChildNode();
-    fishNode->getSceneNode()->yaw(Degree(-90));
-	  fishNode->getSceneNode()->attachObject(shipEntity_);
-	  fishNode->getSceneNode()->setScale(Vector3(10, 10, 10));
-
-    // initialise weapon(s)
-    ammoDump_ = new AmmunitionDump();
-    ammoDump_->setDumpSize("Barrel", 1000);
-    ammoDump_->store("Barrel", 420);
-
-    InertialNode *mainWeaponNode = rootNode_->createChildNode();
-    mainWeapon_ = new BarrelGun(mainWeaponNode, ammoDump_);
-
-    railGunStation_ = new WeaponStation(4);
-    railGunStation_->addWeapon(mainWeapon_);
-    railGunStation_->selectWeapon(0);
-
-    // create some nice effects
-
-    ParticleSystem *particles = RunManager::getSingletonPtr()
-      ->getSceneManagerPtr()->createParticleSystem("asdf", "Examples/Smoke");
-
-    fishNode->getSceneNode()->attachObject(particles);
-
-
-
-
-	  return true;
-  }
-
-
-  /**
-  * Gets the ship to accelerate in the current direction.
-  * The value should be between 0 and 1, with one beeing full thrust and 0 none
-  * @param value Acceleration between 0 and 1
-  */
-  void OrxonoxShip::setMainThrust(const Real value)
-  {
-    currentThrust_.z = value * baseThrust_;
-  }
-
-
-  /**
-  * Gets the ship to accelerate sideways regarding the current direction.
-  * The value should be between 0 and 1, with one beeing full thrust and 0 none
-  * @param value Acceleration between 0 and 1
-  */
-  void OrxonoxShip::setSideThrust(const Real value)
-  {
-    currentThrust_.x = value * baseThrust_;
-  }
-
-
-  /**
-  * Gets the ship to accelerate up and down.
-  * The value should be between 0 and 1, with one beeing full thrust and 0 none
-  * @param value Acceleration between 0 and 1
-  */
-  void OrxonoxShip::setYThrust(const Real value)
-  {
-    currentThrust_.y = value * baseThrust_;
-  }
-
-
-  /**
-  * Rotate the ship along with the camera up and down.
-  * @param angle Pitch value.
-  */
-  void OrxonoxShip::turnUpAndDown(const Radian &angle)
-  {
-    rootNode_->getSceneNode()->pitch(-angle, Node::TS_LOCAL);
-  }
-
-
-  /**
-  * Rotate the ship along with the camera left and right.
-  * @param angle Yaw value.
-  */
-  void OrxonoxShip::turnLeftAndRight(const Radian &angle)
-  {
-    rootNode_->getSceneNode()->yaw(-angle, Node::TS_PARENT);
-  }
-
-
-  /**
-  * Returns the current speed of the ship according to its parent node.
-  * @return The current speed.
-  */
-  Vector3 OrxonoxShip::getSpeed()
-  {
-    return rootNode_->getSpeed();
-  }
-
-  /**
-  * Returns the ship's root SceneNode.
-  * @return The Root Node.
-  */
-  InertialNode* OrxonoxShip::getRootNode()
-  {
-    return rootNode_;
-  }
-
-
-  /**
-  * Fire a bullet (Entity with SceneNode).
-  * This method creates a new Entity plus a SceneNode. But be sure not make
-  * the new Node a child of RootNode_!
-  * @return Bullet containing speed and entity.
-  */
-  BaseWeapon* OrxonoxShip::getMainWeapon()
-  {
-    return mainWeapon_;
-  }
-
-
-  int OrxonoxShip::getAmmoStock()
-  {
-    return ammoDump_->getStockSize("Barrel");
-  }
-
-
-  /**
-  * Standard tick() function.
-  * Currently, only the speed is applied according to the thrust values.
-  * @param time Absolute time.
-  * @param deltaTime Relative time.
-  * @return Return true to continue render
-  */
-  bool OrxonoxShip::tick(unsigned long time, Real deltaTime)
-  {
-    mainWeapon_->tick(time, deltaTime);
-
-    Quaternion quad = rootNode_->getSceneNode()->getOrientation();
-    quad.normalise();
-    rootNode_->addSpeed(quad * (Vector3(-1, -1, -1) * currentThrust_) * deltaTime);
-
-    rootNode_->getSceneNode()->translate(rootNode_->getSpeed() * deltaTime);
-
-	  return true;
-  }
-
-}
Index: code/branches/FICN/src/orxonox/orxonox_ship.h
===================================================================
--- code/branches/FICN/src/orxonox/orxonox_ship.h	(revision 592)
+++ 	(revision )
@@ -1,86 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef ORXONOX_SHIP_H
-#define ORXONOX_SHIP_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox_prerequisites.h"
-
-
-namespace orxonox {
-
-  class OrxonoxShip
-  {
-  public:
-    OrxonoxShip(Ogre::SceneNode*);
-    virtual ~OrxonoxShip();
-
-    virtual bool initialise();
-
-    void setMainThrust(const Ogre::Real);
-    void setSideThrust(const Ogre::Real);
-    void setYThrust(const Ogre::Real);
-    void turnUpAndDown(const Ogre::Radian&);
-    void turnLeftAndRight(const Ogre::Radian&);
-
-    InertialNode* getRootNode();
-    Ogre::Vector3 getSpeed();
-
-    weapon::BaseWeapon* getMainWeapon();
-
-    int getAmmoStock();
-
-    bool tick(unsigned long, Ogre::Real);
-
-  protected:
-
-  protected:
-    Ogre::SceneManager *sceneMgr_;
-    //Ogre::SceneNode *rootNode_;
-    InertialNode *rootNode_;
-    Ogre::Entity *shipEntity_;
-
-    //Ogre::Vector3 currentSpeed_;  // relative to space
-    Ogre::Vector3 currentThrust_; // relative to the ship
-    Ogre::Real baseThrust_;
-    int objectCounter_;
-
-    weapon::BulletManager *bulletManager_;
-    //Ogre::Vector3 bulletSpeed_;
-
-    weapon::BaseWeapon *mainWeapon_;
-    weapon::WeaponStation *railGunStation_;
-
-    weapon::AmmunitionDump *ammoDump_;
-  };
-
-}
-
-#endif /* ORXONOX_SHIP_H */
Index: code/branches/FICN/src/orxonox/run_manager.cc
===================================================================
--- code/branches/FICN/src/orxonox/run_manager.cc	(revision 592)
+++ 	(revision )
@@ -1,516 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreRoot.h"
-#include "OgreSceneManager.h"
-#include "OgreSceneNode.h"
-#include "OgreCamera.h"
-#include "OgreViewport.h"
-#include "OgreRenderWindow.h"
-#include "OgreTextureManager.h"
-#include "OgreMaterialManager.h"
-#include "OgreLogManager.h"
-#include "OgreWindowEventUtilities.h"
-
-//Use this define to signify OIS will be used as a DLL
-//(so that dll import/export macros are in effect)
-#define OIS_DYNAMIC_LIB
-#include <OIS/OIS.h>
-
-#include "ogre_control.h"
-#include "orxonox_scene.h"
-#include "orxonox_ship.h"
-#include "inertial_node.h"
-
-#include "weapon/bullet.h"
-#include "weapon/bullet_manager.h"
-#include "weapon/base_weapon.h"
-
-//#include "hud/hud_overlay.h"
-//#include "hud/test_overlay.h"
-#include "hud/HUD.h"
-
-#include "run_manager.h"
-
-
-namespace orxonox {
-  using namespace Ogre;
-  using namespace weapon;
-  using namespace hud;
-
-  /**
-  * RunManager is the basic control object during the game.
-  *
-  * The RunManger class is designed to actually "run" the main part of the
-  * game. The Idea is, that you could derive from the RunManager in order
-  * to distinguish between a first person shooter or a space craft shooter.
-  * RunManager loads and initialises everything in the scene (like the ship,
-  * the enemies in the scene, any scripts, the physics, window events,
-  * environment, HUD, etc.).
-  * It also captures any input from keyboard, mous, joystick (optional) or
-  * Ogre (window events).
-  */
-
-
-  RunManager* RunManager::singletonPtr_s = NULL;
-
-
-  /**
-  * Contructor only needs the Root object.
-  */
-  RunManager::RunManager()
-        : ogre_(NULL), window_(NULL), screenShotCounter_(0),
-        timeUntilNextToggle_(0), mouseSensitivity_(0.003), inputManager_(0),
-        mouse_(0), keyboard_(0), joystick_(0), statsOn_(true)
-  {
-  }
-
-  /**
-  * @param *ogre The OgreControl object holding the render window and the Root
-  */
-  void RunManager::initialise(OgreControl *ogre)
-    {
-    ogre_ = ogre;
-    window_ = ogre->getRenderWindow();
-
-    // SETTING UP THE SCENE
-
-    // create one new SceneManger
-    sceneMgr_ = ogre_->getRoot()->createSceneManager(ST_GENERIC, "Orxonox Scene");
-
-    // background scene (world objects, skybox, lights, etc.)
-    backgroundScene_ = new OrxonoxScene(sceneMgr_);
-
-
-    // BULLET LIST FOR THE TEST APPLICATION
-
-    // create a bullet manager
-    bulletManager_ = new BulletManager(sceneMgr_);
-
-
-    // PLAYER SPACESHIP
-
-    // Create a space ship object and its SceneNode.
-    // It should also be considered, that the ship should provide another Node
-    // for a camera to be attached (otherwise the spaceship in front of the
-    // ship would be very static, never moving at all).
-
-    // Construct a new spaceship and give it the node
-    playerShip_ = new OrxonoxShip(sceneMgr_->getRootSceneNode()
-      ->createChildSceneNode("ShipNode", Vector3(20, 20, 20)));
-
-
-    // RESOURCE LOADING (using ResourceGroups if implemented)
-
-    // load all resources and create the entities by calling the initialise()
-    // methods for each object (no constructor initialisations!).
-    backgroundScene_->initialise();
-    playerShip_->initialise();
-
-
-    // CAMERA AND VIEWPORT
-
-    // create camera and viewport
-    createCamera();
-    createViewports();
-
-    // create HUD
-    //hud_ = new hud::TestOverlay(window_);
-    //hud_->show();
-    /*hud_ = new hud::HUD();
-    hud_->show();*/
-
-
-    // Set default mipmap level (NB some APIs ignore this)
-    TextureManager::getSingleton().setDefaultNumMipmaps(5);
-
-
-    // HUMAN INTERFACE
-
-    using namespace OIS;
-
-    LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***");
-    ParamList pl;
-    size_t windowHnd = 0;
-    std::ostringstream windowHndStr;
-
-    window_->getCustomAttribute("WINDOW", &windowHnd);
-    windowHndStr << windowHnd;
-    pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
-
-    inputManager_ = InputManager::createInputSystem( pl );
-
-    // Create all devices (We only catch joystick exceptions here,
-    // as, most people have Key/Mouse)
-    keyboard_ = static_cast<Keyboard*>(inputManager_
-      ->createInputObject( OISKeyboard, false ));
-    mouse_ = static_cast<Mouse*>(inputManager_
-      ->createInputObject( OISMouse, false ));
-    try {
-      joystick_ = static_cast<JoyStick*>(inputManager_
-        ->createInputObject( OISJoyStick, false ));
-    }
-    catch(...) {
-      joystick_ = 0;
-    }
-
-    //Set initial mouse clipping size
-    windowResized(window_);
-
-    //showDebugOverlay(true);
-
-    // REGISTER THIS OBJECT AS A WINDOW EVENT LISTENER IN OGRE
-    // It will then receive events liek windowClosed, windowResized, etc.
-    WindowEventUtilities::addWindowEventListener(window_, this);
-  }
-
-  /**
-  * Standard destructor.
-  * Removes this object as a window event listener and deletes all created
-  * variables.
-  */
-  RunManager::~RunManager()
-  {
-    //Remove ourself as a Window listener
-    WindowEventUtilities::removeWindowEventListener(window_, this);
-    windowClosed(window_);
-
-    if (backgroundScene_)
-      delete backgroundScene_;
-    if (playerShip_)
-      delete playerShip_;
-    if (bulletManager_)
-      delete bulletManager_;
-    /*if (hud_)
-      delete hud_;*/
-  }
-
-
-  /**
-  * Method to compute anything between 2 frames.
-  *
-  * Everything that needs to be computed during the games happens right here.
-  * The only exception are the listeners (which should only set variables,
-  * not actually do something).
-  *
-  * @param time Absolute play time
-  * @param deltaTime Time passed since last frame
-  * @return Return false to end rendering
-  */
-  bool RunManager::tick(unsigned long time, float deltaTime)
-  {
-    // synchronize with internal class timer
-    totalTime_ = time;
-
-    // Call tick() for every object
-    // This could be done by registering (needs a factory..)
-    backgroundScene_->tick(time, deltaTime);
-    playerShip_->tick(time, deltaTime);
-
-
-    // Update the HUD
-    Ogre::String tempStr = " | Speed = "
-      + StringConverter::toString(playerShip_->getSpeed())
-      + " | Left Ammo = "
-      + StringConverter::toString(playerShip_
-      ->getMainWeapon()->getAmmoState())
-      + " | Ammo stock = "
-      + StringConverter::toString(playerShip_->getAmmoStock());
-    //hud_->setDebugText(tempStr);
-
-    //hud_->tick(time, deltaTime);
-
-    // update the bullet positions
-    bulletManager_->tick(time, deltaTime);
-
-
-    // HUMAN INTERFACE
-
-    using namespace OIS;
-
-    if(window_->isClosed())	return false;
-
-    //Need to capture/update each device
-    keyboard_->capture();
-    mouse_->capture();
-    if( joystick_ ) joystick_->capture();
-
-    bool buffJ = (joystick_) ? joystick_->buffered() : true;
-
-    //Check if one of the devices is not buffered
-    if( !mouse_->buffered() || !keyboard_->buffered() || !buffJ )
-    {
-      // one of the input modes is immediate, so setup what
-      // is needed for immediate movement
-      if (timeUntilNextToggle_ >= 0)
-        timeUntilNextToggle_ -= deltaTime;
-    }
-
-    // handle HID devices
-    if( processUnbufferedKeyInput() == false )
-        return false;
-    if( processUnbufferedMouseInput() == false )
-        return false;
-
-    // keep rendering
-    return true;
-  }
-
-
-  SceneManager& RunManager::getSceneManager()
-  {
-    return *sceneMgr_;
-  }
-
-  SceneManager* RunManager::getSceneManagerPtr()
-  {
-    return sceneMgr_;
-  }
-
-  BulletManager* RunManager::getBulletManagerPtr()
-  {
-    return bulletManager_;
-  }
-
-  int RunManager::getAmmunitionID(const Ogre::String &ammoName)
-  {
-    Ogre::String ammoTypes[] = { "Energy Cell", "Barrel", "Lead Shot" };
-    int ammoTypesLength = 3;
-
-    for (int i = 0; i < ammoTypesLength; i++)
-    {
-      if (ammoTypes[i] == ammoName)
-        return i;
-    }
-    return -1;
-  }
-
-  int RunManager::getNumberOfAmmos()
-  {
-    return 3;
-  }
-
-
-  /**
-  * Adjust mouse clipping area.
-  * This method is called by Ogre without regards of tick()!
-  * Avoid doing too much in this call.
-  * @param rw render window
-  */
-  void RunManager::windowResized(RenderWindow* rw)
-  {
-    unsigned int width, height, depth;
-    int left, top;
-    rw->getMetrics(width, height, depth, left, top);
-
-    const OIS::MouseState &ms = mouse_->getMouseState();
-    ms.width = width;
-    ms.height = height;
-  }
-
-
-  /**
-  * Unattach OIS before window shutdown (very important under Linux).
-  * Again, avoid computing a lot in this function.
-  * @param rw Render Window
-  */
-  void RunManager::windowClosed(RenderWindow* rw)
-  {
-    //Only close for window that created OIS (the main window in these demos)
-    if( rw == window_ )
-    {
-      if( inputManager_ )
-      {
-        inputManager_->destroyInputObject( mouse_ );
-        inputManager_->destroyInputObject( keyboard_ );
-        inputManager_->destroyInputObject( joystick_ );
-
-        OIS::InputManager::destroyInputSystem(inputManager_);
-        inputManager_ = 0;
-      }
-    }
-  }
-
-  /**
-  * Processes the Keyboard input.
-  * TODO: Use listeners to improve performance.
-  * A lookup table should be implemented to bind any key to a specific action.
-  * @return Return true to keep rendering
-  */
-  bool RunManager::processUnbufferedKeyInput()
-  {
-    using namespace OIS;
-
-    if(keyboard_->isKeyDown(KC_A) || keyboard_->isKeyDown(KC_LEFT))
-      playerShip_->setSideThrust(1);
-    else if(keyboard_->isKeyDown(KC_D) || keyboard_->isKeyDown(KC_RIGHT))
-      playerShip_->setSideThrust(-1);
-    else
-      playerShip_->setSideThrust(0);
-
-    if(keyboard_->isKeyDown(KC_UP) || keyboard_->isKeyDown(KC_W) )
-      playerShip_->setMainThrust(1);
-    else if(keyboard_->isKeyDown(KC_DOWN) || keyboard_->isKeyDown(KC_S) )
-      playerShip_->setMainThrust(-1);
-    else
-      playerShip_->setMainThrust(0);
-
-    if (keyboard_->isKeyDown(KC_C))
-      playerShip_->setYThrust(1);
-    else if (keyboard_->isKeyDown(KC_SPACE))
-      playerShip_->setYThrust(-1);
-    else
-      playerShip_->setYThrust(0);
-
-    if (keyboard_->isKeyDown(KC_G))
-      playerShip_->getMainWeapon()->addAction(BaseWeapon::RELOAD);
-
-    if( keyboard_->isKeyDown(KC_ESCAPE) || keyboard_->isKeyDown(KC_Q) )
-      return false;
-
-    if( keyboard_->isKeyDown(KC_F) && timeUntilNextToggle_ <= 0 )
-    {
-      statsOn_ = !statsOn_;
-      timeUntilNextToggle_ = 1;
-    }
-
-    if(keyboard_->isKeyDown(KC_SYSRQ) && timeUntilNextToggle_ <= 0)
-    {
-      std::ostringstream ss;
-      ss << "screenshot_" << ++screenShotCounter_ << ".png";
-      window_->writeContentsToFile(ss.str());
-      timeUntilNextToggle_ = 0.5;
-    }
-
-    // Return true to continue rendering
-    return true;
-  }
-
-
-  /**
-  * Processes the Mouse input.
-  * TODO: Use listeners to improve performance.
-  * A lookup table should be implemented to bind ANY button or movement
-  * to a specific action.
-  * @return Return true to keep rendering
-  */
-  bool RunManager::processUnbufferedMouseInput()
-  {
-    using namespace OIS;
-
-    const MouseState &ms = mouse_->getMouseState();
-
-    if (ms.buttonDown(MB_Left))
-      playerShip_->getMainWeapon()->primaryFireRequest();
-
-    if (ms.buttonDown(MB_Right))
-      playerShip_->getMainWeapon()->secondaryFireRequest();
-
-    playerShip_->turnUpAndDown(Radian(ms.Y.rel * mouseSensitivity_));
-    playerShip_->turnLeftAndRight(Radian(ms.X.rel * mouseSensitivity_));
-
-    // keep rendering
-    return true;
-  }
-
-  /**
-  * Show an overlay desired.
-  * @param show Whether or not to show the debug overlay
-  */
-  void RunManager::showDebugOverlay(bool show)
-  {
-    /*if (hud_)
-    {
-      if (show)
-        hud_->show();
-      else
-        hud_->hide();
-    }*/
-  }
-
-
-  /**
-  * Simple camera creator.
-  * playerShip_Node->attachObject(camera_) should not be here! This is what
-  * the camera manager is for. Right now, this method should do just fine,
-  * setting the cam behind the ship.
-  */
-  void RunManager::createCamera()
-  {
-    camera_ = sceneMgr_->createCamera("PlayerCam");
-    playerShip_->getRootNode()->getSceneNode()->attachObject(camera_);
-    camera_->setNearClipDistance(5);
-    camera_->setPosition(Vector3(0,10,500));
-    camera_->lookAt(Vector3(0,0,0));
-  }
-
-  /**
-  * Simple viewport creator.
-  * For now the viewport uses the entire render window and is based on the one
-  * camera created so far.
-  */
-  void RunManager::createViewports()
-  {
-    // Create one viewport, entire window
-    Viewport* vp = window_->addViewport(camera_);
-    vp->setBackgroundColour(ColourValue(0,0,0));
-
-    // Alter the camera aspect ratio to match the viewport
-    camera_->setAspectRatio(
-      Real(vp->getActualWidth()) / Real(vp->getActualHeight()));
-  }
-
-
-  RunManager* RunManager::createSingleton()
-  {
-    if (singletonPtr_s)
-      return NULL;
-    singletonPtr_s = new RunManager();
-    return singletonPtr_s;
-  }
-
-  void RunManager::destroySingleton()
-  {
-    if (singletonPtr_s)
-      delete singletonPtr_s;
-  }
-
-
-  RunManager& RunManager::getSingleton()
-  {
-    return *singletonPtr_s;
-  }
-
-  RunManager* RunManager::getSingletonPtr()
-  {
-    return singletonPtr_s;
-  }
-
-}
Index: code/branches/FICN/src/orxonox/run_manager.h
===================================================================
--- code/branches/FICN/src/orxonox/run_manager.h	(revision 592)
+++ 	(revision )
@@ -1,143 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef RUN_MANAGER_H
-#define RUN_MANAGER_H
-
-#include "OgrePrerequisites.h"
-#include "OgreWindowEventUtilities.h"
-//#include "OgreTextureManager.h"
-
-#include <OIS/OISPrereqs.h>
-
-#include "orxonox_prerequisites.h"
-
-
-namespace orxonox {
-
-  // let the class inherit from WindowEventListener in order for the RunMgr
-  // to act as the central point of all the calcuations in Orxonox
-  class RunManager : public Ogre::WindowEventListener
-  {
-  public:
-    virtual ~RunManager();
-
-    void initialise(OgreControl*);
-
-    bool tick(unsigned long, Ogre::Real);
-
-    Ogre::SceneManager& getSceneManager();
-
-    Ogre::SceneManager* getSceneManagerPtr();
-
-    weapon::BulletManager* getBulletManagerPtr();
-
-    int getAmmunitionID(const Ogre::String&);
-
-    int getNumberOfAmmos();
-
-    static RunManager* createSingleton();
-
-    static void destroySingleton();
-
-    static RunManager& getSingleton(void);
-
-    static RunManager* getSingletonPtr(void);
-
-
-  protected:
-    RunManager();
-
-	  void createCamera(void);
-
-	  void createViewports(void);
-
-
-	  /** EVENT HANDLING **/
-
-	  //Adjust mouse clipping area
-	  void windowResized(Ogre::RenderWindow*);
-
-	  //Unattach OIS before window shutdown (very important under Linux)
-	  void windowClosed(Ogre::RenderWindow*);
-
-
-	  /** INPUT PROCESSING **/
-	  bool processUnbufferedKeyInput();
-
-	  bool processUnbufferedMouseInput();
-
-
-	  /** OUTPUT **/
-
-	  void showDebugOverlay(bool);
-
-  protected:
-    // directly Ogre related fields
-	  Ogre::SceneManager *sceneMgr_;
-	  Ogre::RenderWindow *window_;
-	  Ogre::Camera       *camera_;
-
-
-    // self made orxonox fields
-	  OgreControl  *ogre_;
-	  OrxonoxScene *backgroundScene_;
-	  OrxonoxShip  *playerShip_;
-    //hud::TestOverlay *hud_;
-          //hud::HUD  *hud_;
-
-    // Bullet manager
-    weapon::BulletManager *bulletManager_;
-
-    const Ogre::Real mouseSensitivity_;
-
-	  // previously elapsed render time
-	  unsigned long totalTime_;
-
-
-    // fields from the example framework
-	  bool statsOn_;
-
-	  unsigned int screenShotCounter_;
-	  // just to stop toggles flipping too fast
-	  Ogre::Real timeUntilNextToggle_;
-
-	  //OIS Input devices
-	  OIS::InputManager* inputManager_;
-	  OIS::Mouse*    mouse_;
-	  OIS::Keyboard* keyboard_;
-	  OIS::JoyStick* joystick_;
-
-    // singleton pointer
-    static RunManager *singletonPtr_s;
-
-  };
-
-}
-
-#endif /* RUN_MANAGER_H */
Index: code/branches/FICN/src/orxonox/weapon/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/orxonox/weapon/CMakeLists.txt	(revision 592)
+++ 	(revision )
@@ -1,16 +1,0 @@
-PROJECT(Orxonox)
-
-SET( WEAPON_SRC_FILES
-  ammunition_dump.cc
-  barrel_gun.cc
-  base_weapon.cc
-  bullet.cc
-  bullet_manager.cc
-  weapon_station.cc
-)
-
-IF(WIN32)
-  ADD_LIBRARY(weapon ${WEAPON_SRC_FILES})
-ELSE(WIN32)
-  ADD_LIBRARY(weapon SHARED ${WEAPON_SRC_FILES})
-ENDIF(WIN32)
Index: code/branches/FICN/src/orxonox/weapon/ammunition_dump.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/ammunition_dump.cc	(revision 592)
+++ 	(revision )
@@ -1,109 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "orxonox/run_manager.h"
-
-#include "ammunition_dump.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  AmmunitionDump::AmmunitionDump()
-    : numberOfAmmos_(RunManager::getSingletonPtr()->getNumberOfAmmos()),
-      stock_(new int[numberOfAmmos_]),
-      capacity_(new int[numberOfAmmos_])
-  {
-    for (int i = 0; i < numberOfAmmos_; i++)
-    {
-      stock_[i] = 0;
-      capacity_[i] = 0;
-    }
-  }
-
-
-  AmmunitionDump::~AmmunitionDump()
-  {
-    if (stock_)
-      delete stock_;
-    if (capacity_)
-      delete capacity_;
-  }
-
-  void AmmunitionDump::setDumpSize(const Ogre::String &name, int size)
-  {
-    if (size < 0)
-      return;
-    int id = RunManager::getSingletonPtr()->getAmmunitionID(name);
-    if (id == -1)
-      return;
-    capacity_[id] = size;
-  }
-
-
-  int AmmunitionDump::store(const Ogre::String &name, int quantity)
-  {
-    int id = RunManager::getSingletonPtr()->getAmmunitionID(name);
-    if (id == -1)
-      return quantity;
-    stock_[id] += quantity;
-    if (stock_[id] > capacity_[id])
-    {
-      quantity = capacity_[id] - stock_[id];
-      stock_[id] = capacity_[id];
-      return quantity;
-    }
-    else
-      return 0;
-  }
-
-
-  int AmmunitionDump::getAmmunition(const Ogre::String &name, int quantity)
-  {
-    int id = RunManager::getSingletonPtr()->getAmmunitionID(name);
-    if (id == -1)
-      return 0;
-    if (stock_[id] >= quantity)
-      stock_[id] -= quantity;
-    else
-    {
-      quantity = stock_[id];
-      stock_[id] = 0;
-    }
-    return quantity;
-  }
-
-
-  int AmmunitionDump::getStockSize(const Ogre::String &name)
-  {
-    int id = RunManager::getSingletonPtr()->getAmmunitionID(name);
-    if (id = -1)
-      return -1;
-    return stock_[id];
-  }
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/ammunition_dump.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/ammunition_dump.h	(revision 592)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef AmmunitionDump_H
-#define AmmunitionDump_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class AmmunitionDump
-  {
-  public:
-    AmmunitionDump();
-	  ~AmmunitionDump();
-
-    void setDumpSize(const Ogre::String &name, int size);
-
-    int store(const Ogre::String &name, int quantiy);
-
-    int getAmmunition(const Ogre::String &name, int quantity);
-
-    int getStockSize(const Ogre::String &name);
-
-  protected:
-    int numberOfAmmos_;
-    int *stock_;
-    int *capacity_;
-
-  protected:
-
-  };
-
-}
-}
-
-#endif /* AmmunitionDump_H */
Index: code/branches/FICN/src/orxonox/weapon/barrel_gun.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/barrel_gun.cc	(revision 592)
+++ 	(revision )
@@ -1,141 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
-
-#include "orxonox/inertial_node.h"
-
-#include "bullet.h"
-#include "bullet_manager.h"
-#include "ammunition_dump.h"
-#include "base_weapon.h"
-
-#include "barrel_gun.h"
-
-
-namespace orxonox {
-namespace weapon {
-  using namespace Ogre;
-
-  BarrelGun::BarrelGun(InertialNode *node, AmmunitionDump *ammoDump)
-        : BaseWeapon(node, ammoDump)
-  {
-    name_ = "Barrel Gun";
-    primaryFirePower_ = 100;
-    secondaryFirePower_ = 500;
-    primaryFiringRate_ = 10;
-    secondaryFiringRate_ = 2;
-    primaryBulletSpeed_ = 1000;
-    secondaryBulletSpeed_ = 500;
-    magazineSize_ = 25;
-  }
-
-
-  BarrelGun::~BarrelGun()
-  {
-  }
-
-
-  void BarrelGun::primaryFire()
-  {
-    if (leftAmmo_ < 1)
-    {
-      currentState_ = IDLE;
-      return;
-    }
-
-    SceneNode *temp = sceneMgr_->getRootSceneNode()->createChildSceneNode(
-          node_->getSceneNode()->getWorldPosition(),
-          node_->getSceneNode()->getWorldOrientation());
-
-    Entity* bulletEntity = sceneMgr_->createEntity("BulletEntity"
-          + StringConverter::toString(bulletCounter_++), "Barrel.mesh");
-
-    Vector3 speed = (temp->getOrientation() * Vector3(0, 0, -1))
-          .normalisedCopy() * primaryBulletSpeed_;
-    speed += node_->getWorldSpeed();
-
-	  temp->setScale(Vector3(1, 1, 1) * 4);
-	  temp->yaw(Degree(-90));
-
-	  bulletManager_->addBullet(new Bullet(temp, bulletEntity, speed));
-
-    --leftAmmo_;
-  }
-
-
-  void BarrelGun::primaryFiring(unsigned int time)
-  {
-    if (time > (unsigned int)1000/primaryFiringRate_)
-    {
-      currentState_ = IDLE;
-    }
-  }
-
-
-
-  void BarrelGun::secondaryFire()
-  {
-    if (leftAmmo_ < 5)
-    {
-      currentState_ = IDLE;
-      return;
-    }
-
-    SceneNode *temp = sceneMgr_->getRootSceneNode()->createChildSceneNode(
-          node_->getSceneNode()->getWorldPosition(),
-          node_->getSceneNode()->getWorldOrientation());
-
-    Entity* bulletEntity = sceneMgr_->createEntity("BulletEntity"
-          + StringConverter::toString(bulletCounter_++), "Barrel.mesh");
-
-    Vector3 speed = (temp->getOrientation() * Vector3(0, 0, -1))
-          .normalisedCopy() * secondaryBulletSpeed_*0.5;
-    speed += node_->getWorldSpeed();
-
-	  temp->setScale(Vector3(1, 1, 1) * 10);
-	  temp->yaw(Degree(-90));
-
-	  bulletManager_->addBullet(new Bullet(temp, bulletEntity, speed));
-
-    leftAmmo_ -= 5;
-  }
-
-
-  void BarrelGun::secondaryFiring(unsigned int time)
-  {
-    if (time > (unsigned int)1000/secondaryFiringRate_)
-      currentState_ = IDLE;
-  }
-
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/barrel_gun.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/barrel_gun.h	(revision 592)
+++ 	(revision )
@@ -1,65 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef BARREL_GUN_H
-#define BARREL_GUN_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class BarrelGun : public BaseWeapon
-  {
- public:
-    BarrelGun(InertialNode*, AmmunitionDump*);
-	  virtual ~BarrelGun();
-
-    bool tick(unsigned long, Ogre::Real);
-
-  protected:
-    void primaryFire();
-
-    void primaryFiring(unsigned int);
-
-    void secondaryFire();
-
-    void secondaryFiring(unsigned int);
-
-  public:
-
-  protected:
-
-  };
-}
-}
-
-#endif /* BARREL_GUN_H */
Index: code/branches/FICN/src/orxonox/weapon/base_weapon.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/base_weapon.cc	(revision 592)
+++ 	(revision )
@@ -1,181 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
-
-#include "orxonox/inertial_node.h"
-#include "orxonox/run_manager.h"
-
-#include "bullet.h"
-#include "bullet_manager.h"
-#include "ammunition_dump.h"
-
-#include "base_weapon.h"
-
-
-namespace orxonox {
-namespace weapon {
-  using namespace Ogre;
-
-  BaseWeapon::BaseWeapon(InertialNode *node, AmmunitionDump *ammoDump)
-    : sceneMgr_(RunManager::getSingletonPtr()->getSceneManagerPtr()), node_(node),
-      bulletCounter_(0), primaryFireRequest_(false), currentState_(IDLE),
-      secondaryFireRequest_(false),
-      bulletManager_(RunManager::getSingletonPtr()->getBulletManagerPtr()),
-      secondaryFired_(false),
-      timeSinceNextActionAdded_(0), actionAdded_(false), nextAction_(NOTHING),
-      ammoDump_(ammoDump)
-  {
-    leftAmmo_ = 0;
-  }
-
-
-  BaseWeapon::~BaseWeapon()
-  {
-  }
-
-
-  bool BaseWeapon::addAction(const Action act)
-  {
-    if (nextAction_ == NOTHING)
-    {
-      nextAction_ = act;
-      actionAdded_ = true;
-      return true;
-    }
-    else
-      return false;
-  }
-
-
-  void BaseWeapon::primaryFireRequest()
-  {
-    primaryFireRequest_ = true;
-  }
-
-
-  void BaseWeapon::secondaryFireRequest()
-  {
-    secondaryFireRequest_ = true;
-  }
-
-
-  bool BaseWeapon::tick(unsigned long time, Real deltaTime)
-  {
-    // process action adder
-    if (actionAdded_)
-    {
-      timeSinceNextActionAdded_ = time;
-      actionAdded_ = false;
-    }
-
-    if (currentState_ != IDLE)
-    {
-      switch (currentState_)
-      {
-      case PRIMARY_FIRE:
-        primaryFiring((unsigned int)(time - actionStartTime_));
-        break;
-
-      case SECONDARY_FIRE:
-        secondaryFiring((unsigned int)(time - actionStartTime_));
-        break;
-
-      case RELOADING:
-        break;
-
-      case CHANGING_AMMO:
-        break;
-      }
-    }
-
-    if (currentState_ == IDLE)
-    {
-      // first, process next action
-      if (nextAction_ != NOTHING)
-      {
-        actionStartTime_ = time;
-        switch (nextAction_)
-        {
-        case RELOAD:
-          leftAmmo_ += ammoDump_->getAmmunition("Barrel", magazineSize_ - leftAmmo_);
-          break;
-
-        case CHANGE_AMMO:
-          break;
-
-        case SPECIAL:
-          break;
-
-        default:
-          break;
-        }
-
-        // pay attention when multithreaded!
-        nextAction_ = NOTHING;
-      }
-      else
-      {
-        // secondly, execute firing
-        if (primaryFireRequest_ && !(secondaryFired_ && secondaryFireRequest_))
-        {
-          actionStartTime_ = time;
-          currentState_ = PRIMARY_FIRE;
-          secondaryFired_ = false;
-          primaryFire();
-        }
-        else if (secondaryFireRequest_)
-        {
-          actionStartTime_ = time;
-          currentState_ = SECONDARY_FIRE;
-          secondaryFired_ = true;
-          secondaryFire();
-        }
-      }
-    }
-
-    primaryFireRequest_ = false;
-    secondaryFireRequest_ = false;
-
-    if (time - timeSinceNextActionAdded_ > nextActionValidityPeriod_)
-      nextAction_ = NOTHING;
-
-    return true;
-  }
-
-
-  int BaseWeapon::getAmmoState()
-  {
-    return leftAmmo_;
-  }
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/base_weapon.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/base_weapon.h	(revision 592)
+++ 	(revision )
@@ -1,124 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef BASE_WEAPON_H
-#define BASE_WEAPON_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class BaseWeapon
-  {
-  public:
-    enum Action {
-      NOTHING  = 0,
-      RELOAD   = 1,
-      CHANGE_AMMO  = 2,
-      SPECIAL  = 3
-    };
-
-  protected:
-    enum State {
-      IDLE = 0,
-      PRIMARY_FIRE = 1,
-      SECONDARY_FIRE = 2,
-      RELOADING = 3,
-      CHANGING_AMMO = 4,
-    };
-
-  public:
-    BaseWeapon(InertialNode*, AmmunitionDump*);
-	  virtual ~BaseWeapon();
-
-    bool addAction(const Action);
-
-    void primaryFireRequest();
-
-    void secondaryFireRequest();
-
-    int getAmmoState();
-
-    bool tick(unsigned long, Ogre::Real);
-
-  protected:
-    virtual void primaryFire() = 0;
-
-    virtual void primaryFiring(unsigned int) = 0;
-
-    virtual void secondaryFire() = 0;
-
-    virtual void secondaryFiring(unsigned int) = 0;
-
-  public:
-
-  protected:
-    Ogre::SceneManager *sceneMgr_;
-    //Ogre::SceneNode *node_;
-    InertialNode* node_;
-
-    int bulletCounter_;
-    BulletManager *bulletManager_;
-
-    AmmunitionDump *ammoDump_;
-
-    bool primaryFireRequest_;
-    bool secondaryFireRequest_;
-
-    unsigned long actionStartTime_;
-
-    State currentState_;
-    bool secondaryFired_;
-
-    Action nextAction_;
-    bool actionAdded_;
-    unsigned long timeSinceNextActionAdded_;
-    static const unsigned long nextActionValidityPeriod_ = 500;
-
-    // weapon properties
-    int leftAmmo_;
-    Ogre::String name_;
-    int primaryFirePower_;
-    int secondaryFirePower_;
-    int primaryFiringRate_;
-    int secondaryFiringRate_;
-    Ogre::Real primaryBulletSpeed_;
-    Ogre::Real secondaryBulletSpeed_;
-
-    int magazineSize_;
-
-  };
-
-}
-}
-
-#endif /* BASE_WEAPON_H */
Index: code/branches/FICN/src/orxonox/weapon/bullet.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/bullet.cc	(revision 592)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreVector3.h"
-
-#include "bullet.h"
-
-
-namespace orxonox {
-namespace weapon {
-  using namespace Ogre;
-
-  Bullet::Bullet(SceneNode *node, Entity *entity, Vector3 speed)
-    : node_(node), entity_(entity), speed_(speed)
-  {
-	  node_->attachObject(entity_);
-  }
-
-
-  Bullet::~Bullet()
-  {
-  }
-
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/bullet.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/bullet.h	(revision 592)
+++ 	(revision )
@@ -1,60 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef BULLET_H
-#define BULLET_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class Bullet
-  {
-  public:
-	  Bullet(Ogre::SceneNode*, Ogre::Entity*, Ogre::Vector3);
-	  ~Bullet();
-
-  protected:
-
-  public:
-    Ogre::SceneNode *node_;
-	  Ogre::Entity *entity_;
-	  Ogre::Vector3 speed_;
-
-  protected:
-
-  };
-
-}
-}
-
-#endif /* BULLET_H */
Index: code/branches/FICN/src/orxonox/weapon/bullet_manager.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/bullet_manager.cc	(revision 592)
+++ 	(revision )
@@ -1,90 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreSceneManager.h"
-
-#include "bullet_manager.h"
-#include "bullet.h"
-
-
-namespace orxonox {
-namespace weapon {
-  using namespace Ogre;
-
-  BulletManager::BulletManager(SceneManager *sceneMgr) : sceneMgr_(sceneMgr),
-        bulletsIndex_(0), bulletsSize_(8)
-  {
-    bullets_ = new Bullet*[bulletsSize_];
-  }
-
-
-  BulletManager::~BulletManager()
-  {
-    // clean up the bullet list
-    if (bullets_)
-    {
-      for (int i = 0; i < bulletsIndex_; i++)
-        delete bullets_[i];
-      delete bullets_;
-    }
-  }
-
-
-  void BulletManager::addBullet(Bullet *bullet)
-  {
-    // resize array if neccessary (double the size then)
-    if (bulletsIndex_ >= bulletsSize_)
-    {
-      // redimension the array
-      Bullet **tempArray = new Bullet*[2*bulletsSize_];
-      for (int i = 0; i < bulletsSize_; i++)
-        tempArray[i] = bullets_[i];
-      bulletsSize_ *= 2;
-      delete bullets_;
-      bullets_ = tempArray;
-    }
-
-    // add the bullet to the list
-    bullets_[bulletsIndex_++] = bullet;
-  }
-
-
-  bool BulletManager::tick(unsigned long time, Real deltaTime)
-  {
-    // update the bullet positions
-    for (int i = 0; i < bulletsIndex_; i++)
-    {
-      bullets_[i]->node_->translate(bullets_[i]->speed_*deltaTime);
-      bullets_[i]->node_->yaw(Degree(deltaTime*100));
-      bullets_[i]->node_->roll(Degree(deltaTime*300));
-    }
-
-    return true;
-  }
-
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/bullet_manager.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/bullet_manager.h	(revision 592)
+++ 	(revision )
@@ -1,66 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef BULLET_MANAGER_H
-#define BULLET_MANAGER_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class BulletManager
-  {
-  public:
-    BulletManager(Ogre::SceneManager*);
-	  virtual ~BulletManager();
-
-    void addBullet(Bullet*);
-
-    bool tick(unsigned long, Ogre::Real);
-
-  protected:
-
-  public:
-    Ogre::SceneManager *sceneMgr_;
-
-  protected:
-    // Bullet array
-	  Bullet **bullets_;
-	  int bulletsSize_;
-	  int bulletsIndex_;
-
-  };
-
-}
-}
-
-#endif /* BULLET_MANAGER_H */
Index: code/branches/FICN/src/orxonox/weapon/weapon_station.cc
===================================================================
--- code/branches/FICN/src/orxonox/weapon/weapon_station.cc	(revision 592)
+++ 	(revision )
@@ -1,80 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
-
-#include "base_weapon.h"
-
-#include "weapon_station.h"
-
-
-namespace orxonox {
-namespace weapon {
-  using namespace Ogre;
-
-  WeaponStation::WeaponStation(int stationSize)
-        : stationSize_(stationSize), lastActiveSlotIndex_(-1),
-        slots_(new BaseWeapon*[stationSize])
-  {
-  	//slots_ = new BaseWeapon*[stationSize];
-  }
-
-
-  WeaponStation::~WeaponStation()
-  {
-    if (slots_)
-      delete slots_;
-    // when factory available: delete weapons too
-  }
-
-
-  bool WeaponStation::addWeapon(BaseWeapon *weapon)
-  {
-    if (lastActiveSlotIndex_ = stationSize_ - 1)
-      return false;
-
-    // this is ugly, but for the time being, it has to fit.
-    slots_[++lastActiveSlotIndex_] = weapon;
-    selectedSlot_ = slots_ + lastActiveSlotIndex_;
-    return true;
-  }
-
-
-  BaseWeapon* WeaponStation::selectWeapon(int slotNumber)
-  {
-    if (slotNumber < lastActiveSlotIndex_)
-      return NULL;
-    return slots_[slotNumber];
-  }
-
-}
-}
Index: code/branches/FICN/src/orxonox/weapon/weapon_station.h
===================================================================
--- code/branches/FICN/src/orxonox/weapon/weapon_station.h	(revision 592)
+++ 	(revision )
@@ -1,69 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   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 3 of the License, or
- *   (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-
-#ifndef WEAPON_STATION_H
-#define WEAPON_STATION_H
-
-#include "OgrePrerequisites.h"
-
-#include "orxonox/orxonox_prerequisites.h"
-
-
-namespace orxonox {
-namespace weapon {
-
-  class WeaponStation
-  {
-  public:
-    WeaponStation(int slotSize);
-	  ~WeaponStation();
-
-    bool addWeapon(BaseWeapon*);
-
-    //bool removeCurrentWeapon();
-
-    // TODO: access every weapon by name
-    BaseWeapon* selectWeapon(int slotNumber);
-
-  protected:
-
-  public:
-
-  protected:
-    // slot management
-    BaseWeapon **slots_;
-    BaseWeapon **selectedSlot_;
-    int lastActiveSlotIndex_;
-    int stationSize_;
-
-  };
-
-}
-}
-
-#endif /* WEAPON_STATION_H */
