Index: code/branches/pickups2/src/orxonox/objects/pickup/Item.cc
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/Item.cc	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/pickup/Item.cc	(revision 2289)
@@ -29,7 +29,31 @@
 void Item::addTo (Pawn* player)
 {
-	//player->Equipment.insert ( std::pair<std::string, Item*>(this->itemname,this) );
+	if(checkSlot(player)==true)
+	player->pickUp.Equipment.insert ( std::pair<std::string, Item*>(this->getName(),this) );
+	else
+	COUT(3) << "swap?" << std::endl;
 }
-
+bool Item::remove(Pawn* player)
+{
+ 	if(player->pickUp.Equipment.find(this->getName())!= player->pickUp.Equipment.end())
+ 	{
+ 	std::multimap<std::string,Item*>::iterator it;
+ 	it=player->pickUp.Equipment.find(this->getName());
+  	player->pickUp.Equipment.erase (it);
+  	return true;
+  	}
+  	else
+  	return false;
+}
+bool Item::checkSlot(Pawn* player)
+{
+	std::multimap<std::string,Item*>::iterator it;
+	for ( it=player->pickUp.Equipment.begin() ; it != player->pickUp.Equipment.end(); it++ )
+	{
+	if((*it).second->playerBaseClass_==this->playerBaseClass_)
+	return false;
+	}
+	return true;
+}
 void Item::setPlayerBaseClassName(const std::string& name)
 {
Index: code/branches/pickups2/src/orxonox/objects/pickup/Item.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/Item.h	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/pickup/Item.h	(revision 2289)
@@ -12,9 +12,10 @@
 	Item( BaseObject* creator);
 	virtual ~Item();
-
+	bool checkSlot(Pawn* player);
 	virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
+	
 	virtual bool pickedUp(Pawn* player) { return true; }
 	virtual bool dropped(Pawn* player) { return true; } //erst bei festen Items
+	bool remove(Pawn* player);
 	void addTo(Pawn* player);
 
@@ -28,5 +29,5 @@
 	const std::string& getPlayerBaseClassName() const;
 
-	Identifier* playerBaseClass_; //class(...)
+	Identifier* playerBaseClass_;
 	};
 }
Index: code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.cc
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.cc	(revision 2289)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.cc	(revision 2289)
@@ -0,0 +1,10 @@
+
+#include "ShipEquipment.h"
+
+namespace orxonox
+{
+	ShipEquipmentClass::int getSpace()
+	{
+	return Usable.size()+Trunk.size();
+	}
+}
Index: code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.h	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipment.h	(revision 2289)
@@ -3,5 +3,6 @@
 #define _ShipEquipment_H__
 #include <string>
-#include <multimap>
+#include <map>
+#include "Item.h"
 
 
@@ -11,4 +12,10 @@
 
 
+/*          std::map<std::itemtype, Item*> EQClasses;
+            EQClasses["jacke"] = 0;
+            Item* item = itemMap_["jacke"];
+
+           if (itemMap_["jacke"])
+           if (itemMap_.find("jacke") != itemMap_.end()) */
 namespace orxonox
 {
@@ -16,11 +23,15 @@
     {
         public:
-            void AddItem(Shipitem toAddItem);
-            void RemoveItem(Shipitem toRemoveItem);
-            bool CheckifValid(Shipitem toBeChecked);
-            int
+	inline int getSpace()
+	{
+	return Usable.size()+Trunk.size();
+	};
+
+//	const std::multimap<std::string, Item*>& getEquipment() const { return this->Equipment; }
 
         private:
             std::multimap<std::string, Item*> Equipment;
+            std::multimap<std::string, Item*> Usable;
+            std::multimap<std::string, Item*> Trunk;
     };
 }
@@ -39,7 +50,3 @@
 
 
-
-
-
-
 #endif
Index: code/branches/pickups2/src/orxonox/objects/pickup/Turbo.cc
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/Turbo.cc	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/pickup/Turbo.cc	(revision 2289)
@@ -19,4 +19,5 @@
 		this->duration_ = 0;
 		this->accboost_ = 1;
+		this->rotacc_= 0;
 	}
 
@@ -32,4 +33,6 @@
         XMLPortParam(Turbo, "duration", setDuration, getDuration, xmlelement, mode);
         XMLPortParam(Turbo, "accboost", setAccBoost, getAccBoost, xmlelement, mode);
+	XMLPortParam(Turbo, "rotacc", setRotAcc, getRotAcc, xmlelement, mode);
+        
     }
 
@@ -53,4 +56,6 @@
 	ship->setMaxSpeed( ship->getMaxSpeed() - this->boost_);
 	ship->setTransAcc( ship->getTransAcc()/this->accboost_);
+	ship->setMaxRotation( ship->getMaxRotation()-this->rotacc_);
+	ship->setRotAcc( ship->getRotAcc()-this->rotacc_);
 	COUT(3)<<"PickUp Timer expired"<<std::endl;
 	}
@@ -60,4 +65,6 @@
 	ship->setMaxSpeed( ship->getMaxSpeed() + this->boost_);
 	ship->setTransAcc( ship->getTransAcc()*this->accboost_);
+	ship->setMaxRotation( ship->getMaxRotation()+this->rotacc_);
+	ship->setRotAcc( ship->getRotAcc()+this->rotacc_);
 	if( this->duration_ != 0)
 	{
@@ -72,7 +79,9 @@
 		if (this->duration_ == 0)
 		{
-			//player->Equipment.erase ( std::pair<std::string, Item*>(this->itemname,this) );
+			if(remove(player)==true);
+			{
 			SpaceShip* ship = dynamic_cast <SpaceShip*>(player);
 			this->unsetSpeedBoost(ship);
+			}	
 		}
 		return true;
Index: code/branches/pickups2/src/orxonox/objects/pickup/Turbo.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/Turbo.h	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/pickup/Turbo.h	(revision 2289)
@@ -5,4 +5,5 @@
 #include "Item.h"
 #include "OrxonoxPrereqs.h"
+#include "util/Math.h"
 
 namespace orxonox
@@ -33,4 +34,9 @@
 		{ return this->duration_; }
 
+	inline void setRotAcc(Degree rotacc)
+		{ this->rotacc_ = rotacc; }
+	inline Degree getRotAcc() const
+		{ return this->rotacc_; }
+
 	
 	inline void setAccBoost(float accboost)
@@ -44,4 +50,5 @@
 	float duration_;
 	float accboost_;
+	Degree rotacc_;
 	};
 }
Index: code/branches/pickups2/src/orxonox/objects/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/worldentities/pawns/Pawn.h	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/worldentities/pawns/Pawn.h	(revision 2289)
@@ -31,5 +31,5 @@
 
 #include "OrxonoxPrereqs.h"
-
+#include "objects/pickup/ShipEquipment.h"
 #include "objects/worldentities/ControllableEntity.h"
 
@@ -75,5 +75,5 @@
 
             virtual void fire();
-
+            ShipEquipment pickUp;
             virtual void postSpawn();
 
@@ -83,4 +83,5 @@
 
             bool bAlive_;
+            
 
             float health_;
Index: code/branches/pickups2/src/orxonox/objects/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/worldentities/pawns/SpaceShip.h	(revision 2288)
+++ code/branches/pickups2/src/orxonox/objects/worldentities/pawns/SpaceShip.h	(revision 2289)
@@ -74,10 +74,10 @@
             inline float getMaxSecondarySpeed() const
                 { return this->maxSecondarySpeed_; }
-            inline float getMaxRotation() const
-                { return this->maxRotation_.valueDegrees(); }
+            inline const Degree& getMaxRotation() const
+                { return this->maxRotation_; }
             inline float getTransAcc() const
                 { return this->translationAcceleration_; }
-            inline float getRotAcc() const
-                { return this->rotationAcceleration_.valueDegrees(); }
+            inline const Degree& getRotAcc() const
+                { return this->rotationAcceleration_; }
             inline float getTransDamp() const
                 { return this->translationDamping_; }
@@ -90,5 +90,4 @@
             float translationAcceleration_;
             float translationDamping_;
-
             Degree maxRotation_;
             Degree rotationAcceleration_;
