Index: code/branches/pickups/ShipEquipmentClasses.h
===================================================================
--- code/branches/pickups/ShipEquipmentClasses.h	(revision 2128)
+++ code/branches/pickups/ShipEquipmentClasses.h	(revision 2128)
@@ -0,0 +1,48 @@
+
+#ifndef _ShipEquipment_H__
+#define _ShipEquipment_H__
+#include <string>
+#include "SpaceShip.h"
+#include <map>
+
+
+
+
+
+           
+           /* std::map<std::itemtype, Item*> EQClasses;
+           EQClasses["jacke"] = 0;
+           
+           Item* item = itemMap_["jacke"];
+           
+           if (itemMap_["jacke"])
+           if (itemMap_.find("jacke") != itemMap_.end()) */
+namespaces orxonox{
+	
+	class _OrxonoxExport ShipEquipment{
+	public:
+		void AddItem(Shipitem* toAddItem);
+		void RemoveItem(Shipitem* toRemoveItem);
+		bool CheckifValid(Shipitem* toBeChecked);
+		int 
+	private:
+		std::map<std::string, Item*> Shipitems;
+		
+				
+	
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#endif
Index: code/branches/pickups/ShipItem.cpp
===================================================================
--- code/branches/pickups/ShipItem.cpp	(revision 2128)
+++ code/branches/pickups/ShipItem.cpp	(revision 2128)
@@ -0,0 +1,17 @@
+#include "Shipitem.h"
+
+
+namespace orxonox{
+
+itemtype CheckType()
+{
+	return This.type
+};
+
+
+
+
+
+
+}	
+	
Index: code/branches/pickups/ShipItem.h
===================================================================
--- code/branches/pickups/ShipItem.h	(revision 2128)
+++ code/branches/pickups/ShipItem.h	(revision 2128)
@@ -0,0 +1,41 @@
+#ifndef _ShipItems_H__
+#define _ShipItems_H__
+#include <string>
+#include "SpaceShip.h"
+#include <map>
+#include "ShipEquipmentClasses.h"
+
+enum itemType{ //Diffrent Types of Items
+	
+		Usable,
+		Powerups,
+		Permanent,
+		};
+
+namespace orxonox{
+
+
+
+
+Class _OrxonoxExport ShipItem{
+	
+	public:
+		itemType CheckType();
+	 
+	private:
+		itemType type; 
+		
+	
+
+
+
+
+
+
+
+
+
+
+
+
+#endif
Index: code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.cc
===================================================================
--- code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.cc	(revision 2127)
+++ code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.cc	(revision 2128)
@@ -63,11 +63,11 @@
 		switch(toAddItem.CheckType()){
 			case Permanent:
-				Equipment.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,*toAddItem) );
+				Equipment.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
 				break;
 			case Usable:
-				Usable.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,*toAddItem) );
+				Usable.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
 				break;
 			case Trunk:
-				Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,*toAddItem) );
+				Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
 				break;
 		}
@@ -76,7 +76,29 @@
 	else if(toAddItem.CheckType()==Permanent){
 		if(CheckifSpace()==true)
-			Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,*toAddItem) );
+			Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
 	
 	}
 		
 }
+
+void SwitchItem(Permanent* toSwitchItem){
+	multimap<string, ShipItem*>::iterator it;
+	string equippedname;
+	equippedname=GetNameofPermanent(toSwitchItem.CheckSubType());
+	it=Equipment.find(equippedname);
+	Trunk.insert (find(equippedname));
+	Equipment.erase (it);
+	Equipment.insert(pair<std::string, ShipItem*>(toSwitchItem.itemname,toSwitchItem) 
+			
+}
+
+string GetNameofPermanent (subItemTypePermanent NametoGet){
+		multimap<string, ShipItem*>::iterator it;
+		for ( it=Equipment.begin() ; it != Equipment.end(); it++ ){
+			if((*it).second->CheckSubType()==NametoGet){
+			return (*it).first.itemname;
+			}
+		
+		}
+		return 0;
+}
Index: code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.h
===================================================================
--- code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.h	(revision 2127)
+++ code/branches/pickups/src/orxonox/objects/pickup/ShipEquipmentClasses.h	(revision 2128)
@@ -26,4 +26,6 @@
 		bool CheckifValid(Shipitem* toBeChecked);
 		bool CheckifSpace();
+		void SwitchItem(Permanent* toSwitchItem);
+		string GetNameofPermanent (subItemTypePermanent NametoGet); //holt den Namen des getragenen Items im jeweiligen Slot.
 	private:
 		multimap<std::string, ShipItem*> Equipment;
Index: code/branches/pickups/src/orxonox/objects/pickup/ShipItem.cc
===================================================================
--- code/branches/pickups/src/orxonox/objects/pickup/ShipItem.cc	(revision 2127)
+++ code/branches/pickups/src/orxonox/objects/pickup/ShipItem.cc	(revision 2128)
@@ -12,3 +12,13 @@
         return this.subtype_permanent;
     }
+
+    subItemTypePowerups CheckSubType()
+    {
+        return this.subtype_powerups;
+    }
+    subItemTypeUsable CheckSubType()
+    {
+        return this.subtype_usables;
+    }
+
 }
Index: code/branches/pickups/src/orxonox/objects/pickup/ShipItem.h
===================================================================
--- code/branches/pickups/src/orxonox/objects/pickup/ShipItem.h	(revision 2127)
+++ code/branches/pickups/src/orxonox/objects/pickup/ShipItem.h	(revision 2128)
@@ -20,5 +20,5 @@
 	public:
 		itemType CheckType();
-		virtual
+		//virtual ChecksubType();
 
 	private:
