Index: code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.cc
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.cc	(revision 2110)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.cc	(revision 2136)
@@ -57,9 +57,7 @@
                 }
                 break;
-            default:;
             }
         case Useable:
             return CheckifSpace();
-        case default:;
         }
         return true;
@@ -90,3 +88,49 @@
         }
     }
+
+    /*Adds the Item to the Ship*/
+    void ShipEquipment::AddItem(Shipitem* toAddItem)
+    {
+        if(CheckifValid(toAddItem)==true)
+        {
+            switch(toAddItem.CheckType()){
+                case Permanent:
+                    Equipment.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
+                    break;
+                case Usable:
+                    Usable.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
+                    break;
+                case Trunk:
+                    Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
+                    break;
+            }
+        }
+        else if(toAddItem.CheckType()==Permanent)
+        {
+            if(CheckifSpace()==true)
+                Trunk.insert ( pair<std::string, ShipItem*>(toAddItem.itemname,toAddItem) );
+        }
+    }
+
+    void ShipEquipment::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 ShipEquipment::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/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.h	(revision 2110)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipEquipmentClasses.h	(revision 2136)
@@ -27,4 +27,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:
Index: code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.cc
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.cc	(revision 2110)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.cc	(revision 2136)
@@ -5,10 +5,20 @@
     itemtype ShipItem::CheckType()
     {
-        return this.type;
+        return this->type;
     }
 
     subItemTypePermanent CheckSubType()
     {
-        return this.subtype_permanent;
+        return this->subtype_permanent;
     }
+
+    subItemTypePowerups CheckSubType()
+    {
+        return this->subtype_powerups;
+    }
+    subItemTypeUsable CheckSubType()
+    {
+        return this->subtype_usables;
+    }
+
 }
Index: code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.h
===================================================================
--- code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.h	(revision 2110)
+++ code/branches/pickups2/src/orxonox/objects/pickup/ShipItem.h	(revision 2136)
@@ -21,5 +21,5 @@
         public:
             itemType CheckType();
-            virtual
+            //virtual ChecksubType();
 
         private:
@@ -27,5 +27,4 @@
             string itemname;
     };
-
 
     /* Useables are Items the Player can choose when to activate and then show an instant action/effect
@@ -37,5 +36,5 @@
             Rockets,
             Repairkits,
-            Triggers,		//trigger events usable by the player (Quests f.exp.)
+            Triggers,       //trigger events usable by the player (Quests f.exp.)
             Boosters,
             Shields,
