Index: code/branches/objecthierarchy/src/network/CMakeLists.txt
===================================================================
--- code/branches/objecthierarchy/src/network/CMakeLists.txt	(revision 1915)
+++ code/branches/objecthierarchy/src/network/CMakeLists.txt	(revision 1916)
@@ -21,5 +21,5 @@
 
 IF(WIN32)
-  ADD_LIBRARY( network ${NETWORK_SRC_FILES} )
+  ADD_LIBRARY( network SHARED ${NETWORK_SRC_FILES} )
 ELSE(WIN32)
   ADD_LIBRARY( network SHARED ${NETWORK_SRC_FILES} )
Index: code/branches/objecthierarchy/src/network/ClientConnection.h
===================================================================
--- code/branches/objecthierarchy/src/network/ClientConnection.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/ClientConnection.h	(revision 1916)
@@ -60,5 +60,5 @@
 
 
-  class ClientConnection{
+  class _NetworkExport ClientConnection{
   public:
     ClientConnection(int port, std::string address);
@@ -96,5 +96,5 @@
     ENetPeer *server;
     boost::thread *receiverThread_;
-    
+
     static boost::recursive_mutex enet_mutex_;
   };
Index: code/branches/objecthierarchy/src/network/ClientInformation.h
===================================================================
--- code/branches/objecthierarchy/src/network/ClientInformation.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/ClientInformation.h	(revision 1916)
@@ -57,5 +57,5 @@
   * @author Oliver Scheuss
   */
-  class ClientInformation{
+  class _NetworkExport ClientInformation{
   public:
     ClientInformation();
@@ -66,5 +66,5 @@
     ClientInformation *prev();
     static ClientInformation *insertBack(ClientInformation *ins);
-    
+
     // set functions
     void setID(int clientID);
@@ -73,5 +73,5 @@
     bool setPartialGamestateID(int id);
     inline void setShipID(unsigned int id){ShipID_=id;}
-    
+
     // get functions
     inline unsigned int getShipID(){return ShipID_;}
@@ -80,5 +80,5 @@
     int getPartialGamestateID();
     ENetPeer *getPeer();
-    
+
     int getFailures();
     void addFailure();
@@ -86,5 +86,5 @@
     enet_uint32 getRTT();
     enet_uint32 getPacketLoss();
-    
+
     static bool removeClient(int clientID);
     static bool removeClient(ENetPeer *peer);
@@ -99,10 +99,10 @@
   private:
     static ClientInformation *head_;
-    
+
     bool setNext(ClientInformation *next);
     bool setPrev(ClientInformation *prev);
     ClientInformation *insertAfter(ClientInformation *ins);
     ClientInformation *insertBefore(ClientInformation *ins);
-    
+
     ClientInformation *preve;
     ClientInformation *nexte;
@@ -115,5 +115,5 @@
     bool synched_;
     unsigned short failures_;
-    
+
   };
 
Index: code/branches/objecthierarchy/src/network/ConnectionManager.cc
===================================================================
--- code/branches/objecthierarchy/src/network/ConnectionManager.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/network/ConnectionManager.cc	(revision 1916)
@@ -49,5 +49,4 @@
 #include "core/BaseObject.h"
 #include "core/Iterator.h"
-#include "objects/SpaceShip.h"
 #include "util/Math.h"
 #include "util/Sleep.h"
@@ -331,17 +330,4 @@
 
 
-
-  bool ConnectionManager::removeShip(ClientInformation *client){
-    unsigned int id=client->getShipID();
-    orxonox::ObjectList<orxonox::SpaceShip>::iterator it;
-    for(it = orxonox::ObjectList<orxonox::SpaceShip>::begin(); it; ++it){
-      if(it->getObjectID()!=id)
-        continue;
-      delete *it;
-    }
-    return true;
-  }
-
-
   void ConnectionManager::disconnectClient(ClientInformation *client){
     {
@@ -350,5 +336,4 @@
       lock.unlock();
     }
-    removeShip(client);
   }
 
Index: code/branches/objecthierarchy/src/network/ConnectionManager.h
===================================================================
--- code/branches/objecthierarchy/src/network/ConnectionManager.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/ConnectionManager.h	(revision 1916)
@@ -66,5 +66,5 @@
     const int NETWORK_DEFAULT_CHANNEL = 0;
 
-  struct ClientList{
+  struct _NetworkExport ClientList{
     ENetEvent *event;
     int ID;
@@ -72,5 +72,5 @@
   };
 
-  class ConnectionManager{
+  class _NetworkExport ConnectionManager{
     public:
     static boost::recursive_mutex enet_mutex;
@@ -107,6 +107,4 @@
     int getClientID(ENetAddress address);
     ENetPeer *getClientPeer(int clientID);
-    //bool createShip(ClientInformation *client);
-    bool removeShip(ClientInformation *client);
     PacketBuffer buffer;
 
Index: code/branches/objecthierarchy/src/network/GamestateClient.cc
===================================================================
--- code/branches/objecthierarchy/src/network/GamestateClient.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/network/GamestateClient.cc	(revision 1916)
@@ -40,5 +40,5 @@
 namespace network
 {
-  struct GameStateItem{
+  struct _NetworkExport GameStateItem{
     packet::Gamestate *state;
     int id;
@@ -50,5 +50,4 @@
     last_gamestate_=GAMESTATEID_INITIAL-1;
     tempGamestate_=NULL;
-    myShip_=NULL;
   }
 
@@ -75,11 +74,5 @@
       return false;
     int id = GAMESTATEID_INITIAL;
-    bool b = saveShipCache();
     packet::Gamestate *processed = processGamestate(tempGamestate_);
-    if(!processed){
-      if(b)
-        loadShipCache();
-      return false;
-    }
 //    assert(processed);
     //successfully loaded data from gamestate. now save gamestate for diff and delete the old gs
@@ -87,6 +80,4 @@
     gamestateMap_[processed->getID()]=processed;
     last_diff_ = processed->getID();
-    if(b)
-      loadShipCache();
     id = processed->getID();
     sendAck(id);
@@ -134,5 +125,5 @@
 
   }
-  
+
   bool GamestateClient::sendAck(unsigned int gamestateID){
     packet::Acknowledgement *ack = new packet::Acknowledgement(gamestateID, 0);
@@ -145,37 +136,4 @@
       return true;
     }
-  }
-
-  bool GamestateClient::saveShipCache(){
-    if(myShip_==NULL){
-      myShip_ = orxonox::SpaceShip::getLocalShip();
-//      COUT(2) << "myShip_: " << myShip_ << " getLocalShip(): " << orxonox::SpaceShip::getLocalShip() << std::endl;
-      if(!myShip_)
-	return false;
-    }
-    if(myShip_){
-      //      unsigned char *data = new unsigned char[myShip_->getSize()];
-      int size=myShip_->getSize(0, 0x1);
-      if(size==0)
-        return false;
-      shipCache_ = new unsigned char [size];
-      unsigned char *temp = shipCache_;
-      if(!myShip_->getData(temp, 0, 0x1))
-        COUT(3) << "could not save shipCache" << std::endl;
-      return true;
-    }else
-      return false;
-  }
-
-  bool GamestateClient::loadShipCache(){
-    myShip_=orxonox::SpaceShip::getLocalShip(); //TODO: remove this (only a hack)
-    if(myShip_ && shipCache_){
-      assert(myShip_->getIdentifier());
-      unsigned char *temp = shipCache_;
-      myShip_->updateData(temp, 0x2);
-      delete shipCache_;
-      return true;
-    }else
-      return false;
   }
 
Index: code/branches/objecthierarchy/src/network/GamestateClient.h
===================================================================
--- code/branches/objecthierarchy/src/network/GamestateClient.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/GamestateClient.h	(revision 1916)
@@ -46,5 +46,4 @@
 #include "core/CorePrereqs.h"
 #include "packet/Gamestate.h"
-#include "objects/SpaceShip.h"
 #include "GamestateHandler.h"
 
@@ -53,5 +52,5 @@
 namespace network
 {
-  class GamestateClient: public GamestateHandler
+  class _NetworkExport GamestateClient: public GamestateHandler
   {
   public:
@@ -70,6 +69,4 @@
     void printGamestateMap();
     bool sendAck(unsigned int gamestateID);
-    bool saveShipCache();
-    bool loadShipCache();
 
     int           last_diff_;
@@ -77,5 +74,4 @@
     std::map<int, packet::Gamestate *> gamestateMap_;
     packet::Gamestate *tempGamestate_; // we save the received gamestates here during processQueue
-    orxonox::SpaceShip *myShip_;
     unsigned char *shipCache_;
 
Index: code/branches/objecthierarchy/src/network/GamestateHandler.h
===================================================================
--- code/branches/objecthierarchy/src/network/GamestateHandler.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/GamestateHandler.h	(revision 1916)
@@ -39,5 +39,5 @@
 	@author Oliver Scheuss
 */
-class GamestateHandler{
+class _NetworkExport GamestateHandler{
   private:
     virtual bool add(packet::Gamestate *gs, int clientID)=0;
Index: code/branches/objecthierarchy/src/network/GamestateManager.h
===================================================================
--- code/branches/objecthierarchy/src/network/GamestateManager.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/GamestateManager.h	(revision 1916)
@@ -66,5 +66,5 @@
   * @author Oliver Scheuss
   */
-  class GamestateManager: public GamestateHandler{
+  class _NetworkExport GamestateManager: public GamestateHandler{
   public:
     GamestateManager();
Index: code/branches/objecthierarchy/src/network/Host.h
===================================================================
--- code/branches/objecthierarchy/src/network/Host.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/Host.h	(revision 1916)
@@ -44,5 +44,5 @@
 *	@author Oliver Scheuss
 */
-class Host{
+class _NetworkExport Host{
   private:
     //TODO add theese functions or adequate
@@ -72,5 +72,5 @@
     static void setClientID(unsigned int id){ instance_->clientID_ = id; }
     static void setShipID(unsigned int id){ instance_->shipID_ = id; }
-    static bool isServer(){ return instance_->isServer_(); }		
+    static bool isServer(){ return instance_->isServer_(); }
     static bool Chat(std::string message);
     static bool incomingChat(std::string message, unsigned int playerID);
Index: code/branches/objecthierarchy/src/network/NetworkCallback.h
===================================================================
--- code/branches/objecthierarchy/src/network/NetworkCallback.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/NetworkCallback.h	(revision 1916)
@@ -2,6 +2,8 @@
 #define _NETWORK_CALLBACK__
 
+#include "NetworkPrereqs.h"
+
 namespace network{
-  class NetworkCallbackBase
+  class _NetworkExport NetworkCallbackBase
   {
     public:
@@ -9,7 +11,7 @@
 	  virtual ~NetworkCallbackBase() {}
   };
-  
+
   template <class T>
-  class NetworkCallback: public NetworkCallbackBase
+  class _NetworkExport NetworkCallback: public NetworkCallbackBase
   {
     public:
@@ -18,9 +20,9 @@
       virtual void call()
         { (this->object_->*function_)(); }
-  
+
     private:
       T* object_;
       void (T::*function_) (void);
-  }; 
+  };
 
 
Index: code/branches/objecthierarchy/src/network/PacketBuffer.h
===================================================================
--- code/branches/objecthierarchy/src/network/PacketBuffer.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/PacketBuffer.h	(revision 1916)
@@ -49,10 +49,10 @@
 namespace network
 {
-  struct PacketEnvelope{
+  struct _NetworkExport PacketEnvelope{
     int length;
     int data;
   };
 
-  struct QueueItem{
+  struct _NetworkExport QueueItem{
     ENetEvent *event;
     //ENetAddress address;
@@ -60,5 +60,5 @@
   };
 
-  class PacketBuffer{
+  class _NetworkExport PacketBuffer{
   public:
     PacketBuffer();
Index: code/branches/objecthierarchy/src/network/Server.cc
===================================================================
--- code/branches/objecthierarchy/src/network/Server.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/network/Server.cc	(revision 1916)
@@ -49,5 +49,4 @@
 #include "ClientInformation.h"
 #include "util/Sleep.h"
-#include "objects/SpaceShip.h"
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
@@ -101,5 +100,5 @@
     gamestates_ = new GamestateManager();
   }
-  
+
   /**
   * @brief Destructor
@@ -304,10 +303,4 @@
     COUT(4) << "Con.Man: creating client id: " << temp->getID() << std::endl;
     connection->syncClassid(temp->getID());
-    COUT(5) << "creating spaceship for clientid: " << temp->getID() << std::endl;
-    // TODO: this is only a hack, untill we have a possibility to define default player-join actions
-    if(!createShip(temp))
-      COUT(2) << "Con.Man. could not create ship for clientid: " << clientID << std::endl;
-    else
-      COUT(3) << "created spaceship" << std::endl;
     temp->setSynched(true);
     COUT(3) << "sending welcome" << std::endl;
@@ -327,32 +320,4 @@
   }
 
-  bool Server::createShip(ClientInformation *client){
-    if(!client)
-      return false;
-    orxonox::Identifier* id = ClassByName("SpaceShip");
-    if(!id){
-      COUT(4) << "We could not create the SpaceShip for client: " << client->getID() << std::endl;
-      return false;
-    }
-    orxonox::SpaceShip *no = dynamic_cast<orxonox::SpaceShip *>(id->fabricate());
-    no->classID = id->getNetworkID();
-    client->setShipID(no->getObjectID());
-    no->setPosition(orxonox::Vector3(0,0,80));
-    no->setScale(10);
-    //no->setYawPitchRoll(orxonox::Degree(-90),orxonox::Degree(-90),orxonox::Degree(0));
-    no->setMesh("assff.mesh");
-    no->setMaxSpeed(500);
-    no->setMaxSideAndBackSpeed(50);
-    no->setMaxRotation(1.0);
-    no->setTransAcc(200);
-    no->setRotAcc(3.0);
-    no->setTransDamp(75);
-    no->setRotDamp(1.0);
-    no->setCamera(std::string("cam_") + convertToString(client->getID()));
-    no->create();
-
-    return true;
-  }
-
   bool Server::disconnectClient(ENetEvent *event){
     COUT(4) << "removing client from list" << std::endl;
@@ -360,20 +325,9 @@
 
     //boost::recursive_mutex::scoped_lock lock(head_->mutex_);
-    orxonox::ObjectList<orxonox::SpaceShip>::iterator it = orxonox::ObjectList<orxonox::SpaceShip>::begin();
     ClientInformation *client = ClientInformation::findClient(&event->peer->address);
     if(!client)
       return false;
     gamestates_->removeClient(client);
-    while(it){
-      if(it->getObjectID()!=client->getShipID()){
-        ++it;
-        continue;
-      }
-      orxonox::ObjectList<orxonox::SpaceShip>::iterator temp=it;
-      ++it;
-      delete  *temp;
-      return ClientInformation::removeClient(event->peer);
-    }
-    return false;
+    return ClientInformation::removeClient(event->peer);
   }
 
@@ -387,5 +341,5 @@
     gamestates_->removeClient(client);
   }
-  
+
   bool Server::chat(std::string message){
     ClientInformation *temp = ClientInformation::getBegin();
Index: code/branches/objecthierarchy/src/network/Server.h
===================================================================
--- code/branches/objecthierarchy/src/network/Server.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/Server.h	(revision 1916)
@@ -52,5 +52,5 @@
 {
   const int CLIENTID_SERVER = 0;
-  
+
   /**
   * This class is the root class of the network module for a server.
@@ -64,5 +64,5 @@
     Server(int port, const char *bindAddress);
     ~Server();
-    
+
     void open();
     void close();
@@ -77,8 +77,7 @@
     unsigned int shipID(){return 0;}
     unsigned int playerID(){return 0;}
-    
+
     bool addClient(ENetEvent *event);
     bool createClient(int clientID);
-    bool createShip(ClientInformation *client);
     bool disconnectClient(ENetEvent *event);
     void disconnectClient(int clientID);
@@ -88,10 +87,10 @@
     bool sendObjectDeletes();
     virtual bool chat(std::string message);
-    
+
     //void processChat( chat *data, int clientId);
     ConnectionManager *connection;
     GamestateManager *gamestates_;
 
-    
+
     float timeSinceLastUpdate_;
   };
Index: code/branches/objecthierarchy/src/network/Synchronisable.h
===================================================================
--- code/branches/objecthierarchy/src/network/Synchronisable.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/Synchronisable.h	(revision 1916)
@@ -46,9 +46,4 @@
 #define REGISTERSTRING_WITHDIR(stringname, mode) registerVar(&stringname, stringname.length()+1, network::STRING, mode)
 
-//TODO: this is only a very ugly hack ...
-namespace orxonox{
-class SpaceShip;
-}
-
 namespace network
 {
@@ -60,5 +55,5 @@
     };
   }
-  
+
   namespace syncmode{
     enum mode{
@@ -67,5 +62,5 @@
     };
   }
-  
+
   enum variableType{
     DATA,
@@ -73,5 +68,5 @@
   };
 
-  struct synchronisableHeader{
+  struct _NetworkExport synchronisableHeader{
     uint32_t size:31;
     bool dataAvailable:1;
@@ -80,5 +75,5 @@
   };
 
-  typedef struct synchronisableVariable{
+  typedef struct _NetworkExport synchronisableVariable{
     unsigned int size;
     int mode; // this determines in which direction the variable gets synchronised
@@ -98,11 +93,10 @@
     friend class GamestateClient;
     friend class Server;
-    friend class orxonox::SpaceShip;
     virtual ~Synchronisable();
 
-    
+
     virtual bool create();
     static void setClient(bool b);
-    
+
     static Synchronisable *fabricate(uint8_t*& mem, int mode=0x0);
     static bool deleteObject(unsigned int objectID);
@@ -110,5 +104,5 @@
     static unsigned int getNumberOfDeletedObject(){ return deletedObjects_.size(); }
     static unsigned int popDeletedObject(){ unsigned int i = deletedObjects_.front(); deletedObjects_.pop(); return i; }
-    
+
     inline unsigned int getObjectID(){return objectID;}
     inline unsigned int getClassID(){return classID;}
@@ -119,6 +113,6 @@
     void setObjectFrequency(unsigned int freq){ objectFrequency_ = freq; }
     virtual void registerAllVariables()=0;
-    
-    
+
+
   private:
     bool getData(uint8_t*& men, unsigned int id, int mode=0x0);
@@ -128,8 +122,8 @@
     bool doSelection(unsigned int id);
     bool isMyTick(unsigned int id);
-    
+
     unsigned int objectID;
     unsigned int classID;
-    
+
     std::list<synchronisableVariable *> *syncList;
     static int state_; // detemines wheter we are server (default) or client
Index: code/branches/objecthierarchy/src/network/packet/Acknowledgement.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/Acknowledgement.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/Acknowledgement.h	(revision 1916)
@@ -29,4 +29,5 @@
 #define NETWORKACKNOLEDGEMENT_H
 
+#include "../NetworkPrereqs.h"
 #include "Packet.h"
 
@@ -35,7 +36,7 @@
 namespace packet {
 /**
-	@author 
+	@author
 */
-class Acknowledgement : public Packet
+class _NetworkExport Acknowledgement : public Packet
 {
 public:
@@ -43,8 +44,8 @@
   Acknowledgement( uint8_t* data, unsigned int clientID );
   ~Acknowledgement();
-  
+
   inline unsigned int getSize() const;
   bool process();
-  
+
   unsigned int getAckID();
 private:
Index: code/branches/objecthierarchy/src/network/packet/Chat.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/Chat.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/Chat.h	(revision 1916)
@@ -2,4 +2,6 @@
 #ifndef NETWORKCHAT_H
 #define NETWORKCHAT_H
+
+#include "../NetworkPrereqs.h"
 
 #include <string>
@@ -11,7 +13,7 @@
 namespace packet {
 /**
-	@author 
+	@author
 */
-class Chat : public Packet
+class _NetworkExport Chat : public Packet
 {
 public:
@@ -19,8 +21,8 @@
   Chat( uint8_t* data, unsigned int clientID );
   ~Chat();
-  
+
   inline unsigned int getSize() const;
   bool process();
-  
+
   unsigned int getMessageLength(){ return messageLength_; };
   unsigned char *getMessage();
Index: code/branches/objecthierarchy/src/network/packet/ClassID.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/ClassID.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/ClassID.h	(revision 1916)
@@ -29,4 +29,6 @@
 #define NETWORKCLASSID_H
 
+#include "../NetworkPrereqs.h"
+
 #include <string>
 
@@ -37,7 +39,7 @@
 
 /**
-	@author 
+	@author
 */
-class ClassID : public Packet
+class _NetworkExport ClassID : public Packet
 {
 public:
@@ -45,8 +47,8 @@
   ClassID( uint8_t* data, unsigned int clientID );
   ~ClassID();
-  
+
   inline unsigned int getSize() const;
   bool process();
-  
+
   unsigned int getClassID();
   unsigned int getClassNameLength(){ return classNameLength_; }
Index: code/branches/objecthierarchy/src/network/packet/DeleteObjects.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/DeleteObjects.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/DeleteObjects.h	(revision 1916)
@@ -29,4 +29,6 @@
 #define NETWORKPACKETDELETEOBJECTS_H
 
+#include "../NetworkPrereqs.h"
+
 #include "Packet.h"
 
@@ -35,7 +37,7 @@
 namespace packet {
 /**
-	@author 
+	@author
 */
-class DeleteObjects : public Packet
+class _NetworkExport DeleteObjects : public Packet
 {
 public:
@@ -43,10 +45,10 @@
   DeleteObjects( uint8_t* data, unsigned int clientID );
   ~DeleteObjects();
-  
+
   bool fetchIDs();
-  
+
   inline unsigned int getSize() const;
   bool process();
-  
+
 private:
 };
Index: code/branches/objecthierarchy/src/network/packet/Gamestate.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/Gamestate.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/Gamestate.h	(revision 1916)
@@ -27,4 +27,10 @@
  */
 
+
+#ifndef NETWORK_PACKETGAMESTATE_H
+#define NETWORK_PACKETGAMESTATE_H
+
+#include "../NetworkPrereqs.h"
+
 #include "Packet.h"
 #include "network/Synchronisable.h"
@@ -34,13 +40,9 @@
 #endif
 
-
-#ifndef NETWORK_PACKETGAMESTATE_H
-#define NETWORK_PACKETGAMESTATE_H
-
 namespace network {
 
 namespace packet {
 
-struct GamestateHeader{
+struct _NetworkExport GamestateHeader{
   ENUM::Type packetType;
   int32_t id; // id of the gamestate
@@ -59,5 +61,5 @@
 	@author Oliver Scheuss
 */
-class Gamestate: public Packet{
+class _NetworkExport Gamestate: public Packet{
   public:
     Gamestate();
Index: code/branches/objecthierarchy/src/network/packet/Packet.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/Packet.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/Packet.h	(revision 1916)
@@ -29,4 +29,6 @@
 #define NETWORKPACKET_H
 
+#include "../NetworkPrereqs.h"
+
 #include <map>
 #include <enet/enet.h>
@@ -37,5 +39,5 @@
 
 namespace packet{
-  
+
 namespace ENUM{
   enum Direction{
@@ -53,9 +55,9 @@
   };
 }
-  
+
 /**
 	@author Oliver Scheuss <scheusso [at] ee.ethz.ch>
 */
-class Packet{
+class _NetworkExport Packet{
   public:
     Packet(const Packet &p);
@@ -63,5 +65,5 @@
     static Packet *createPacket(ENetPacket *packet, ENetPeer *peer);
     static void deletePacket(ENetPacket *packet);
-    
+
     virtual unsigned char *getData(){ return data_; };
     virtual unsigned int getSize() const =0;
@@ -73,5 +75,5 @@
     void setClientID( int id )
       { clientID_ = id; }
-    
+
     bool send();
   protected:
Index: code/branches/objecthierarchy/src/network/packet/Welcome.h
===================================================================
--- code/branches/objecthierarchy/src/network/packet/Welcome.h	(revision 1915)
+++ code/branches/objecthierarchy/src/network/packet/Welcome.h	(revision 1916)
@@ -29,4 +29,6 @@
 #define NETWORKWELCOME_H
 
+#include "../NetworkPrereqs.h"
+
 #include "Packet.h"
 
@@ -35,7 +37,7 @@
 
 /**
-	@author 
+	@author
 */
-class Welcome : public Packet
+class _NetworkExport Welcome : public Packet
 {
 public:
@@ -43,9 +45,9 @@
   Welcome( uint8_t* data, unsigned int clientID );
   virtual ~Welcome();
-  
+
   uint8_t *getData();
   inline unsigned int getSize() const;
   bool process();
-  
+
 private:
 };
Index: code/branches/objecthierarchy/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/objecthierarchy/src/orxonox/CMakeLists.txt	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/CMakeLists.txt	(revision 1916)
@@ -42,24 +42,12 @@
   tools/WindowEventListener.cc
 
-  objects/Ambient.cc
-  objects/Backlight.cc
+#  objects/Backlight.cc
   objects/Camera.cc
   objects/CameraHandler.cc
-  objects/Model.cc
-  objects/NPC.cc
-  objects/ParticleSpawner.cc
+#  objects/ParticleSpawner.cc
   objects/Radar.cc
   objects/RadarListener.cc
   objects/RadarViewable.cc
-  objects/Skybox.cc
-  objects/SpaceShip.cc
-  objects/SpaceShipAI.cc
   objects/Tickable.cc
-  objects/WorldEntity.cc
-
-  objects/Projectile.cc
-  objects/BillboardProjectile.cc
-  objects/RotatingProjectile.cc
-  objects/ParticleProjectile.cc
 
   tolua/tolua_bind.cc
@@ -83,14 +71,6 @@
   SET( ORXONOXS_SRC_FILES
     GraphicsEngine.cc
-    objects/Ambient.cc
     objects/Camera.cc
     objects/CameraHandler.cc
-    objects/Explosion.cc
-    objects/Model.cc
-    objects/NPC.cc
-    objects/Projectile.cc
-    objects/Skybox.cc
-    objects/SpaceShip.cc
-    objects/WorldEntity.cc
   )
 
Index: code/branches/objecthierarchy/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/OrxonoxPrereqs.h	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/OrxonoxPrereqs.h	(revision 1916)
@@ -81,19 +81,7 @@
 
     // objects
-    class Ambient;
     class Backlight;
     class Camera;
-    class Model;
-    class NPC;
     class ParticleSpawner;
-    class Skybox;
-    class SpaceShip;
-    class SpaceShipAI;
-    class WorldEntity;
-
-    class Projectile;
-    class BillboardProjectile;
-    class RotatingProjectile;
-    class ParticleProjectile;
 
     // tools
Index: code/branches/objecthierarchy/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/gamestates/GSLevel.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/gamestates/GSLevel.cc	(revision 1916)
@@ -40,8 +40,8 @@
 #include "core/ConfigValueIncludes.h"
 #include "core/CoreIncludes.h"
-#include "objects/Backlight.h"
+//#include "objects/Backlight.h"
 #include "objects/Tickable.h"
 #include "objects/Radar.h"
-#include "tools/ParticleInterface.h"
+//#include "tools/ParticleInterface.h"
 #include "Settings.h"
 #include "GraphicsEngine.h"
@@ -146,4 +146,5 @@
         float change = factor / this->timeFactor_;
         this->timeFactor_ = factor;
+/*
         for (ObjectList<ParticleInterface>::iterator it = ObjectList<ParticleInterface>::begin(); it; ++it)
             it->setSpeedFactor(it->getSpeedFactor() * change);
@@ -151,4 +152,5 @@
         for (ObjectList<Backlight>::iterator it = ObjectList<Backlight>::begin(); it; ++it)
             it->setTimeFactor(timeFactor_);
+*/
     }
 
Index: code/branches/objecthierarchy/src/orxonox/objects/Ambient.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Ambient.cc	(revision 1915)
+++ 	(revision )
@@ -1,102 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "Ambient.h"
-
-#include <vector>
-#include <string>
-
-#include <OgreSceneManager.h>
-
-#include "tinyxml/tinyxml.h"
-#include "util/SubString.h"
-#include "util/Math.h"
-#include "util/Debug.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "core/ConsoleCommand.h"
-#include "Settings.h"
-#include "GraphicsEngine.h"
-
-namespace orxonox
-{
-    SetConsoleCommandAlias(Ambient, setAmbientLightTest, "setAmbientLight", false).defaultValues(ColourValue(1, 1, 1, 1)).accessLevel(AccessLevel::Offline);
-
-    CreateFactory(Ambient);
-
-    Ambient* Ambient::instance_s;
-
-    Ambient::Ambient()
-    {
-        RegisterObject(Ambient);
-        Ambient::instance_s = this;
-        registerAllVariables();
-    }
-
-    Ambient::~Ambient()
-    {
-    }
-
-    bool Ambient::create()
-    {
-        if (Settings::showsGraphics())
-            GraphicsEngine::getInstance().getLevelSceneManager()->setAmbientLight(ambientLight_);
-        return Synchronisable::create();
-    }
-
-    void Ambient::registerAllVariables()
-    {
-        registerVar(&ambientLight_, sizeof(ColourValue), network::DATA);
-    }
-
-    void Ambient::setAmbientLight(const ColourValue& colour)
-    {
-        if (Settings::showsGraphics())
-            GraphicsEngine::getInstance().getLevelSceneManager()->setAmbientLight(colour);
-        ambientLight_ = colour;
-    }
-
-    /**
-    @brief
-        XML loading and saving.
-    @param
-        xmlelement The XML-element
-    @param
-        loading Loading (true) or saving (false)
-    @return
-        The XML-element
-    */
-    void Ambient::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Ambient, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Ambient, "colourvalue", setAmbientLight, getAmbienetLight, xmlelement, mode);
-        create();
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/Ambient.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Ambient.h	(revision 1915)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Ambient_H__
-#define _Ambient_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "util/Math.h"
-#include "core/BaseObject.h"
-#include "network/Synchronisable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Ambient : public BaseObject, public network::Synchronisable
-    {
-        public:
-            Ambient();
-            virtual ~Ambient();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual bool create();
-            void registerAllVariables();
-
-            void setAmbientLight(const ColourValue& colour);
-            inline const ColourValue& getAmbienetLight() const
-                { return this->ambientLight_; }
-
-            static void setAmbientLightTest(const ColourValue& colour)
-                { Ambient::instance_s->setAmbientLight(colour); }
-
-        private:
-            static Ambient* instance_s;
-            ColourValue ambientLight_;
-
-    };
-}
-
-#endif /* _Ambient_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/BillboardProjectile.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/BillboardProjectile.cc	(revision 1915)
+++ 	(revision )
@@ -1,65 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "BillboardProjectile.h"
-
-#include <OgreBillboard.h>
-
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
-    CreateFactory(BillboardProjectile);
-
-    BillboardProjectile::BillboardProjectile(SpaceShip* owner) : Projectile(owner)
-    {
-        RegisterObject(BillboardProjectile);
-
-        this->billboard_.setBillboardSet("Examples/Flare", ColourValue(1.0, 1.0, 0.5), 1);
-        this->attachObject(this->billboard_.getBillboardSet());
-        this->scale(0.5);
-    }
-
-    BillboardProjectile::~BillboardProjectile()
-    {
-        if (this->isInitialized() && this->owner_)
-            this->detachObject(this->billboard_.getBillboardSet());
-    }
-
-    void BillboardProjectile::setColour(const ColourValue& colour)
-    {
-        this->billboard_.getBillboardSet()->getBillboard(0)->setColour(colour);
-    }
-
-    void BillboardProjectile::changedVisibility()
-    {
-        SUPER(BillboardProjectile, changedVisibility);
-        this->billboard_.setVisible(this->isVisible());
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/BillboardProjectile.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/BillboardProjectile.h	(revision 1915)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _BillboardProjectile_H__
-#define _BillboardProjectile_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "Projectile.h"
-#include "tools/BillboardSet.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport BillboardProjectile : public Projectile
-    {
-        public:
-            BillboardProjectile(SpaceShip* owner = 0);
-            virtual ~BillboardProjectile();
-
-            virtual void setColour(const ColourValue& colour);
-            virtual void changedVisibility();
-
-        private:
-            BillboardSet billboard_;
-    };
-}
-
-#endif /* _BillboardProjectile_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/Model.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Model.cc	(revision 1915)
+++ 	(revision )
@@ -1,107 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "Model.h"
-
-#include "tinyxml/tinyxml.h"
-#include "core/CoreIncludes.h"
-#include "GraphicsEngine.h"
-#include "core/XMLPort.h"
-
-#include <OgreEntity.h>
-#include <OgreMesh.h>
-#include <OgreHardwareVertexBuffer.h>
-#include <OgreMeshManager.h>
-
-
-namespace orxonox
-{
-    CreateFactory(Model);
-
-    /**
-     * @brief Constructor
-     */
-    Model::Model()
-    {
-        RegisterObject(Model);
-        registerAllVariables();
-    }
-
-    /**
-     * @brief Destructor
-     */
-    Model::~Model()
-    {
-        if (this->isInitialized() && (this->meshSrc_ != "") && (this->meshSrc_.size() > 0))
-            this->detachObject(this->mesh_.getEntity());
-    }
-
-    /**
-        @brief XML loading and saving.
-        @param xmlelement The XML-element
-        @param loading Loading (true) or saving (false)
-        @return The XML-element
-    */
-    void Model::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Model, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Model, "mesh", setMesh, getMesh, xmlelement, mode);
-
-        Model::create();
-    }
-
-    bool Model::create(){
-      if(!WorldEntity::create())
-        return false;
-      if ((this->meshSrc_ != "") && (this->meshSrc_.size() > 0))
-      {
-        this->mesh_.setMesh(meshSrc_);
-        this->attachObject(this->mesh_.getEntity());
-
-        COUT(4) << "Loader (Model.cc): Created model" << std::endl;
-      }
-      if(this->isExactlyA(Class(Model)))
-        setObjectFrequency(300); //sync all 10 seconds (this only applies to asteroids and other isExactlyA(Model)'s
-      return true;
-    }
-
-    void Model::registerAllVariables(){
-//       WorldEntity::registerAllVariables();
-      COUT(5) << "Model.cc:registering new meshsrc with size: " << meshSrc_.length()+1 << " this: " << this << std::endl;
-      registerVar(&meshSrc_, meshSrc_.length() + 1, network::STRING);
-    }
-
-    void Model::changedVisibility()
-    {
-        SUPER(Model, changedVisibility);
-        if (this->isInitialized())
-            this->mesh_.setVisible(this->isVisible());
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/Model.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Model.h	(revision 1915)
+++ 	(revision )
@@ -1,62 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Model_H__
-#define _Model_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "WorldEntity.h"
-#include "../tools/Mesh.h"
-
-namespace orxonox
-{
-
-    class _OrxonoxExport Model : public WorldEntity
-    {
-        public:
-            Model();
-            virtual ~Model();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedVisibility();
-            inline void setMesh(const std::string& meshname)
-                { this->meshSrc_ = meshname; }
-            inline const std::string& getMesh() const
-                { return this->meshSrc_; }
-            virtual bool create();
-
-        protected:
-            void registerAllVariables();
-
-        private:
-            std::string meshSrc_;
-            Mesh mesh_;
-    };
-}
-
-#endif /* _Model_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/NPC.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/NPC.cc	(revision 1915)
+++ 	(revision )
@@ -1,176 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Benjamin Knecht, beni_at_orxonox.net
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "NPC.h"
-
-#include "core/CoreIncludes.h"
-#include "core/Iterator.h"
-
-namespace orxonox {
-
-  CreateFactory(NPC);
-
-  NPC::NPC() :
-    movable_(true)
-  {
-    RegisterObject(NPC);
-    registerAllVariables();
-  }
-
-  NPC::~NPC()
-  {
-  }
-
-  /**
-   * function to chance values of an element
-   */
-  void NPC::setValues(Vector3 location, Vector3 speed, Vector3 acceleration, bool movable) {
-    this->setAcceleration(acceleration);
-    this->setVelocity(speed);
-    this->translate(location);
-    movable_ = movable;
-  }
-
-  void NPC::registerAllVariables(){
-    Model::registerAllVariables();
-    registerVar(&movable_, sizeof(movable_), network::DATA);
-  }
-
-
-  /**
-   * calculates the distance between the element and an other point given by temp
-   */
-  float NPC::getDistance(WorldEntity* temp)
-  {
-    Vector3 distance = temp->getPosition() - this->getPosition();
-    return distance.length();
-  }
-
-  /**
-   * updates the data of an element
-   */
-  void NPC::update()
-  {
-
-    //if element is movable, calculate acceleration
-    if (this->movable_ == true) calculateAcceleration();
-
-  }
-
-  /**
-   * tick this NPC
-   */
-  void NPC::tick(float dt)
-  {
-    update();
-    this->setVelocity(0.995*this->getVelocity() + this->getAcceleration()*dt);
-    this->translate(this->getVelocity()*dt);
-    this->setAcceleration(Vector3(0,0,0));
-  }
-
-  /**
-   * calculates the new acceleration of an element
-   */
-  void NPC::calculateAcceleration()
-  {
-    //acceleration consisting of flocking-functions
-    this->setAcceleration(separation() + alignment() + cohesion());
-  }
-
-  /**
-   * separation-function (keep elements separated, avoid crashs)
-   */
-  Vector3 NPC::separation()
-  {
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    Vector3 inverseDistance = Vector3(0,0,0);  //vector pointing away from possible collisions
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    float distance = 0;  // distance to the actual element
-    for(ObjectList<WorldEntity>::iterator it = ObjectList<WorldEntity>::begin(); it; ++it) {  //go through all elements
-      distance = getDistance(*it);  //get distance between this and actual
-      if ((distance > 0) && (distance < SEPERATIONDISTANCE)) {  //do only if actual is inside detectionradius
-        inverseDistance = Vector3(0,0,0);
-        inverseDistance = this->getPosition() - it->getPosition();  //calculate the distancevector heading towards this
-        //adaptation of the inverseDistance to the distance
-        if ((distance < 200) && (distance >= 120)) {inverseDistance = 2*inverseDistance;}
-        if ((distance < 120) && (distance >= 80)) {inverseDistance = 5*inverseDistance;}
-        if ((distance < 80) && (distance >= 40)) {inverseDistance = 10*inverseDistance;}
-        if ((distance < 40) && (distance > 0)) {inverseDistance = 10*inverseDistance;}
-        steering = steering + inverseDistance;  //add up all significant steeringvectors
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
-      }
-    }
-    if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> separation steeringvector
-    return steering;
-  }
-
-  /**
-   * alignment-function (lead elements to the same heading)
-   */
-  Vector3 NPC::alignment()
-  {
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    //float distance = 0;
-    //go through all elements
-    for(ObjectList<NPC>::iterator it = ObjectList<NPC>::begin(); it; ++it) {  //just working with 3 elements at the moment
-      float distance = getDistance(*it);  //get distance between this and actual
-      if ((distance > 0) && (distance < ALIGNMENTDISTANCE)) {  //check if actual element is inside detectionradius
-        steering = steering + it->getVelocity();  //add up all speedvectors inside the detectionradius
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
-      }
-    }
-    if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> alignment steeringvector
-    return steering;
-  }
-
-  /**
-   * cohseion-function (keep elements close to each other)
-   */
-  Vector3 NPC::cohesion()
-  {
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    //float distance = 0;
-    //go through all elements
-    for(ObjectList<NPC>::iterator it = ObjectList<NPC>::begin(); it; ++it) {  //just working with 3 elements at the moment
-      float distance = getDistance(*it);  //get distance between this and actual
-      if ((distance > 0) && (distance < COHESIONDISTANCE)) {  //check if actual element is inside detectionradius
-        steering = steering + it->getPosition();  //add up all locations of elements inside the detectionradius
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
-      }
-    }
-    if(numberOfNeighbour > 0) {
-      steering = steering  / (float)numberOfNeighbour;  //devide the sum steeringvector by the number of elements -> cohesion steeringvector
-      steering = steering - this->getPosition();  //transform the vector for the ship
-    }
-    return steering;
-  }
-
-} // end of class NPC
Index: code/branches/objecthierarchy/src/orxonox/objects/NPC.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/NPC.h	(revision 1915)
+++ 	(revision )
@@ -1,74 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-/**
-  @file NPC.h
-  @brief AI using WorldEntity
-  @author Benjamin Knecht <beni_at_orxonox.net>
- */
-
-#ifndef _NPC_H__
-#define _NPC_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "Model.h"
-
-namespace orxonox {
-
-  class _OrxonoxExport NPC : public Model
-  {
-    public:
-
-      NPC();
-      virtual ~NPC();
-      virtual void tick(float dt);
-      void update();
-      void setValues(Vector3 location, Vector3 speed, Vector3 acceleration, bool movable);
-      void registerAllVariables();
-      virtual bool create(){return Model::create();}
-
-    private:
-      float getDistance(WorldEntity* temp);
-      void calculateAcceleration();
-      Vector3 separation();
-      Vector3 alignment();
-      Vector3 cohesion();
-
-
-    private:
-      bool movable_;  // movability of the element, (false) gives the possiblity that an object can`t be moved by flocking but still gets into the calculation
-
-      // those values should maybe be controlled by a higher power and should maybe be parameters that can be changed
-      static int const SEPERATIONDISTANCE = 300;  //detectionradius of seperation
-      static int const ALIGNMENTDISTANCE = 300;  //detectionradius of alignment
-      static int const COHESIONDISTANCE = 5000;  //detectionradius of cohesion
-      static int const NUMELEMENTS = 9;  //number of elements
-  };
-}
-#endif /* _NPC_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/ParticleProjectile.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/ParticleProjectile.cc	(revision 1915)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "ParticleProjectile.h"
-
-#include "SpaceShip.h"
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-
-namespace orxonox
-{
-    CreateFactory(ParticleProjectile);
-
-    ParticleProjectile::ParticleProjectile(SpaceShip* owner) : BillboardProjectile(owner)
-    {
-        RegisterObject(ParticleProjectile);
-
-        this->particles_ = new ParticleInterface("Orxonox/shot2", LODParticle::normal);
-        this->particles_->addToSceneNode(this->getNode());
-        this->particles_->setKeepParticlesInLocalSpace(true);
-        if (this->owner_)
-        {
-        }
-//        else
-//        {
-//            this->particles_ = 0;
-//        }
-
-        this->setConfigValues();
-    }
-
-    ParticleProjectile::~ParticleProjectile()
-    {
-        if (this->isInitialized() && this->particles_)
-            delete this->particles_;
-    }
-
-    void ParticleProjectile::setConfigValues()
-    {
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback((Projectile*)this, &ParticleProjectile::speedChanged);
-    }
-
-    void ParticleProjectile::changedVisibility()
-    {
-        SUPER(ParticleProjectile, changedVisibility);
-        this->particles_->setEnabled(this->isVisible());
-    }
-    
-    bool ParticleProjectile::create(){
-      if(!Projectile::create())
-        return false;
-      this->particles_->getAllEmitters()->setDirection(-this->getOrientation()*Vector3(1,0,0));
-      return true;
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/ParticleProjectile.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/ParticleProjectile.h	(revision 1915)
+++ 	(revision )
@@ -1,55 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _ParticleProjectile_H__
-#define _ParticleProjectile_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "BillboardProjectile.h"
-#include "tools/ParticleInterface.h"
-#include "util/Math.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport ParticleProjectile : public BillboardProjectile
-    {
-        public:
-            ParticleProjectile(SpaceShip* owner = 0);
-            virtual ~ParticleProjectile();
-            virtual void changedVisibility();
-            void setConfigValues();
-            
-            virtual bool create();
-
-        private:
-            ParticleInterface* particles_;
-    };
-}
-
-#endif /* _ParticleProjectile_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/Projectile.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Projectile.cc	(revision 1915)
+++ 	(revision )
@@ -1,130 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "Projectile.h"
-
-#include <OgreBillboard.h>
-
-#include "core/CoreIncludes.h"
-#include "core/Executor.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/Iterator.h"
-#include "tools/ParticleInterface.h"
-
-#include "SpaceShipAI.h"
-#include "ParticleSpawner.h"
-#include "Model.h"
-#include "Settings.h"
-
-namespace orxonox
-{
-    float Projectile::speed_s = 5000;
-
-    Projectile::Projectile(SpaceShip* owner) : owner_(owner)
-    {
-        RegisterObject(Projectile);
-
-        this->setConfigValues();
-        this->explosionTemplateName_ = "Orxonox/explosion3";
-        this->smokeTemplateName_ = "Orxonox/smoke4";
-
-        this->setStatic(false);
-        this->translate(Vector3(55, 0, 0), Ogre::Node::TS_LOCAL);
-        
-        if (this->owner_)
-        {
-            this->setOrientation(this->owner_->getOrientation());
-            this->setPosition(this->owner_->getPosition());
-            this->setVelocity(this->owner_->getInitialDir() * this->speed_);
-        }
-
-        if(!orxonox::Settings::isClient()) //only if not on client
-          this->destroyTimer_.setTimer(this->lifetime_, false, this, createExecutor(createFunctor(&Projectile::destroyObject)));
-    }
-
-    Projectile::~Projectile()
-    {
-    }
-
-    void Projectile::setConfigValues()
-    {
-        SetConfigValue(damage_, 15.0).description("The damage caused by the projectile");
-        SetConfigValue(lifetime_, 4.0).description("The time in seconds a projectile stays alive");
-        SetConfigValue(speed_, 5000.0).description("The speed of a projectile in units per second").callback(this, &Projectile::speedChanged);
-    }
-
-    void Projectile::speedChanged()
-    {
-        Projectile::speed_s = this->speed_;
-        if (this->owner_)
-            this->setVelocity(this->owner_->getInitialDir() * this->speed_);
-    }
-
-    void Projectile::tick(float dt)
-    {
-        SUPER(Projectile, tick, dt);
-
-        if (!this->isActive())
-            return;
-
-        float radius;
-        for (ObjectList<Model>::iterator it = ObjectList<Model>::begin(); it; ++it)
-        {
-            if ((*it) != this->owner_)
-            {
-                radius = it->getScale3D().x * 3.0;
-
-                if (this->getPosition().squaredDistance(it->getPosition()) <= (radius*radius))
-                {
-                    // hit
-                    if (it->isA(Class(SpaceShipAI)))
-                        ((SpaceShipAI*)(*it))->damage(this->damage_);
-                    ParticleSpawner* explosion = new ParticleSpawner(this->explosionTemplateName_, LODParticle::low, 2.0);
-                    explosion->setPosition(this->getPosition());
-                    explosion->create();
-                    ParticleSpawner* smoke = new ParticleSpawner(this->smokeTemplateName_, LODParticle::normal, 2.0, 0.0);
-                    smoke->setPosition(this->getPosition());
-//                    smoke->getParticleInterface()->setSpeedFactor(3.0);
-                    smoke->create();
-                    delete this;
-                    return;
-                }
-            }
-        }
-    }
-
-    void Projectile::destroyObject()
-    {
-        delete this;
-    }
-    
-    bool Projectile::create(){
-      return WorldEntity::create();
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/Projectile.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Projectile.h	(revision 1915)
+++ 	(revision )
@@ -1,70 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Projectile_H__
-#define _Projectile_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "WorldEntity.h"
-#include "tools/Timer.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Projectile : public WorldEntity
-    {
-        public:
-            virtual ~Projectile();
-            void setConfigValues();
-            void speedChanged();
-            void destroyObject();
-            virtual void tick(float dt);
-            
-            virtual bool create();
-
-            static float getSpeed()
-                { return Projectile::speed_s; }
-
-        protected:
-            Projectile(SpaceShip* owner = 0);
-            SpaceShip* owner_;
-
-        private:
-            std::string explosionTemplateName_;
-            std::string smokeTemplateName_;
-        protected:
-            static float speed_s;
-            float speed_;
-        private:
-            float lifetime_;
-            float damage_;
-            Timer<Projectile> destroyTimer_;
-    };
-}
-
-#endif /* _Projectile_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/Radar.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Radar.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/objects/Radar.cc	(revision 1916)
@@ -36,6 +36,4 @@
 #include <cfloat>
 #include <cassert>
-#include "objects/WorldEntity.h"
-#include "objects/SpaceShip.h"
 #include "core/CoreIncludes.h"
 #include "core/ConsoleCommand.h"
@@ -114,6 +112,8 @@
             for (ObjectList<RadarViewable>::iterator itElement = ObjectList<RadarViewable>::begin(); itElement; ++itElement)
             {
+/*
                 if ((*itElement) != SpaceShip::getLocalShip() && (*itListener)->getRadarSensitivity() > (*itElement)->getRadarObjectCamouflage())
                     (*itListener)->displayObject(*itElement, *itElement == this->focus_);
+*/
             }
         }
@@ -130,5 +130,5 @@
         else
         {
-            Vector3 localPosition = SpaceShip::getLocalShip()->getPosition();
+            Vector3 localPosition;// = SpaceShip::getLocalShip()->getPosition();
             Vector3 targetPosition = localPosition;
             if (*(this->itFocus_))
@@ -143,7 +143,8 @@
             for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it)
             {
+/*
                 if (*it == SpaceShip::getLocalShip())
                     continue;
-
+*/
                 float targetDistance = localPosition.squaredDistance((*it)->getWorldPosition());
                 if (targetDistance > currentDistance && targetDistance < nextDistance)
Index: code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.cc	(revision 1916)
@@ -31,5 +31,5 @@
 #include "util/Debug.h"
 #include "core/CoreIncludes.h"
-#include "objects/WorldEntity.h"
+//#include "objects/WorldEntity.h"
 #include "Radar.h"
 
@@ -63,5 +63,5 @@
     {
         validate();
-        return this->radarObject_->getWorldPosition();
+        return Vector3::ZERO;//this->radarObject_->getWorldPosition();
     }
 
@@ -69,5 +69,5 @@
     {
         validate();
-        return this->radarObject_->getOrientation() * this->radarObject_->getVelocity();
+        return Vector3::ZERO;//this->radarObject_->getOrientation() * this->radarObject_->getVelocity();
     }
 }
Index: code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.h	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/objects/RadarViewable.h	(revision 1916)
@@ -44,4 +44,6 @@
     class _OrxonoxExport RadarViewable : virtual public OrxonoxClass
     {
+    class WorldEntity;
+
     public:
         enum Shape
Index: code/branches/objecthierarchy/src/orxonox/objects/RotatingProjectile.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/RotatingProjectile.cc	(revision 1915)
+++ 	(revision )
@@ -1,98 +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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "RotatingProjectile.h"
-
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include <OgreBillboard.h>
-
-namespace orxonox
-{
-    CreateFactory(RotatingProjectile);
-
-    RotatingProjectile::RotatingProjectile(SpaceShip* owner) : BillboardProjectile(owner)
-    {
-        RegisterObject(RotatingProjectile);
-
-        this->time_ = 0;
-
-        if (/*this->owner_*/true)
-        {
-            this->rotatingBillboard1_.setBillboardSet("Examples/Flare", ColourValue(1.0, 0.0, 0.0), 1);
-            this->rotatingBillboard2_.setBillboardSet("Examples/Flare", ColourValue(1.0, 0.0, 0.0), 1);
-
-            this->rotatingNode1_ = this->getNode()->createChildSceneNode(this->getName() + "rotating1", Vector3(0, 50, 0));
-            this->rotatingNode2_ = this->getNode()->createChildSceneNode(this->getName() + "rotating2", Vector3(0, -50, 0));
-            this->rotatingNode1_->attachObject(this->rotatingBillboard1_.getBillboardSet());
-            this->rotatingNode2_->attachObject(this->rotatingBillboard2_.getBillboardSet());
-            this->rotatingNode1_->scale(0.3, 0.3, 0.3);
-            this->rotatingNode2_->scale(0.3, 0.3, 0.3);
-        }
-
-        this->setConfigValues();
-    }
-
-    RotatingProjectile::~RotatingProjectile()
-    {
-    }
-
-    void RotatingProjectile::setConfigValues()
-    {
-        SetConfigValue(colour_, ColourValue(1.0, 0.0, 0.0)).callback(this, &RotatingProjectile::colourChanged);
-    }
-
-    void RotatingProjectile::colourChanged()
-    {
-        if (this->isInitialized())
-        {
-            this->rotatingBillboard1_.getBillboardSet()->getBillboard(0)->setColour(this->colour_);
-            this->rotatingBillboard2_.getBillboardSet()->getBillboard(0)->setColour(this->colour_);
-        }
-    }
-
-    void RotatingProjectile::tick(float dt)
-    {
-        if (this->isActive())
-        {
-            this->time_ += dt;
-
-            this->rotatingNode1_->setPosition(0, 50 * sin(this->time_ * 20), 50 * cos(this->time_ * 20));
-            this->rotatingNode2_->setPosition(0, -50 * sin(this->time_ * 20), -50 * cos(this->time_ * 20));
-        }
-
-        SUPER(RotatingProjectile, tick, dt);
-    }
-
-    void RotatingProjectile::changedVisibility()
-    {
-        SUPER(RotatingProjectile, changedVisibility);
-        this->rotatingBillboard1_.setVisible(this->isVisible());
-        this->rotatingBillboard2_.setVisible(this->isVisible());
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/RotatingProjectile.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/RotatingProjectile.h	(revision 1915)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#ifndef _RotatingProjectile_H__
-#define _RotatingProjectile_H__
-
-#include "OrxonoxPrereqs.h"
-#include "util/Math.h"
-#include "BillboardProjectile.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport RotatingProjectile : public BillboardProjectile
-    {
-        public:
-            RotatingProjectile(SpaceShip* owner = 0);
-            virtual ~RotatingProjectile();
-            void setConfigValues();
-            void colourChanged();
-            virtual void tick(float dt);
-            virtual void changedVisibility();
-
-        private:
-            ColourValue colour_;
-            BillboardSet rotatingBillboard1_;
-            BillboardSet rotatingBillboard2_;
-            Ogre::SceneNode* rotatingNode1_;
-            Ogre::SceneNode* rotatingNode2_;
-            float time_;
-    };
-}
-
-#endif /* _RotatingProjectile_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/Skybox.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Skybox.cc	(revision 1915)
+++ 	(revision )
@@ -1,94 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "Skybox.h"
-
-#include <string>
-
-#include <OgreSceneManager.h>
-
-#include "tinyxml/tinyxml.h"
-#include "GraphicsEngine.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Debug.h"
-#include "Settings.h"
-
-namespace orxonox
-{
-    CreateFactory(Skybox);
-
-    Skybox::Skybox()
-    {
-        RegisterObject(Skybox);
-        registerAllVariables();
-    }
-
-    Skybox::~Skybox()
-    {
-    }
-
-    void Skybox::setSkybox(const std::string& skyboxname)
-    {
-        if (Settings::showsGraphics())
-            GraphicsEngine::getInstance().getLevelSceneManager()->setSkyBox(true, skyboxname);
-    }
-
-    /**
-        @brief XML loading and saving.
-        @param xmlelement The XML-element
-        @param loading Loading (true) or saving (false)
-        @return The XML-element
-    */
-    void Skybox::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Skybox, XMLPort, xmlelement, mode);
-
-        XMLPortParam(Skybox, "src", setSkyboxSrc, getSkyboxSrc, xmlelement, mode);
-        create();
-    }
-
-    bool Skybox::create()
-    {
-        this->setSkybox(this->skyboxSrc_);
-        return Synchronisable::create();
-    }
-
-    void Skybox::registerAllVariables()
-    {
-        registerVar(&skyboxSrc_, skyboxSrc_.length()+1 ,network::STRING);
-    }
-
-    void Skybox::changedVisibility()
-    {
-        SUPER(Skybox, changedVisibility);
-        if (Settings::showsGraphics())
-            GraphicsEngine::getInstance().getLevelSceneManager()->setSkyBox(this->isVisible(), this->skyboxSrc_);
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/Skybox.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/Skybox.h	(revision 1915)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _Skybox_H__
-#define _Skybox_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "core/BaseObject.h"
-#include "network/Synchronisable.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport Skybox : public BaseObject, public network::Synchronisable
-    {
-        public:
-            Skybox();
-            virtual ~Skybox();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedVisibility();
-            void setSkybox(const std::string& skyboxname);
-
-            virtual bool create();
-            void registerAllVariables();
-
-            inline void setSkyboxSrc(const std::string &src)
-                { this->skyboxSrc_ = src; }
-            inline const std::string& getSkyboxSrc() const
-                { return this->skyboxSrc_; }
-
-        private:
-            std::string skyboxSrc_;
-
-
-    };
-}
-
-#endif /* _Skybox_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/SpaceShip.cc	(revision 1915)
+++ 	(revision )
@@ -1,637 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      Benjamin Knecht
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "SpaceShip.h"
-
-#include <OgreCamera.h>
-#include <OgreRenderWindow.h>
-#include <OgreParticleSystem.h>
-#include <OgreSceneNode.h>
-
-#include "util/Convert.h"
-#include "util/Math.h"
-#include "util/Debug.h"
-#include "core/CoreIncludes.h"
-#include "core/ConfigValueIncludes.h"
-#include "core/Iterator.h"
-#include "core/input/InputManager.h"
-#include "core/XMLPort.h"
-#include "core/ConsoleCommand.h"
-#include "tools/ParticleInterface.h"
-#include "network/Client.h"
-#include "Backlight.h"
-#include "CameraHandler.h"
-#include "ParticleSpawner.h"
-#include "Settings.h"
-#include "RotatingProjectile.h"
-#include "ParticleProjectile.h"
-#include "GraphicsEngine.h"
-#include "SpaceShipAI.h"
-
-namespace orxonox
-{
-    SetConsoleCommand(SpaceShip, setMaxSpeedTest, false).accessLevel(AccessLevel::Debug);
-    SetConsoleCommand(SpaceShip, whereAmI, true).accessLevel(AccessLevel::User);
-    SetConsoleCommand(SpaceShip, moveLongitudinal, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveLateral, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveYaw, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, movePitch, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveRoll, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, fire, true).accessLevel(AccessLevel::User).keybindMode(KeybindMode::OnHold);
-    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setMaxSpeed", 1, false).accessLevel(AccessLevel::Debug);
-    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setMaxBlubber", 2, false).accessLevel(AccessLevel::Debug);
-    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setRofl", 3, false).accessLevel(AccessLevel::Debug);
-
-    CreateFactory(SpaceShip);
-
-    SpaceShip* SpaceShip::instance_s;
-
-
-    SpaceShip *SpaceShip::getLocalShip(){
-      ObjectList<SpaceShip>::iterator it;
-      for(it = ObjectList<SpaceShip>::begin(); it; ++it){
-	assert(it->isA(Class(SpaceShip)));
-        if( (it)->myShip_ || (network::Host::running() && network::Host::getShipID()==(it)->getObjectID()) ){
-//	  COUT(1) << "^^^^^^^^^^ myShip_:" << *it << " classname: " << (*it)->getIdentifier()->getName() << " objectid: " << (*it)->objectID << std::endl;
-          return *it;
-	}
-      }
-      return 0;
-    }
-
-    SpaceShip::SpaceShip()
-    {
-        RegisterObject(SpaceShip);
-
-        this->setRotationAxis(1, 0, 0);
-        this->setStatic(false);
-
-        this->zeroRadian_ = 0;
-        this->maxSideAndBackSpeed_ = 0;
-        this->maxSpeed_ = 0;
-        this->maxRotation_ = 0;
-        this->translationAcceleration_ = 0;
-        this->rotationAcceleration_ = 0;
-        this->translationDamping_ = 0;
-        this->rotationDamping_ = 0;
-        this->maxRotationRadian_ = 0;
-        this->rotationAccelerationRadian_ = 0;
-        this->rotationDampingRadian_ = 0;
-
-        this->cam_ = 0;
-        this->tt1_ = 0;
-        this->tt2_ = 0;
-        this->smoke_ = 0;
-        this->fire_ = 0;
-
-        this->backlight_ = 0;
-
-        this->redNode_ = 0;
-        this->greenNode_ = 0;
-        this->blinkTime_ = 0;
-
-        this->timeToReload_ = 0;
-
-        this->bLMousePressed_ = false;
-        this->bRMousePressed_ = false;
-        this->mouseXRotation_ = 0;
-        this->mouseYRotation_ = 0;
-        this->myShip_ = false;
-
-        this->registerAllVariables();
-
-        SpaceShip::instance_s = this;
-
-        this->setConfigValues();
-
-        this->initialDir_ = Vector3(1.0, 0.0, 0.0);
-        this->currentDir_ = initialDir_;
-        this->initialOrth_ = Vector3(0.0, 0.0, 1.0);
-        this->currentOrth_ = initialOrth_;
-
-        this->camName_ = this->getName() + "CamNode";
-
-        this->teamNr_ = 0;
-        this->health_ = 100;
-
-        this->radarObject_ = static_cast<WorldEntity*>(this);
-    }
-
-    SpaceShip::~SpaceShip()
-    {
-        for (ObjectList<SpaceShipAI>::iterator it = ObjectList<SpaceShipAI>::begin(); it; ++it)
-            it->shipDied(this);
-      
-        if (this->isInitialized())
-        {
-            if (this->tt1_)
-                delete this->tt1_;
-            if (this->tt2_)
-                delete this->tt2_;
-
-            if (this->smoke_)
-                this->smoke_->destroy();
-            if (this->fire_)
-                this->fire_->destroy();
-
-            if (this->backlight_)
-                delete this->backlight_;
-
-            if (this->cam_)
-                delete this->cam_;
-        }
-    }
-
-    bool SpaceShip::create()
-    {
-        if (!myShip_)
-        {
-            if (network::Host::running() && getObjectID() == network::Host::getShipID())
-            {
-                if (!network::Host::isServer())
-                    setObjectMode(0x3);
-                myShip_ = true;
-            }
-            else
-                this->setRadarObjectColour(this->getProjectileColour());
-      }
-      Model::create();
-      this->init();
-      return true;
-    }
-
-    void SpaceShip::registerAllVariables()
-    {
-        registerVar( &camName_, camName_.length()+1, network::STRING, 0x1 );
-        registerVar( &maxSpeed_, sizeof(maxSpeed_), network::DATA, 0x1);
-        registerVar( &maxSideAndBackSpeed_, sizeof(maxSideAndBackSpeed_), network::DATA, 0x1);
-        registerVar( &maxRotation_, sizeof(maxRotation_), network::DATA, 0x1);
-        registerVar( &translationAcceleration_, sizeof(translationAcceleration_), network::DATA, 0x1);
-        registerVar( &rotationAcceleration_, sizeof(rotationAcceleration_), network::DATA, 0x1);
-        registerVar( &rotationAccelerationRadian_, sizeof(rotationAccelerationRadian_), network::DATA, 0x1);
-        registerVar( &translationDamping_, sizeof(translationDamping_), network::DATA, 0x1);
-        registerVar( &rotationDamping_, sizeof(rotationDamping_), network::DATA, 0x1);
-        registerVar( &rotationDampingRadian_, sizeof(rotationDampingRadian_), network::DATA, 0x1);
-    }
-
-    void SpaceShip::init()
-    {
-        if (Settings::showsGraphics())
-        {
-            // START CREATING THRUSTERS
-            this->tt1_ = new ParticleInterface("Orxonox/thruster1", LODParticle::low);
-            this->tt1_->createNewEmitter();
-            this->tt1_->getAllEmitters()->setDirection(-this->getInitialDir());
-            this->tt1_->getEmitter(0)->setPosition(Vector3(-15, 20, -1));
-            this->tt1_->getEmitter(1)->setPosition(Vector3(-15, -20, -1));
-            this->tt1_->setSpeedFactor(3.0);
-
-            Ogre::SceneNode* node2a = this->getNode()->createChildSceneNode(this->getName() + "particle2a");
-            node2a->setInheritScale(false);
-            node2a->setScale(1, 1, 1);
-            tt1_->addToSceneNode(node2a);
-
-            this->tt2_ = new ParticleInterface("Orxonox/thruster2", LODParticle::normal);
-            this->tt2_->createNewEmitter();
-            this->tt2_->getAllEmitters()->setDirection(Vector3(-1, 0, 0));
-            this->tt2_->getEmitter(0)->setPosition(Vector3(-30, 40, -2));
-            this->tt2_->getEmitter(1)->setPosition(Vector3(-30, -40, -2));
-
-            Ogre::SceneNode* node2b = this->getNode()->createChildSceneNode(this->getName() + "particle2b");
-            node2b->setInheritScale(false);
-            node2b->setScale(0.5, 0.5, 0.5);
-            tt2_->addToSceneNode(node2b);
-
-            this->leftThrusterFlare_.setBillboardSet("Flares/ThrusterFlare1", Vector3(-7.5, -10, -0.5));
-            this->rightThrusterFlare_.setBillboardSet("Flares/ThrusterFlare1", Vector3(-7.5, 10, -0.5));
-
-            Ogre::SceneNode* node2c = this->getNode()->createChildSceneNode(this->getName() + "particle2c");
-            node2c->setInheritScale(false);
-            node2c->setScale(2, 2, 2);
-            node2c->attachObject(this->leftThrusterFlare_.getBillboardSet());
-            node2c->attachObject(this->rightThrusterFlare_.getBillboardSet());
-            // END CREATING THRUSTERS
-
-            // START CREATING BLINKING LIGHTS
-            this->redBillboard_.setBillboardSet("Examples/Flare", ColourValue(1.0, 0.0, 0.0), 1);
-            this->greenBillboard_.setBillboardSet("Examples/Flare", ColourValue(0.0, 1.0, 0.0), 1);
-
-            this->redNode_ = this->getNode()->createChildSceneNode(this->getName() + "red", Vector3(0.3, 4.0, -0.3));
-            this->redNode_->setInheritScale(false);
-            this->greenNode_ = this->getNode()->createChildSceneNode(this->getName() + "green", Vector3(0.3, -4.0, -0.3));
-            this->greenNode_->setInheritScale(false);
-
-            this->redNode_->attachObject(this->redBillboard_.getBillboardSet());
-            this->redNode_->setScale(0.3, 0.3, 0.3);
-
-            this->greenNode_->attachObject(this->greenBillboard_.getBillboardSet());
-            this->greenNode_->setScale(0.3, 0.3, 0.3);
-            // END CREATING BLINKING LIGHTS
-
-            // START CREATING ADDITIONAL EFFECTS
-            if(!network::Host::running()){
-              this->backlight_ = new Backlight(this->maxSpeed_, 0.8);
-              this->backlight_->create();
-              this->attachObject(this->backlight_);
-              this->backlight_->setPosition(-2.35, 0, 0.2);
-              this->backlight_->setColour(this->getProjectileColour());
-  
-              this->smoke_ = new ParticleSpawner();
-              this->smoke_->setParticle("Orxonox/smoke5", LODParticle::normal, 0, 0, 3);
-              this->attachObject(this->smoke_);
-  
-              this->fire_ = new ParticleSpawner();
-              this->fire_->setParticle("Orxonox/fire3", LODParticle::normal, 0, 0, 1);
-              this->attachObject(this->fire_);
-            }
-            
-            // END CREATING ADDITIONAL EFFECTS
-
-            if (this->isExactlyA(Class(SpaceShip)))
-            {
-                // START of testing crosshair
-                this->crosshairNear_.setBillboardSet("Orxonox/Crosshair", ColourValue(1.0, 1.0, 0.0), 1);
-                this->crosshairFar_.setBillboardSet("Orxonox/Crosshair", ColourValue(1.0, 1.0, 0.0), 1);
-
-                this->chNearNode_ = this->getNode()->createChildSceneNode(this->getName() + "near", Vector3(50.0, 0.0, 0.0));
-                this->chNearNode_->setInheritScale(false);
-                this->chFarNode_ = this->getNode()->createChildSceneNode(this->getName() + "far", Vector3(200.0, 0.0, 0.0));
-                this->chFarNode_->setInheritScale(false);
-
-                this->chNearNode_->attachObject(this->crosshairNear_.getBillboardSet());
-                this->chNearNode_->setScale(0.2, 0.2, 0.2);
-
-                this->chFarNode_->attachObject(this->crosshairFar_.getBillboardSet());
-                this->chFarNode_->setScale(0.4, 0.4, 0.4);
-                // END of testing crosshair
-            }
-        }
-        // END of testing crosshair
-
-        createCamera();
-    }
-
-    void SpaceShip::setConfigValues()
-    {
-        SetConfigValue(bInvertYAxis_, false).description("Set this to true for joystick-like mouse behaviour (mouse up = ship down).");
-        SetConfigValue(reloadTime_, 0.125).description("The reload time of the weapon in seconds");
-        SetConfigValue(testvector_, Vector3()).description("asdfblah");
-    }
-
-    void SpaceShip::changedVisibility()
-    {
-        SUPER(SpaceShip, changedVisibility);
-
-        this->tt1_->setEnabled(this->isVisible());
-        this->tt2_->setEnabled(this->isVisible());
-        this->redBillboard_.setVisible(this->isVisible());
-        this->greenBillboard_.setVisible(this->isVisible());
-        this->crosshairNear_.setVisible(this->isVisible());
-        this->crosshairFar_.setVisible(this->isVisible());
-        this->rightThrusterFlare_.setVisible(this->isVisible());
-        this->leftThrusterFlare_.setVisible(this->isVisible());
-        this->smoke_->setVisible(this->isVisible());
-        this->fire_->setVisible(this->isVisible());
-        this->backlight_->setVisible(this->isVisible());
-    }
-
-    void SpaceShip::changedActivity()
-    {
-        SUPER(SpaceShip, changedActivity);
-
-        this->tt1_->setEnabled(this->isVisible());
-        this->tt2_->setEnabled(this->isVisible());
-        this->redBillboard_.setVisible(this->isVisible());
-        this->greenBillboard_.setVisible(this->isVisible());
-        this->crosshairNear_.setVisible(this->isVisible());
-        this->crosshairFar_.setVisible(this->isVisible());
-        this->rightThrusterFlare_.setVisible(this->isVisible());
-        this->leftThrusterFlare_.setVisible(this->isVisible());
-    }
-
-    void SpaceShip::setCamera(const std::string& camera)
-    {
-      camName_=camera;
-      // change camera attributes here, if you want to ;)
-    }
-
-    void SpaceShip::getFocus(){
-      COUT(4) << "requesting focus" << std::endl;
-      //if(!network::Host::running() || network::Host::getShipID()==objectID)
-      if(myShip_)
-        CameraHandler::getInstance()->requestFocus(cam_);
-
-    }
-
-    Camera* SpaceShip::getCamera(){
-        return cam_;
-    }
-
-    void SpaceShip::createCamera(){
-//       COUT(4) << "begin camera creation" << std::endl;
-      this->camNode_ = this->getNode()->createChildSceneNode(camName_);
-      COUT(4) << "position: (this)" << this->getNode()->getPosition() << std::endl;
-      this->camNode_->setPosition(Vector3(-25,0,5));
-//      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,-1,0));
-//      Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(0,0,-1));
-//      camNode_->setOrientation(q1*q2);
-      COUT(4) << "position: (cam)" << this->camNode_->getPosition() << std::endl;
-      cam_ = new Camera(this->camNode_);
-
-      cam_->setTargetNode(this->getNode());
-//        cam->setPosition(Vector3(0,-350,0));
-//      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,0,1));
-//      Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(0,1,0));
-      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,-1,0));
-      Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(1,0,0));
-
-       this->camNode_->setOrientation(q2*q1);
-      if(myShip_){
-        COUT(5) << "requesting focus for camera" << std::endl;
-        //CameraHandler::getInstance()->requestFocus(cam_);
-        if(this->isExactlyA(Class(SpaceShip))){
-          getFocus();
-          COUT(4) << "getting focus for obj id: " << getObjectID() << std::endl;
-        }else
-          COUT(5) << "not getting focus (not exactly spaceship) for obj id: " << getObjectID() << std::endl;
-      }else
-        COUT(5) << "not getting focus (not my ship) for obj id: " << getObjectID() << std::endl;
-    }
-
-    void SpaceShip::setMaxSpeed(float value)
-    { this->maxSpeed_ = value; }
-    void SpaceShip::setMaxSideAndBackSpeed(float value)
-    { this->maxSideAndBackSpeed_ = value; }
-    void SpaceShip::setMaxRotation(float value)
-    { this->maxRotation_ = value; this->maxRotationRadian_ = Radian(value); }
-    void SpaceShip::setTransAcc(float value)
-    { this->translationAcceleration_ = value; }
-    void SpaceShip::setRotAcc(float value)
-    { this->rotationAcceleration_ = value; this->rotationAccelerationRadian_ = Radian(value); }
-    void SpaceShip::setTransDamp(float value)
-    { this->translationDamping_ = value; }
-    void SpaceShip::setRotDamp(float value)
-    { this->rotationDamping_ = value; this->rotationDampingRadian_ = Radian(value); }
-
-    /**
-        @brief XML loading and saving.
-        @param xmlelement The XML-element
-        @param loading Loading (true) or saving (false)
-        @return The XML-element
-    */
-    void SpaceShip::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(SpaceShip, XMLPort, xmlelement, mode);
-
-        XMLPortParam(SpaceShip, "camera", setCamera, getCamera, xmlelement, mode);
-        XMLPortParam(SpaceShip, "maxSpeed", setMaxSpeed, getMaxSpeed, xmlelement, mode);
-        XMLPortParam(SpaceShip, "maxSideAndBackSpeed", setMaxSideAndBackSpeed, getMaxSideAndBackSpeed, xmlelement, mode);
-        XMLPortParam(SpaceShip, "maxRotation", setMaxRotation, getMaxRotation, xmlelement, mode);
-        XMLPortParam(SpaceShip, "transAcc", setTransAcc, getTransAcc, xmlelement, mode);
-        XMLPortParam(SpaceShip, "rotAcc", setRotAcc, getRotAcc, xmlelement, mode);
-        XMLPortParam(SpaceShip, "transDamp", setTransDamp, getTransDamp, xmlelement, mode);
-        XMLPortParam(SpaceShip, "rotDamp", setRotDamp, getRotDamp, xmlelement, mode);
-
-        myShip_=true; //TODO: this is a hack
-        SpaceShip::create();
-        /*if (this->isExactlyA(Class(SpaceShip)))
-            getFocus();*/
-    }
-
-    std::string SpaceShip::whereAmI() {
-        return getConvertedValue<float, std::string>(SpaceShip::getLocalShip()->getPosition().x)
-        + "  " + getConvertedValue<float, std::string>(SpaceShip::getLocalShip()->getPosition().y)
-        + "  " + getConvertedValue<float, std::string>(SpaceShip::getLocalShip()->getPosition().z);
-    }
-
-    void SpaceShip::tick(float dt)
-    {
-        if (!this->isActive())
-            return;
-
-        currentDir_ = getOrientation()*initialDir_;
-        currentOrth_ = getOrientation()*initialOrth_;
-
-        if (this->cam_)
-            this->cam_->tick(dt);
-
-        if (Settings::showsGraphics())
-        {
-            if (this->smoke_)
-                this->smoke_->setVisible(this->isVisible() && this->health_ < 40);
-            if (this->fire_)
-                this->fire_->setVisible(this->isVisible() && this->health_ < 20);
-
-            if (this->backlight_)
-            {   // (there's already fire ||                 we're to slow                 ||                  we're moving backwards                  )
-                if (this->health_ < 20   || this->getVelocity().squaredLength() < 150*150 || this->getVelocity().dotProduct(this->getInitialDir()) < 0)
-                    this->backlight_->setActive(false);
-                else
-                    this->backlight_->setActive(true);
-            }
-
-            if (this->redNode_ && this->greenNode_)
-            {
-                this->blinkTime_ += dt;
-                float redScale = 0.15 + 0.15 * sin(this->blinkTime_ * 10.0);
-                float greenScale = 0.15 - 0.15 * sin(this->blinkTime_ * 10.0);
-                this->redNode_->setScale(redScale, redScale, redScale);
-                this->greenNode_->setScale(greenScale, greenScale, greenScale);
-            }
-        }
-
-        if (this->timeToReload_ > 0)
-            this->timeToReload_ -= dt;
-        else
-            this->timeToReload_ = 0;
-
-        if (this->bLMousePressed_ && this->timeToReload_ <= 0)
-        {
-
-            BillboardProjectile* projectile = new ParticleProjectile(this);
-            projectile->setColour(this->getProjectileColour());
-            projectile->create();
-            if (projectile->getClassID() == 0)
-            {
-              COUT(3) << "generated projectile with classid 0" <<  std::endl; // TODO: remove this output
-            }
-
-            projectile->setObjectMode(0x3);
-            this->timeToReload_ = this->reloadTime_;
-        }
-
-
-        // #####################################
-        // ############# STEERING ##############
-        // #####################################
-
-        if (this->velocity_.x > this->maxSpeed_)
-            this->velocity_.x = this->maxSpeed_;
-        if (this->velocity_.x < -this->maxSideAndBackSpeed_)
-            this->velocity_.x = -this->maxSideAndBackSpeed_;
-        if (this->velocity_.y > this->maxSideAndBackSpeed_)
-            this->velocity_.y = this->maxSideAndBackSpeed_;
-        if (this->velocity_.y < -this->maxSideAndBackSpeed_)
-            this->velocity_.y = -this->maxSideAndBackSpeed_;
-        if (this->rotationRate_ > this->maxRotationRadian_)
-            this->rotationRate_ = this->maxRotationRadian_;
-        if (this->rotationRate_ < -this->maxRotationRadian_)
-            this->rotationRate_ = -this->maxRotationRadian_;
-
-        if (this->acceleration_.x == 0)
-        {
-            if (this->velocity_.x > 0)
-            {
-                this->velocity_.x -= (this->translationDamping_ * dt);
-                if (this->velocity_.x < 0)
-                    this->velocity_.x = 0;
-            }
-            else if (this->velocity_.x < 0)
-            {
-                this->velocity_.x += (this->translationDamping_ * dt);
-                if (this->velocity_.x > 0)
-                    this->velocity_.x = 0;
-            }
-        }
-
-        if (this->acceleration_.y == 0)
-        {
-            if (this->velocity_.y > 0)
-            {
-                this->velocity_.y -= (this->translationDamping_ * dt);
-                if (this->velocity_.y < 0)
-                    this->velocity_.y = 0;
-            }
-            else if (this->velocity_.y < 0)
-            {
-                this->velocity_.y += (this->translationDamping_ * dt);
-                if (this->velocity_.y > 0)
-                    this->velocity_.y = 0;
-            }
-        }
-
-        if (this->momentum_ == this->zeroRadian_)
-        {
-            if (this->rotationRate_ > this->zeroRadian_)
-            {
-                this->rotationRate_ -= (this->rotationDampingRadian_ * dt);
-                if (this->rotationRate_ < this->zeroRadian_)
-                    this->rotationRate_ = 0;
-            }
-            else if (this->rotationRate_ < this->zeroRadian_)
-            {
-                this->rotationRate_ += (this->rotationDampingRadian_ * dt);
-                if (this->rotationRate_ > this->zeroRadian_)
-                    this->rotationRate_ = 0;
-            }
-        }
-
-
-        SUPER(SpaceShip, tick, dt);
-
-        this->roll(this->mouseXRotation_ * dt);
-        if (this->bInvertYAxis_)
-            this->yaw(Radian(-this->mouseYRotation_ * dt));
-        else
-            this->yaw(Radian(this->mouseYRotation_ * dt));
-
-        if (this->acceleration_.x > 0)
-        {
-            this->tt1_->setEnabled(true);
-            this->tt2_->setEnabled(true);
-        }
-        else
-        {
-            this->tt1_->setEnabled(false);
-            this->tt2_->setEnabled(false);
-        }
-
-        COUT(5) << "steering our ship: " << getObjectID() << std::endl;
-        this->acceleration_.x = 0;
-        this->acceleration_.y = 0;
-        this->momentum_ = 0;
-        this->mouseXRotation_ = Radian(0);
-        this->mouseYRotation_ = Radian(0);
-        this->bLMousePressed_ = false;
-    }
-
-    void SpaceShip::movePitch(float val)
-    {   getLocalShip()->setMovePitch(val);   }
-    void SpaceShip::moveYaw(float val)
-    {   getLocalShip()->setMoveYaw(val);   }
-    void SpaceShip::moveRoll(float val)
-    {   getLocalShip()->setMoveRoll(val);   }
-    void SpaceShip::moveLongitudinal(float val)
-    {   getLocalShip()->setMoveLongitudinal(val);   }
-    void SpaceShip::moveLateral(float val)
-    {   getLocalShip()->setMoveLateral(val);   }
-    void SpaceShip::fire()
-    {   getLocalShip()->doFire();   }
-
-    void SpaceShip::setMovePitch(float val)
-    {
-        val = -val * val * sgn(val) * this->rotationAcceleration_;
-        if (val > this->maxRotation_)
-            val = this->maxRotation_;
-        if (val < -this->maxRotation_)
-            val = -this->maxRotation_;
-        this->mouseYRotation_ = Radian(val);
-    }
-
-    void SpaceShip::setMoveYaw(float val)
-    {
-        val = -val * val * sgn(val) * this->rotationAcceleration_;
-        if (val > this->maxRotation_)
-            val = this->maxRotation_;
-        if (val < -this->maxRotation_)
-            val = -this->maxRotation_;
-        this->mouseXRotation_ = Radian(val);
-    }
-
-    void SpaceShip::setMoveRoll(float val)
-    {
-        this->momentum_ = Radian(-this->rotationAccelerationRadian_ * val);
-        //COUT(3) << "rotating val: " << val << " acceleration: " << this->rotationAccelerationRadian_.valueDegrees() << std::endl;
-    }
-
-    void SpaceShip::setMoveLongitudinal(float val)
-    {
-        this->acceleration_.x = this->translationAcceleration_ * val;
-    }
-
-    void SpaceShip::setMoveLateral(float val)
-    {
-        this->acceleration_.y = -this->translationAcceleration_ * val;
-    }
-
-    void SpaceShip::doFire()
-    {
-        this->bLMousePressed_ = true;
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/SpaceShip.h	(revision 1915)
+++ 	(revision )
@@ -1,193 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      Benjamin Knecht
- *
- */
-
-#ifndef _SpaceShip_H__
-#define _SpaceShip_H__
-#include <string>
-#include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-
-#include "util/Math.h"
-#include "Camera.h"
-#include "Model.h"
-#include "RadarViewable.h"
-#include "tools/BillboardSet.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport SpaceShip : public Model, public RadarViewable
-    {
-        public:
-            static SpaceShip *getLocalShip();
-
-            SpaceShip();
-            ~SpaceShip();
-            virtual bool create();
-            void registerAllVariables();
-            void init();
-            void setConfigValues();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
-            virtual void changedVisibility();
-            virtual void changedActivity();
-
-            void setCamera(const std::string& camera = "");
-            void setMaxSpeed(float value);
-            void setMaxSideAndBackSpeed(float value);
-            void setMaxRotation(float value);
-            void setTransAcc(float value);
-            void setRotAcc(float value);
-            void setTransDamp(float value);
-            void setRotDamp(float value);
-            void getFocus();
-
-            inline float getMaxSpeed() const
-                { return this->maxSpeed_; }
-            inline float getMaxSideAndBackSpeed() const
-                { return this->maxSideAndBackSpeed_; }
-            inline float getMaxRotation() const
-                { return this->maxRotation_; }
-            inline float getTransAcc() const
-                { return this->translationAcceleration_; }
-            inline float getRotAcc() const
-                { return this->rotationAcceleration_; }
-            inline float getTransDamp() const
-                { return this->translationDamping_; }
-            inline float getRotDamp() const
-                { return this->rotationDamping_; }
-
-            static std::string whereAmI();
-            static void setMaxSpeedTest(float value)
-                { SpaceShip::instance_s->setMaxSpeed(value); }
-
-            static void movePitch(float value);
-            static void moveYaw(float value);
-            static void moveRoll(float value);
-            static void moveLongitudinal(float value);
-            static void moveLateral(float value);
-            static void fire();
-            void setMovePitch(float value);
-            void setMoveYaw(float value);
-            void setMoveRoll(float value);
-            void setMoveLongitudinal(float value);
-            void setMoveLateral(float value);
-            void doFire();
-
-            inline const Vector3& getDir() const
-                { return this->currentDir_; }
-            inline const Vector3& getInitialDir() const
-                { return this->initialDir_; }
-            inline const Vector3& getOrth() const
-                { return this->currentOrth_; }
-            inline const Vector3& getInitialOrth() const
-                { return this->initialOrth_; }
-
-            Camera* getCamera();
-
-            int getTeamNr() const
-                { return this->teamNr_; }
-            float getHealth() const
-                { return this->health_; }
-
-            bool getMyShip(){return myShip_;}
-
-        protected:
-            void setTeamNr(int teamNr)
-                { this->teamNr_ = teamNr; }
-
-        private:
-            void createCamera();
-            virtual ColourValue getProjectileColour() const
-                { return ColourValue(1.0, 1.0, 0.5); }
-
-            Vector3 testvector_;
-            Vector3 initialDir_;
-            Vector3 currentDir_;
-            Vector3 initialOrth_;
-            Vector3 currentOrth_;
-            bool bInvertYAxis_;
-            bool bLMousePressed_;
-            bool bRMousePressed_;
-
-            Ogre::SceneNode* camNode_;
-            Camera* cam_;
-            std::string camName_;
-
-            ParticleInterface* tt1_;
-            ParticleInterface* tt2_;
-            BillboardSet leftThrusterFlare_;
-            BillboardSet rightThrusterFlare_;
-
-            Backlight* backlight_;
-
-            BillboardSet redBillboard_;
-            BillboardSet greenBillboard_;
-            Ogre::SceneNode* redNode_;
-            Ogre::SceneNode* greenNode_;
-            float blinkTime_;
-
-            ParticleSpawner* smoke_;
-            ParticleSpawner* fire_;
-
-            BillboardSet crosshairNear_;
-            BillboardSet crosshairFar_;
-            Ogre::SceneNode* chNearNode_;
-            Ogre::SceneNode* chFarNode_;
-
-            float timeToReload_;
-            float reloadTime_;
-
-            float maxSideAndBackSpeed_;
-            float maxSpeed_;
-            float maxRotation_;
-            float translationAcceleration_;
-            float rotationAcceleration_;
-            float translationDamping_;
-            float rotationDamping_;
-
-            Radian maxRotationRadian_;
-            Radian rotationAccelerationRadian_;
-            Radian rotationDampingRadian_;
-            Radian zeroRadian_;
-            Radian mouseXRotation_;
-            Radian mouseYRotation_;
-
-            float mouseX_;
-            float mouseY_;
-
-        protected:
-            bool myShip_;
-
-            int teamNr_;
-            float health_;
-
-            static SpaceShip* instance_s;
-    };
-}
-
-#endif /* _SpaceShip_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/SpaceShipAI.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/SpaceShipAI.cc	(revision 1915)
+++ 	(revision )
@@ -1,324 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "SpaceShipAI.h"
-
-#include <OgreMath.h>
-#include "Projectile.h"
-#include "ParticleSpawner.h"
-#include "core/CoreIncludes.h"
-#include "core/Iterator.h"
-#include "core/Executor.h"
-#include "core/ConsoleCommand.h"
-#include "core/XMLPort.h"
-#include "tools/ParticleInterface.h"
-#include "Settings.h"
-
-
-namespace orxonox
-{
-    const float ACTION_INTERVAL = 1.0f;
-
-    SetConsoleCommand(SpaceShipAI, createEnemy, true).defaultValue(0, 1);
-    SetConsoleCommand(SpaceShipAI, killEnemies, true).defaultValue(0, 0);
-
-    CreateFactory(SpaceShipAI);
-
-    SpaceShipAI::SpaceShipAI()
-    {
-        RegisterObject(SpaceShipAI);
-
-        this->target_ = 0;
-        this->bShooting_ = 0;
-        this->bHasTargetPosition_ = false;
-
-        this->setTeamNr((int)rnd(NUM_AI_TEAMS) % NUM_AI_TEAMS + 1);
-
-        if (NUM_AI_TEAMS > 0)
-            this->teamColours_[1] = ColourValue(1, 0, 0, 1);
-        if (NUM_AI_TEAMS > 1)
-            this->teamColours_[2] = ColourValue(0, 1, 0, 1);
-        if (NUM_AI_TEAMS > 2)
-            this->teamColours_[3] = ColourValue(0, 0, 1, 1);
-
-        for (int i = 4; i <= NUM_AI_TEAMS; ++i)
-            this->teamColours_[i] = ColourValue(rnd(), rnd(), rnd(), 1);
-    }
-
-    SpaceShipAI::~SpaceShipAI()
-    {
-    }
-
-    void SpaceShipAI::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(SpaceShipAI, XMLPort, xmlelement, mode);
-
-        this->actionTimer_.setTimer(ACTION_INTERVAL, true, this, createExecutor(createFunctor(&SpaceShipAI::action)));
-    }
-
-    void SpaceShipAI::createEnemy(int num)
-    {
-        for (int i = 0; i < num; ++i)
-        {
-            SpaceShipAI* newenemy = new SpaceShipAI();
-            newenemy->setMesh("assff.mesh");
-//            newenemy->setPosition(0, 0, 0);
-            newenemy->setPosition(Vector3(rnd(-3000, 3000), rnd(-3000, 3000), rnd(-3000, 3000)));
-            newenemy->setScale(10);
-            newenemy->setMaxSpeed(500);
-            newenemy->setMaxSideAndBackSpeed(50);
-            newenemy->setMaxRotation(1.0);
-            newenemy->setTransAcc(200);
-            newenemy->setRotAcc(3.0);
-            newenemy->setTransDamp(75);
-            newenemy->setRotDamp(1.0);
-            Element xmlelement;
-            newenemy->XMLPort(xmlelement, XMLPort::LoadObject);
-
-            if (Settings::showsGraphics())
-            {
-                ParticleSpawner* spawneffect = new ParticleSpawner("Orxonox/fairytwirl", LODParticle::normal, 2.0, 0, 0, newenemy->getOrth());
-                spawneffect->setPosition(newenemy->getPosition() - newenemy->getOrth() * 50);
-                spawneffect->create();
-            }
-        }
-    }
-
-    void SpaceShipAI::killEnemies(int num)
-    {
-        int i = 0;
-        for (ObjectList<SpaceShipAI>::iterator it = ObjectList<SpaceShipAI>::begin(); it; )
-        {
-            (it++)->kill();
-            if (num && i >= num)
-                break;
-        }
-    }
-
-    ColourValue SpaceShipAI::getProjectileColour() const
-    {
-        return this->teamColours_[this->getTeamNr()];
-    }
-
-    void SpaceShipAI::action()
-    {
-        float random;
-        float maxrand = 100.0f / ACTION_INTERVAL;
-
-        // search enemy
-        random = rnd(maxrand);
-        if (random < 15 && (!this->target_))
-            this->searchNewTarget();
-
-        // forget enemy
-        random = rnd(maxrand);
-        if (random < 5 && (this->target_))
-            this->forgetTarget();
-
-        // next enemy
-        random = rnd(maxrand);
-        if (random < 10 && (this->target_))
-            this->searchNewTarget();
-
-        // fly somewhere
-        random = rnd(maxrand);
-        if (random < 50 && (!this->bHasTargetPosition_ && !this->target_))
-            this->searchNewTargetPosition();
-
-        // stop flying
-        random = rnd(maxrand);
-        if (random < 10 && (this->bHasTargetPosition_ && !this->target_))
-            this->bHasTargetPosition_ = false;
-
-        // fly somewhere else
-        random = rnd(maxrand);
-        if (random < 30 && (this->bHasTargetPosition_ && !this->target_))
-            this->searchNewTargetPosition();
-
-        // shoot
-        random = rnd(maxrand);
-        if (random < 75 && (this->target_ && !this->bShooting_))
-            this->bShooting_ = true;
-
-        // stop shooting
-        random = rnd(maxrand);
-        if (random < 25 && (this->bShooting_))
-            this->bShooting_ = false;
-    }
-
-    void SpaceShipAI::damage(float damage)
-    {
-        this->health_ -= damage;
-        if (this->health_ <= 0)
-        {
-            this->kill();
-            SpaceShipAI::createEnemy(1);
-        }
-    }
-
-    void SpaceShipAI::kill()
-    {
-        if (Settings::showsGraphics())
-        {
-            ParticleSpawner* explosion = new ParticleSpawner("Orxonox/BigExplosion1part1", LODParticle::low, 3.0);
-            explosion->setPosition(this->getPosition());
-            explosion->getParticleInterface()->setKeepParticlesInLocalSpace(true);
-            explosion->setScale(4);
-            explosion->create();
-
-            explosion = new ParticleSpawner("Orxonox/BigExplosion1part2", LODParticle::normal, 3.0);
-            explosion->setPosition(this->getPosition());
-            explosion->getParticleInterface()->setKeepParticlesInLocalSpace(true);
-            explosion->setScale(4);
-            explosion->create();
-            explosion = new ParticleSpawner("Orxonox/BigExplosion1part2", LODParticle::high, 3.0);
-            explosion->setPosition(this->getPosition());
-            explosion->getParticleInterface()->setKeepParticlesInLocalSpace(true);
-            explosion->setScale(4);
-            explosion->create();
-
-            Vector3 ringdirection = Vector3(rnd(), rnd(), rnd());
-            ringdirection.normalise();
-            explosion = new ParticleSpawner("Orxonox/BigExplosion1part3", LODParticle::normal, 3.0, 0.5, 0, ringdirection);
-            explosion->setPosition(this->getPosition());
-            explosion->getParticleInterface()->setKeepParticlesInLocalSpace(true);
-            explosion->setScale(4);
-            explosion->create();
-            explosion = new ParticleSpawner("Orxonox/BigExplosion1part3", LODParticle::high, 3.0, 0.5, 0, ringdirection);
-            explosion->setPosition(this->getPosition());
-            explosion->getParticleInterface()->setKeepParticlesInLocalSpace(true);
-            explosion->setScale(4);
-            explosion->create();
-        }
-
-        delete this;
-    }
-
-    void SpaceShipAI::tick(float dt)
-    {
-        if (!this->isActive())
-            return;
-
-        if (this->target_)
-            this->aimAtTarget();
-
-        if (this->bHasTargetPosition_)
-            this->moveToTargetPosition(dt);
-
-        if (this->bShooting_ && this->isCloseAtTarget(2500) && this->isLookingAtTarget(Ogre::Math::PI / 20.0))
-            this->doFire();
-
-        SUPER(SpaceShipAI, tick, dt);
-    }
-
-    void SpaceShipAI::moveToTargetPosition(float dt)
-    {
-        Vector2 coord = get2DViewdirection(this->getPosition(), this->getDir(), this->getOrth(), this->targetPosition_);
-
-        float distance = (this->targetPosition_ - this->getPosition()).length();
-        if (this->target_ || distance > 50)
-        {
-            // Multiply with 0.8 to make them a bit slower
-            this->setMoveYaw(0.8 * sgn(coord.x) * coord.x*coord.x);
-            this->setMovePitch(0.8 * sgn(coord.y) * coord.y*coord.y);
-        }
-
-        if (this->target_ && distance < 1000 && this->getVelocity().squaredLength() > this->target_->getVelocity().squaredLength())
-            this->setMoveLongitudinal(-0.5); // They don't brake with full power to give the player a chance
-        else if (!this->target_ && distance <= this->getVelocity().length() / (2 * this->getTransAcc()))
-            this->setMoveLongitudinal(-1.0);
-        else
-            this->setMoveLongitudinal(0.8);
-    }
-
-    void SpaceShipAI::searchNewTargetPosition()
-    {
-        this->targetPosition_ = Vector3(rnd(-5000,5000), rnd(-5000,5000), rnd(-5000,5000));
-        this->bHasTargetPosition_ = true;
-    }
-
-    void SpaceShipAI::searchNewTarget()
-    {
-        this->targetPosition_ = this->getPosition();
-        this->forgetTarget();
-
-        for (ObjectList<SpaceShip>::iterator it = ObjectList<SpaceShip>::begin(); it; ++it)
-        {
-            if (it->getTeamNr() != this->getTeamNr())
-            {
-                float speed = this->getVelocity().length();
-                Vector3 distanceCurrent = this->targetPosition_ - this->getPosition();
-                Vector3 distanceNew = it->getPosition() - this->getPosition();
-                if (!this->target_ || it->getPosition().squaredDistance(this->getPosition()) * (1.5f + acos((this->getOrientation() * Ogre::Vector3::UNIT_X).dotProduct(distanceNew) / speed / distanceNew.length()) / (2 * Ogre::Math::PI))
-                        < this->targetPosition_.squaredDistance(this->getPosition()) * (1.5f + acos((this->getOrientation() * Ogre::Vector3::UNIT_X).dotProduct(distanceCurrent) / speed / distanceCurrent.length()) / (2 * Ogre::Math::PI)) + rnd(-250, 250))
-                {
-                    this->target_ = (*it);
-                    this->targetPosition_ = it->getPosition();
-                }
-            }
-        }
-    }
-
-    void SpaceShipAI::forgetTarget()
-    {
-        this->target_ = 0;
-        this->bShooting_ = false;
-    }
-
-    void SpaceShipAI::aimAtTarget()
-    {
-        if (!this->target_)
-            return;
-
-        this->targetPosition_ = getPredictedPosition(this->getPosition(), Projectile::getSpeed(), this->target_->getPosition(), this->target_->getOrientation() * this->target_->getVelocity());
-        this->bHasTargetPosition_ = (this->targetPosition_ != Vector3::ZERO);
-    }
-
-    bool SpaceShipAI::isCloseAtTarget(float distance)
-    {
-        if (!this->target_)
-            return (this->getPosition().squaredDistance(this->targetPosition_) < distance*distance);
-        else
-            return (this->getPosition().squaredDistance(this->target_->getPosition()) < distance*distance);
-    }
-
-    bool SpaceShipAI::isLookingAtTarget(float angle)
-    {
-        return (getAngle(this->getPosition(), this->getDir(), this->targetPosition_) < angle);
-    }
-
-    void SpaceShipAI::shipDied(SpaceShip* ship)
-    {
-        if (ship == this->target_)
-        {
-            this->forgetTarget();
-            this->searchNewTargetPosition();
-        }
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/SpaceShipAI.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/SpaceShipAI.h	(revision 1915)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _SpaceShipAI_H__
-#define _SpaceShipAI_H__
-
-#include "OrxonoxPrereqs.h"
-
-#include "SpaceShip.h"
-#include "tools/Timer.h"
-#include "util/Math.h"
-
-
-namespace orxonox
-{
-    const int NUM_AI_TEAMS = 3;
-
-    class SpaceShipAI : public SpaceShip
-    {
-        public:
-            SpaceShipAI();
-            virtual ~SpaceShipAI();
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
-            static void createEnemy(int num);
-            static void killEnemies(int num);
-            void shipDied(SpaceShip* ship);
-            void damage(float damage);
-            void kill();
-
-        private:
-            virtual ColourValue getProjectileColour() const;
-
-            void action();
-
-            void moveToTargetPosition(float dt);
-            void searchNewTargetPosition();
-            void forgetTarget();
-            void searchNewTarget();
-            void aimAtTarget();
-            bool isCloseAtTarget(float distance);
-            bool isLookingAtTarget(float angle);
-
-            Timer<SpaceShipAI> actionTimer_;
-
-            bool bHasTargetPosition_;
-            Vector3 targetPosition_;
-            SpaceShip* target_;
-            bool bShooting_;
-
-            ColourValue teamColours_[NUM_AI_TEAMS + 1];
-    };
-}
-
-#endif /* _SpaceShipAI_H__ */
Index: code/branches/objecthierarchy/src/orxonox/objects/WorldEntity.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/WorldEntity.cc	(revision 1915)
+++ 	(revision )
@@ -1,189 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-#include "WorldEntity.h"
-
-#include <string>
-#include <sstream>
-#include <OgreSceneManager.h>
-
-#include "tinyxml/tinyxml.h"
-#include "util/SubString.h"
-#include "core/CoreIncludes.h"
-#include "GraphicsEngine.h"
-#include "core/XMLPort.h"
-
-namespace orxonox
-{
-    CreateFactory(WorldEntity);
-
-    unsigned int WorldEntity::worldEntityCounter_s = 0;
-
-    WorldEntity::WorldEntity()
-    {
-        RegisterObject(WorldEntity);
-
-        if (GraphicsEngine::getInstance().getLevelSceneManager())
-        {
-            std::ostringstream name;
-            name << (WorldEntity::worldEntityCounter_s++);
-            this->setName("WorldEntity" + name.str());
-            this->node_ = GraphicsEngine::getInstance().getLevelSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
-
-            registerAllVariables();
-        }
-        else
-        {
-            this->node_ = 0;
-        }
-
-        this->bStatic_ = true;
-        this->velocity_ = Vector3(0, 0, 0);
-        this->acceleration_ = Vector3(0, 0, 0);
-        this->rotationAxis_ = Vector3(0, 1, 0);
-        this->rotationRate_ = 0;
-        this->momentum_ = 0;
-    }
-
-
-    WorldEntity::~WorldEntity()
-    {
-        if (this->isInitialized())
-        {
-            this->getNode()->removeAndDestroyAllChildren();
-            GraphicsEngine::getInstance().getLevelSceneManager()->destroySceneNode(this->getName());
-        }
-    }
-
-    void WorldEntity::tick(float dt)
-    {
-        if (!this->bStatic_ && this->isActive())
-        {
-//             COUT(4) << "acceleration: " << this->acceleration_ << " velocity: " << this->velocity_ << std::endl;
-            this->velocity_ += (dt * this->acceleration_);
-            this->translate(dt * this->velocity_, Ogre::Node::TS_LOCAL);
-
-            this->rotationRate_ += (dt * this->momentum_);
-            this->rotate(this->rotationAxis_, dt * this->rotationRate_);
-            //COUT(3) << "rotationrate: " << this->rotationRate_.valueDegrees() << " momentum: " << this->momentum_.valueDegrees() << std::endl;
-        }
-    }
-
-    void WorldEntity::setYawPitchRoll(const Degree& yaw, const Degree& pitch, const Degree& roll)
-    {
-        this->yaw(yaw);
-        this->pitch(pitch);
-        this->roll(roll);
-    }
-
-    /**
-        @brief XML loading and saving.
-        @param xmlelement The XML-element
-        @param loading Loading (true) or saving (false)
-        @return The XML-element
-    */
-    void WorldEntity::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(WorldEntity, XMLPort, xmlelement, mode);
-
-        XMLPortParamExternTemplate(WorldEntity, Ogre::Node, this->node_, "position", setPosition, getPosition, xmlelement, mode, const Vector3&);
-        XMLPortParamLoadOnly(WorldEntity, "direction", setDirectionSimple, xmlelement, mode);
-        XMLPortParamLoadOnly(WorldEntity, "yawpitchroll", setYawPitchRoll, xmlelement, mode);
-        XMLPortParam(WorldEntity, "scale", setScale, getScale, xmlelement, mode);
-        XMLPortParamTemplate(WorldEntity, "rotationAxis", setRotationAxis, getRotationAxis, xmlelement, mode, const Vector3&);
-        XMLPortParam(WorldEntity, "rotationRate", setRotationRate, getRotationRate, xmlelement, mode);
-
-        XMLPortObject(WorldEntity, WorldEntity, "attached", attachWorldEntity, getAttachedWorldEntity, xmlelement, mode);
-
-        WorldEntity::create();
-    }
-
-
-    void WorldEntity::registerAllVariables()
-    {
-      // register inheritec variables from BaseObject
-      registerVar( (void*) &(this->bActive_), sizeof(this->bActive_), network::DATA, 0x3);
-      registerVar( (void*) &(this->bVisible_), sizeof(this->bVisible_), network::DATA, 0x3);
-      // register coordinates
-      registerVar( (void*) &(this->getPosition().x), sizeof(this->getPosition().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getPosition().y), sizeof(this->getPosition().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getPosition().z), sizeof(this->getPosition().z), network::DATA, 0x3);
-      // register orientation
-      registerVar( (void*) &(this->getOrientation().w), sizeof(this->getOrientation().w), network::DATA, 0x3);
-      registerVar( (void*) &(this->getOrientation().x), sizeof(this->getOrientation().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getOrientation().y), sizeof(this->getOrientation().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getOrientation().z), sizeof(this->getOrientation().z), network::DATA, 0x3);
-      // register velocity_
-      registerVar( (void*) &(this->getVelocity().x), sizeof(this->getVelocity().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getVelocity().y), sizeof(this->getVelocity().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getVelocity().z), sizeof(this->getVelocity().z), network::DATA, 0x3);
-      // register rotationAxis/rate
-      registerVar( (void*) &(this->getRotationRate()), sizeof(this->getRotationRate()), network::DATA, 0x3);
-      registerVar( (void*) &(this->getRotationAxis().x), sizeof(this->getRotationAxis().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getRotationAxis().y), sizeof(this->getRotationAxis().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getRotationAxis().z), sizeof(this->getRotationAxis().z), network::DATA, 0x3);
-      // register scale of node
-      registerVar( (void*) &(this->getScale3D().x), sizeof(this->getScale3D().x), network::DATA, 0x3);
-      registerVar( (void*) &(this->getScale3D().y), sizeof(this->getScale3D().y), network::DATA, 0x3);
-      registerVar( (void*) &(this->getScale3D().z), sizeof(this->getScale3D().z), network::DATA, 0x3);
-      //register staticity
-      registerVar( (void*) &(this->bStatic_), sizeof(this->bStatic_), network::DATA, 0x3);
-      //register acceleration & momentum
-//       registerVar( (void*) &(this->getAcceleration().x), sizeof(this->getAcceleration().x), network::DATA, 0x2);
-//       registerVar( (void*) &(this->getAcceleration().y), sizeof(this->getAcceleration().y), network::DATA, 0x2);
-//       registerVar( (void*) &(this->getAcceleration().z), sizeof(this->getAcceleration().z), network::DATA, 0x2);
-//       registerVar( (void*) &(this->getMomentum()), sizeof(this->getMomentum()), network::DATA, 0x2); // only backsync
-    }
-
-    void WorldEntity::attachWorldEntity(WorldEntity* entity)
-    {
-        this->attachedWorldEntities_.push_back(entity);
-        this->attachObject(entity);
-    }
-
-    const WorldEntity* WorldEntity::getAttachedWorldEntity(unsigned int index) const
-    {
-        if (index < this->attachedWorldEntities_.size())
-            return this->attachedWorldEntities_[index];
-        else
-            return 0;
-    }
-
-    void WorldEntity::attachObject(const WorldEntity& obj) const
-    {
-        GraphicsEngine::getInstance().getLevelSceneManager()->getRootSceneNode()->removeChild(obj.getNode());
-        this->getNode()->addChild(obj.getNode());
-    }
-
-    void WorldEntity::attachObject(WorldEntity* obj) const
-    {
-        GraphicsEngine::getInstance().getLevelSceneManager()->getRootSceneNode()->removeChild(obj->getNode());
-        this->getNode()->addChild(obj->getNode());
-    }
-}
Index: code/branches/objecthierarchy/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/branches/objecthierarchy/src/orxonox/objects/WorldEntity.h	(revision 1915)
+++ 	(revision )
@@ -1,199 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *                    > www.orxonox.net <
- *
- *
- *   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:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-#ifndef _WorldEntity_H__
-#define _WorldEntity_H__
-
-#include "OrxonoxPrereqs.h"
-#include <OgrePrerequisites.h>
-
-#include <OgreSceneNode.h>
-#include "util/Math.h"
-#include "network/Synchronisable.h"
-#include "core/XMLIncludes.h"
-#include "core/BaseObject.h"
-#include "Tickable.h"
-#include "tools/Mesh.h"
-
-namespace orxonox
-{
-    class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
-    {
-        public:
-            WorldEntity();
-            virtual ~WorldEntity();
-
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual inline bool create(){ return Synchronisable::create(); }
-
-            void attachWorldEntity(WorldEntity* entity);
-            const WorldEntity* getAttachedWorldEntity(unsigned int index) const;
-
-            inline Ogre::SceneNode* getNode() const
-                { return this->node_; }
-
-            inline void setNode(Ogre::SceneNode* node)
-                { this->node_ = node; }
-
-            inline void setPosition(const Vector3& pos)
-                { this->node_->setPosition(pos); }
-            inline void setPosition(Real x, Real y, Real z)
-                { this->node_->setPosition(x, y, z); }
-            inline const Vector3& getPosition() const
-                { return this->node_->getPosition(); }
-            inline const Vector3& getWorldPosition() const
-                { return this->node_->getWorldPosition(); }
-
-            inline void translate(const Vector3& d, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
-                { this->node_->translate(d, relativeTo); }
-            inline void translate(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
-                { this->node_->translate(x, y, z, relativeTo); }
-            inline void translate(const Matrix3& axes, const Vector3& move, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
-                { this->node_->translate(axes, move, relativeTo); }
-            inline void translate(const Matrix3& axes, Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_PARENT)
-                { this->node_->translate(axes, x, y, z, relativeTo); }
-
-            inline void yaw(const Radian& angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
-                { this->node_->yaw(angle, relativeTo); }
-            inline void pitch(const Radian& angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
-                { this->node_->pitch(angle, relativeTo); }
-            inline void roll(const Radian& angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
-                { this->node_->roll(angle, relativeTo); }
-            void setYawPitchRoll(const Degree& yaw, const Degree& pitch, const Degree& roll);
-
-            inline void setYaw(const Degree& angle)
-                { this->node_->yaw(angle, Ogre::Node::TS_LOCAL); }
-            inline void setPitch(const Degree& angle)
-                { this->node_->pitch(angle, Ogre::Node::TS_LOCAL); }
-            inline void setRoll(const Degree& angle)
-                { this->node_->roll(angle, Ogre::Node::TS_LOCAL); }
-
-            inline const Ogre::Quaternion& getOrientation()
-              { return this->node_->getOrientation(); }
-            inline const Ogre::Quaternion& getWorldOrientation()
-              { return this->node_->getWorldOrientation(); }
-            inline void setOrientation(const Ogre::Quaternion& quat)
-              { this->node_->setOrientation(quat); }
-            inline void rotate(const Vector3& axis, const Radian& angle, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL)
-              { this->node_->rotate(axis, angle, relativeTo); }
-            inline void setDirectionSimple(Real x, Real y, Real z)
-              { this->setDirection(x, y, z); }
-            inline void setDirection(Real x, Real y, Real z, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3& localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
-              { this->node_->setDirection(x, y, z, relativeTo, localDirectionVector); }
-            inline void setDirection(const Vector3& vec, Ogre::Node::TransformSpace relativeTo=Ogre::Node::TS_LOCAL, const Vector3& localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
-              { this->node_->setDirection(vec, relativeTo, localDirectionVector); }
-            inline void lookAt(const Vector3& targetPoint, Ogre::Node::TransformSpace relativeTo, const Vector3& localDirectionVector=Vector3::NEGATIVE_UNIT_Z)
-              { this->node_->lookAt(targetPoint, relativeTo, localDirectionVector); }
-
-            inline void setScale3D(const Vector3 &scale)
-              { this->node_->setScale(scale); }
-            inline void setScale3D(Real x, Real y, Real z)
-              { this->node_->setScale(x, y, z); }
-            inline const Vector3& getScale3D(void) const
-              { return this->node_->getScale(); }
-            inline void setScale(float scale)
-              { this->node_->setScale(scale, scale, scale); }
-            inline float getScale() const
-              { Vector3 scale = this->getScale3D(); return (scale.x == scale.y && scale.x == scale.z) ? scale.x : 1; }
-            inline void scale3D(const Vector3 &scale)
-              { this->node_->scale(scale); }
-            inline void scale3D(Real x, Real y, Real z)
-              { this->node_->scale(x, y, z); }
-            inline void scale(Real scale)
-              { this->node_->scale(scale, scale, scale); }
-
-            void attachObject(const WorldEntity& obj) const;
-            void attachObject(WorldEntity* obj) const;
-            inline void attachObject(Ogre::MovableObject* obj) const
-              { this->node_->attachObject(obj); }
-            inline void attachObject(Mesh& mesh) const
-              { this->node_->attachObject(mesh.getEntity()); }
-            inline void detachObject(Ogre::MovableObject* obj) const
-              { this->node_->detachObject(obj); }
-            inline void detachAllObjects() const
-              { this->node_->detachAllObjects(); }
-
-            inline void setVelocity(const Vector3& velocity)
-                { this->velocity_ = velocity; }
-            inline void setVelocity(Real x, Real y, Real z)
-                { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; }
-            inline const Vector3& getVelocity() const
-                { return this->velocity_; }
-
-            inline void setAcceleration(const Vector3& acceleration)
-                { this->acceleration_ = acceleration; }
-            inline void setAcceleration(Real x, Real y, Real z)
-                { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; }
-            inline const Vector3& getAcceleration() const
-                { return this->acceleration_; }
-
-            inline void setRotationAxis(const Vector3& axis)
-                { this->rotationAxis_ = axis; this->rotationAxis_.normalise(); }
-            inline void setRotationAxis(Real x, Real y, Real z)
-                { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; rotationAxis_.normalise(); }
-            inline const Vector3& getRotationAxis() const
-                { return this->rotationAxis_; }
-
-//            inline void setRotationRate(const Radian& angle)
-//                { this->rotationRate_ = angle; }
-            inline void setRotationRate(const Degree& angle)
-                { this->rotationRate_ = angle; this->setStatic(angle == Degree(0)); }
-            inline const Radian& getRotationRate() const
-                { return this->rotationRate_; }
-
-            inline void setMomentum(const Radian& angle)
-                { this->momentum_ = angle; }
-            inline void setMomentum(const Degree& angle)
-                { this->momentum_ = angle; }
-            inline const Radian& getMomentum() const
-                { return this->momentum_; }
-
-            inline void setStatic(bool bStatic)
-                { this->bStatic_ = bStatic; }
-            inline bool isStatic() const
-                { return this->bStatic_; }
-
-        protected:
-            void registerAllVariables();
-
-            Vector3 velocity_;
-            Vector3 acceleration_;
-            Vector3 rotationAxis_;
-            Radian rotationRate_;
-            Radian momentum_;
-
-        private:
-            static unsigned int worldEntityCounter_s;
-            Ogre::SceneNode* node_;
-            bool bStatic_;
-            std::vector<WorldEntity*> attachedWorldEntities_;
-    };
-}
-
-#endif /* _WorldEntity_H__ */
Index: code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 1916)
@@ -41,6 +41,4 @@
 #include "core/XMLPort.h"
 #include "objects/Radar.h"
-#include "objects/SpaceShip.h"
-#include "objects/Projectile.h"
 #include "objects/CameraHandler.h"
 
@@ -149,8 +147,10 @@
         float textLength = convertToString(dist).size() * navText_->getCharHeight() * 0.3;
 
+/*
         Ogre::Camera* navCam = SpaceShip::getLocalShip()->getCamera()->cam_;
         Matrix4 transformationMatrix = navCam->getProjectionMatrix() * navCam->getViewMatrix();
+*/
         // transform to screen coordinates
-        Vector3 pos = transformationMatrix * Radar::getInstance().getFocus()->getWorldPosition();
+        Vector3 pos = /*transformationMatrix * */Radar::getInstance().getFocus()->getWorldPosition();
 
         bool outOfView;
@@ -224,8 +224,8 @@
         {
             // object is in view
-
+/*
             Vector3 aimpos = transformationMatrix * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
                     Projectile::getSpeed(), Radar::getInstance().getFocus()->getWorldPosition(), Radar::getInstance().getFocus()->getOrientedVelocity());
-
+*/
             if (wasOutOfView_)
             {
@@ -240,7 +240,8 @@
 
             aimMarker_->show();
+/*
             aimMarker_->setLeft((aimpos.x + 1.0 - aimMarker_->getWidth()) * 0.5);
             aimMarker_->setTop((-aimpos.y + 1.0 - aimMarker_->getHeight()) * 0.5);
-
+*/
             navText_->setLeft((pos.x + 1.0 + navMarker_->getWidth()) * 0.5);
             navText_->setTop((-pos.y + 1.0 + navMarker_->getHeight()) * 0.5);
@@ -250,7 +251,9 @@
     float HUDNavigation::getDist2Focus() const
     {
+/*
         if (Radar::getInstance().getFocus())
             return (Radar::getInstance().getFocus()->getWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
         else
+*/
             return 0;
     }
Index: code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDRadar.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDRadar.cc	(revision 1916)
@@ -38,6 +38,4 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "objects/SpaceShip.h"
-#include "objects/WorldEntity.h"
 #include "objects/Radar.h"
 #include "tools/TextureGenerator.h"
@@ -91,4 +89,5 @@
     void HUDRadar::displayObject(RadarViewable* object, bool bIsMarked)
     {
+/*
         const WorldEntity* wePointer = object->getWorldEntity();
 
@@ -100,5 +99,5 @@
             return;
         }
-
+*/
         // try to find a panel already created
         Ogre::PanelOverlayElement* panel;
@@ -126,5 +125,5 @@
         }
         panel->show();
-
+/*
         // set size to fit distance...
         float distance = (wePointer->getWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
@@ -144,4 +143,5 @@
             this->marker_->setPosition((1.0 + coord.x - size * 1.5) * 0.5, (1.0 - coord.y - size * 1.5) * 0.5);
         }
+*/
     }
 
Index: code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 1915)
+++ code/branches/objecthierarchy/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 1916)
@@ -31,5 +31,4 @@
 #include "HUDSpeedBar.h"
 #include "core/CoreIncludes.h"
-#include "objects/SpaceShip.h"
 
 namespace orxonox
@@ -49,4 +48,5 @@
     void HUDSpeedBar::tick(float dt)
     {
+/*
         SpaceShip* ship = SpaceShip::getLocalShip();
         if (ship)
@@ -57,4 +57,5 @@
                 this->setValue(value);
         }
+*/
     }
 }
