[Orxonox-commit 4647] r9318 - in code/branches/presentation2012merge: data/gui/scripts data/levels data/levels/includes data/levels/templates src/modules/pickup src/modules/pickup/items src/orxonox src/orxonox/interfaces

landauf at orxonox.net landauf at orxonox.net
Wed Jul 18 22:36:25 CEST 2012


Author: landauf
Date: 2012-07-18 22:36:24 +0200 (Wed, 18 Jul 2012)
New Revision: 9318

Removed:
   code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.cc
   code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.h
   code/branches/presentation2012merge/src/orxonox/pickup/
Modified:
   code/branches/presentation2012merge/data/gui/scripts/PickupInventory.lua
   code/branches/presentation2012merge/data/levels/includes/pickups.oxi
   code/branches/presentation2012merge/data/levels/pickups.oxw
   code/branches/presentation2012merge/data/levels/presentation09b.oxw
   code/branches/presentation2012merge/data/levels/presentationFS10.oxw
   code/branches/presentation2012merge/data/levels/presentationHS09.oxw
   code/branches/presentation2012merge/data/levels/templates/pickupRepresentationTemplates.oxt
   code/branches/presentation2012merge/src/modules/pickup/CMakeLists.txt
   code/branches/presentation2012merge/src/modules/pickup/Pickup.cc
   code/branches/presentation2012merge/src/modules/pickup/Pickup.h
   code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc
   code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h
   code/branches/presentation2012merge/src/modules/pickup/PickupManager.cc
   code/branches/presentation2012merge/src/modules/pickup/PickupManager.h
   code/branches/presentation2012merge/src/modules/pickup/PickupPrereqs.h
   code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.cc
   code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.h
   code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc
   code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h
   code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc
   code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h
   code/branches/presentation2012merge/src/orxonox/CMakeLists.txt
   code/branches/presentation2012merge/src/orxonox/OrxonoxPrereqs.h
   code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc
   code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h
Log:
removed PickupIdentifier for a number of reasons (I talked to Damian about it before)
a pickup now references the PickupRepresentation by name with the "representation" attribute

Modified: code/branches/presentation2012merge/data/gui/scripts/PickupInventory.lua
===================================================================
--- code/branches/presentation2012merge/data/gui/scripts/PickupInventory.lua	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/gui/scripts/PickupInventory.lua	2012-07-18 20:36:24 UTC (rev 9318)
@@ -107,7 +107,7 @@
 end
 
 function P.createPickupEntry(index, pickup)
-    local representation = orxonox.PickupManager:getInstance():getPickupRepresentation(pickup.pickup)
+    local representation = orxonox.PickupManager:getInstance():getRepresentation(pickup.representationName)
 
     local name = "orxonox/PickupInventory/Box/Pickup" .. index
 
@@ -192,7 +192,7 @@
 
 function P.createDetailsWindow(pickupIndex)
     local pickup = P.pickupsList[pickupIndex]
-    local representation = orxonox.PickupManager:getInstance():getPickupRepresentation(pickup.pickup)
+    local representation = orxonox.PickupManager:getInstance():getRepresentation(pickup.representationName)
 
     local index = P.getNewDetailNumber()
     local name = "orxonox/PickupInventory/Details" .. index

Modified: code/branches/presentation2012merge/data/levels/includes/pickups.oxi
===================================================================
--- code/branches/presentation2012merge/data/levels/includes/pickups.oxi	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/includes/pickups.oxi	2012-07-18 20:36:24 UTC (rev 9318)
@@ -2,280 +2,207 @@
 <!-- Shield pickups -->
 
 <PickupRepresentation
+    name = "smallshieldpickup"
     pickupName = "Small Shield Pickup"
     pickupDescription = "Gives you a small-sized shield for 30 seconds."
     inventoryRepresentation = "SmallShield"
     spawnerTemplate = "smallshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=smallshieldpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediumshieldpickup"
     pickupName = "Medium Shield Pickup"
     pickupDescription = "Gives you a medium-sized shield for 30 seconds."
     inventoryRepresentation = "MediumShield"
     spawnerTemplate = "mediumshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=mediumshieldpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "hugeshieldpickup"
     pickupName = "Huge Shield Pickup"
     pickupDescription = "Gives you a big shield for 60 seconds."
     inventoryRepresentation = "HugeShield"
     spawnerTemplate = "hugeshieldpickupRepresentation"
->
-    <pickup>
-        <ShieldPickup template=hugeshieldpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Health pickups -->
 
 <PickupRepresentation
+    name = "smallhealthpickup"
     pickupName = "Small Health Boost"
     pickupDescription = "Adds a small amout of health to the ship."
     inventoryRepresentation = "SmallHealth"
     spawnerTemplate = "smallhealthpickupRepresentation"
->
-    <pickup>
-        <HealthPickup template=smallhealthpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediumhealthpickup"
     pickupName = "Medium Health Boost"
     pickupDescription = "Adds a medium amout of health to the ship."
     spawnerTemplate = "mediumhealthpickupRepresentation"
     inventoryRepresentation = "MediumHealth"
->
-    <pickup>
-        <HealthPickup template=mediumhealthpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "hugehealthpickup"
     pickupName = "Huge Health Boost"
     pickupDescription = "Adds a huge amout of health to the ship."
     spawnerTemplate = "hugehealthpickupRepresentation"
     inventoryRepresentation = "HugeHealth"
->
-    <pickup>
-        <HealthPickup template=hugehealthpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "crazyhealthpickup"
     pickupName = "Crazy Madness Health Boost"
     pickupDescription = "Adds a crazy amout of health to the ship."
     spawnerTemplate = "crazyhealthpickupRepresentation"
     inventoryRepresentation = "CrazyMadnessHealth"
->
-    <pickup>
-        <HealthPickup template=crazyhealthpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Meta pickups -->
 
 <PickupRepresentation
+    name = "use"
     pickupName = "Use Pickup"
     pickupDescription = "Uses all pickups you have."
     spawnerTemplate = "usepickupRepresentation"
     inventoryRepresentation = "usePickup"
->
-    <pickup>
-        <MetaPickup metaType="use" />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "drop"
     pickupName = "Drop Pickup"
     pickupDescription = "Drops all pickups you have."
     spawnerTemplate = "droppickupRepresentation"
     inventoryRepresentation = "dropPickup"
->
-    <pickup>
-        <MetaPickup metaType="drop" />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Speed pickups -->
 
 <PickupRepresentation
+    name = "smallspeedpickup"
     pickupName = "Small Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a small amount."
     spawnerTemplate = "smallspeedpickupRepresentation"
     inventoryRepresentation = "SmallSpeed"
->
-    <pickup>
-        <SpeedPickup template=smallspeedpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediumspeedpickup"
     pickupName = "Medium Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a bigger amount."
     spawnerTemplate = "mediumspeedpickupRepresentation"
     inventoryRepresentation = "MediumSpeed"
->
-    <pickup>
-        <SpeedPickup template=mediumspeedpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "hugespeedpickup"
     pickupName = "Huge Speed Boost"
     pickupDescription = "Multiplies Speed of the Ship by a huge amount."
     spawnerTemplate = "hugespeedpickupRepresentation"
     inventoryRepresentation = "HugeSpeed"
->
-    <pickup>
-        <SpeedPickup template=hugespeedpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "smalljumppickup"
     pickupName = "Small Jump Boost"
     pickupDescription = "Boosts the Ship with a massive amount for a very short time."
     spawnerTemplate = "smalljumppickupRepresentation"
     inventoryRepresentation = "SmallSpeed"
->
-    <pickup>
-        <SpeedPickup template=smalljumppickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Invisible pickups -->
 
 <PickupRepresentation
+    name = "smallinvisiblepickup"
     pickupName = "Small Invisibility"
     pickupDescription = "Makes you invisible for 5 seconds."
     spawnerTemplate = "smallinvisiblepickupRepresentation"
     inventoryRepresentation = "SmallInvisible"
->
-    <pickup>
-        <InvisiblePickup template=smallinvisiblepickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediuminvisiblepickup"
     pickupName = "Medium Invisibility"
     pickupDescription = "Makes you invisible for 10 seconds."
     spawnerTemplate = "mediuminvisiblepickupRepresentation"
     inventoryRepresentation = "MediumInvisible"
->
-    <pickup>
-        <InvisiblePickup template=mediuminvisiblepickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "hugeinvisiblepickup"
     pickupName = "Huge Invisibility"
     pickupDescription = "Makes you invisible for 20 seconds."
     spawnerTemplate = "hugeinvisiblepickupRepresentation"
     inventoryRepresentation = "HugeInvisible"
->
-    <pickup>
-        <InvisiblePickup template=hugeinvisiblepickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Pickup Collection pickups -->
 
 <PickupRepresentation
+    name = "triplehealthspeedinvisibilitypickup"
     pickupName = "Tri Pickup"
     pickupDescription = "Adds health, speed and invisibility."
     spawnerTemplate = "triplehealthspeedinvisibilitypickupRepresentation"
->
-    <pickup>
-        <PickupCollection template=triplehealthspeedinvisibilitypickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Drone Pickup -->
 
 <PickupRepresentation
+    name = "dronepickup"
     pickupName = "Drone Pickup"
     pickupDescription = "Adds a Drone to the Player's Spaceship"
     spawnerTemplate = "dronepickupRepresentation"
->
-    <pickup>
-        <DronePickup template=dronepickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- DamageBoost Pickup -->
 
 <PickupRepresentation
+    name = "smalldamageboostpickup"
     pickupName = "Small DamageBoost Pickup"
     pickupDescription = "Multiplies the ship damage with 2."
     spawnerTemplate = "smalldamageboostpickupRepresentation"
     inventoryRepresentation = "SmallDamageBoost"
->
-    <pickup>
-        <DamageBoostPickup template=smalldamageboostpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediumdamageboostpickup"
     pickupName = "Medium DamageBoost Pickup"
     pickupDescription = "Multiplies the ship damage with 5."
     spawnerTemplate = "mediumdamageboostpickupRepresentation"
     inventoryRepresentation = "MediumDamageBoost"
->
-    <pickup>
-        <DamageBoostPickup template=mediumdamageboostpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "largedamageboostpickup"
     pickupName = "Large DamageBoost Pickup"
     pickupDescription = "Multiplies the ship damage with 7."
     spawnerTemplate = "largedamageboostpickupRepresentation"
     inventoryRepresentation = "LargeDamageBoost"
->
-    <pickup>
-        <DamageBoostPickup template=largedamageboostpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <!-- Shrink Pickup -->
 
 <PickupRepresentation
+    name = "smallshrinkpickup"
     pickupName = "Small Shrink"
     pickupDescription = "Shrinks the Ship by a bit"
     spawnerTemplate = "smallshrinkpickupRepresentation"
     inventoryRepresentation = "SmallShrink"
->
-    <pickup>
-        <ShrinkPickup template=smallshrinkpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "mediumshrinkpickup"
     pickupName = "Medium Shrink"
     pickupDescription = "Shrinks the Ship"
     spawnerTemplate = "mediumshrinkpickupRepresentation"
     inventoryRepresentation = "MediumShrink"
->
-    <pickup>
-        <ShrinkPickup template=mediumshrinkpickup />
-    </pickup>
-</PickupRepresentation>
+/>
 
 <PickupRepresentation
+    name = "hugeshrinkpickup"
     pickupName = "Huge Shrink"
     pickupDescription = "Shrinks the Ship considerably"
     spawnerTemplate = "hugeshrinkpickupRepresentation"
     inventoryRepresentation = "HugeShrink"
->
-    <pickup>
-        <ShrinkPickup template=hugeshrinkpickup />
-    </pickup>
-</PickupRepresentation>
-
+/>

Modified: code/branches/presentation2012merge/data/levels/pickups.oxw
===================================================================
--- code/branches/presentation2012merge/data/levels/pickups.oxw	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/pickups.oxw	2012-07-18 20:36:24 UTC (rev 9318)
@@ -130,13 +130,13 @@
 
     <PickupSpawner position="-25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10">
       <pickup>
-        <MetaPickup metaType="use" />
+        <MetaPickup representation="use" metaType="use" />
       </pickup>
     </PickupSpawner>
 
     <PickupSpawner position="0,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10">
       <pickup>
-        <MetaPickup metaType="drop" />
+        <MetaPickup representation="drop" metaType="drop" />
       </pickup>
     </PickupSpawner>
 
@@ -193,19 +193,16 @@
 
     <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi -->
     <PickupRepresentation
+      name = "MediumHealth"
       pickupName = "Medium Health Pack"
       pickupDescription = "Once used adds a medium amout of health to the ship."
       spawnerTemplate = "mediumhealthpickupRepresentation"
       inventoryRepresentation = "MediumHealth"
-    >
-      <pickup>
-        <HealthPickup health=500 activationType=immediate healthRate=10 durationType=continuous />
-      </pickup>
-    </PickupRepresentation>
+    />
 
     <PickupSpawner position="-50,0,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">
       <pickup>
-        <HealthPickup health=500 activationType=immediate healthRate=10 durationType=continuous />
+        <HealthPickup representation="MediumHealth" health=500 activationType=immediate healthRate=10 durationType=continuous />
       </pickup>
     </PickupSpawner>
 

Modified: code/branches/presentation2012merge/data/levels/presentation09b.oxw
===================================================================
--- code/branches/presentation2012merge/data/levels/presentation09b.oxw	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/presentation09b.oxw	2012-07-18 20:36:24 UTC (rev 9318)
@@ -101,19 +101,16 @@
 
     <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi -->
     <PickupRepresentation
+      name = "MediumHealth"
       pickupName = "Medium Health Pack"
       pickupDescription = "Once used adds a medium amout of health to the ship."
       spawnerTemplate = "mediumhealthpickupRepresentation"
       inventoryRepresentation = "MediumHealth"
-    >
-      <pickup>
-        <HealthPickup health=100 activationType="onUse" durationType="once" />
-      </pickup>
-    </PickupRepresentation>
+    />
 
     <PickupSpawner position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">
       <pickup>
-        <HealthPickup health=100 activationType=onUse durationType=once />
+        <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once />
       </pickup>
     </PickupSpawner>
 

Modified: code/branches/presentation2012merge/data/levels/presentationFS10.oxw
===================================================================
--- code/branches/presentation2012merge/data/levels/presentationFS10.oxw	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/presentationFS10.oxw	2012-07-18 20:36:24 UTC (rev 9318)
@@ -147,19 +147,16 @@
 
     <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi -->
     <PickupRepresentation
+      name = "MediumHealth"
       pickupName = "Medium Health Pack"
       pickupDescription = "Once used adds a medium amout of health to the ship."
       spawnerTemplate = "mediumhealthpickupRepresentation"
       inventoryRepresentation = "MediumHealth"
-    >
-      <pickup>
-        <HealthPickup health=50 activationType="onUse" durationType="once" />
-      </pickup>
-    </PickupRepresentation>
+    />
 
     <PickupSpawner position="25,-75,-500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">
       <pickup>
-        <HealthPickup health=50 activationType=onUse durationType=once />
+        <HealthPickup representation="MediumHealth" health=50 activationType=onUse durationType=once />
       </pickup>
     </PickupSpawner>
 

Modified: code/branches/presentation2012merge/data/levels/presentationHS09.oxw
===================================================================
--- code/branches/presentation2012merge/data/levels/presentationHS09.oxw	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/presentationHS09.oxw	2012-07-18 20:36:24 UTC (rev 9318)
@@ -104,19 +104,16 @@
 
     <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi -->
     <PickupRepresentation
+      name = "MediumHealth"
       pickupName = "Medium Health Pack"
       pickupDescription = "Once used adds a medium amout of health to the ship."
       spawnerTemplate = "mediumhealthpickupRepresentation"
       inventoryRepresentation = "MediumHealth"
-    >
-      <pickup>
-        <HealthPickup health=100 activationType="onUse" durationType="once" />
-      </pickup>
-    </PickupRepresentation>
+    />
 
     <PickupSpawner position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">
       <pickup>
-        <HealthPickup health=100 activationType=onUse durationType=once />
+        <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once />
       </pickup>
     </PickupSpawner>
 

Modified: code/branches/presentation2012merge/data/levels/templates/pickupRepresentationTemplates.oxt
===================================================================
--- code/branches/presentation2012merge/data/levels/templates/pickupRepresentationTemplates.oxt	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/data/levels/templates/pickupRepresentationTemplates.oxt	2012-07-18 20:36:24 UTC (rev 9318)
@@ -18,6 +18,7 @@
 
 <Template name=smallshieldpickup>
   <ShieldPickup
+    representation = "smallshieldpickup"
     duration = 10
     shieldabsorption = 0.7
     shieldhealth = 300
@@ -44,6 +45,7 @@
 
 <Template name=mediumshieldpickup>
   <ShieldPickup
+    representation = "mediumshieldpickup"
     duration = 30
     shieldabsorption = 0.8
     shieldhealth = 500
@@ -71,6 +73,7 @@
 
 <Template name=hugeshieldpickup>
   <ShieldPickup
+    representation = "hugeshieldpickup"
     duration = 60
     shieldabsorption = 0.95
     shieldhealth = 700
@@ -99,6 +102,7 @@
 
 <Template name=smallhealthpickup>
   <HealthPickup
+    representation = "smallhealthpickup"
     health = 10
     healthType = "limited"
     activationType = "immediate"
@@ -124,6 +128,7 @@
 
 <Template name=mediumhealthpickup>
   <HealthPickup
+    representation = "mediumhealthpickup"
     health = 50
     healthType = "limited"
     activationType = "immediate"
@@ -149,6 +154,7 @@
 
 <Template name=hugehealthpickup>
   <HealthPickup
+    representation = "hugehealthpickup"
     health = 100
     healthType = "limited"
     activationType = "immediate"
@@ -174,6 +180,7 @@
 
 <Template name=crazyhealthpickup>
   <HealthPickup
+    representation = "crazyhealthpickup"
     health = 1000
     healthType = "permanent"
     activationType = "immediate"
@@ -235,6 +242,7 @@
 
 <Template name=smalldamageboostpickup>
   <DamageBoostPickup
+    representation = "smalldamageboostpickup"
     duration = 10.0
     damageMultiplier = 2.0
     activationType = "immediate"
@@ -260,6 +268,7 @@
 
 <Template name=mediumdamageboostpickup>
   <DamageBoostPickup
+    representation = "mediumdamageboostpickup"
     duration = 10.0
     damageMultiplier = 5.0
     activationType = "immediate"
@@ -285,6 +294,7 @@
 
 <Template name=largedamageboostpickup>
   <DamageBoostPickup
+    representation = "largedamageboostpickup"
     duration = 10.0
     damageMultiplier = 7.0
     activationType = "immediate"
@@ -313,6 +323,7 @@
 
 <Template name=smallspeedpickup>
   <SpeedPickup
+    representation = "smallspeedpickup"
     duration = 10.0
     speedAdd = 0.0
     SpeedMultiply = 10.0
@@ -339,6 +350,7 @@
 
 <Template name=mediumspeedpickup>
   <SpeedPickup
+    representation = "mediumspeedpickup"
     duration = 10.0
     speedAdd = 0.0
     SpeedMultiply = 25.0
@@ -365,6 +377,7 @@
 
 <Template name=hugespeedpickup>
   <SpeedPickup
+    representation = "hugespeedpickup"
     duration = 10.0
     speedAdd = 0.0
     SpeedMultiply = 50.0
@@ -391,6 +404,7 @@
 
 <Template name=smalljumppickup>
   <SpeedPickup
+    representation = "smalljumppickup"
     duration = 0.7
     speedAdd = 5000.0
     SpeedMultiply = 1.0
@@ -419,6 +433,7 @@
 
 <Template name=smallinvisiblepickup>
   <InvisiblePickup 
+    representation = "smallinvisiblepickup"
     duration = 5.0
     activaionType = "immediate"
     durationType = "continuous"
@@ -443,6 +458,7 @@
 
 <Template name=mediuminvisiblepickup>
   <InvisiblePickup 
+    representation = "mediuminvisiblepickup"
     duration = 10.0
     activaionType = "immediate"
     durationType = "continuous"
@@ -467,6 +483,7 @@
 
 <Template name=hugeinvisiblepickup>
   <InvisiblePickup 
+    representation = "hugeinvisiblepickup"
     duration = 20.0
     activaionType = "immediate"
     durationType = "continuous"
@@ -491,6 +508,7 @@
 
 <Template name=smallshrinkpickup>
   <ShrinkPickup 
+    representation = "smallshrinkpickup"
     duration = 10.0
     shrinkFactor = 2.5
     activaionType = "immediate"
@@ -516,6 +534,7 @@
 
 <Template name=mediumshrinkpickup>
   <ShrinkPickup 
+    representation = "mediumshrinkpickup"
     duration = 30.0
     shrinkFactor = 5.0
     activaionType = "immediate"
@@ -541,6 +560,7 @@
 
 <Template name=hugeshrinkpickup>
   <ShrinkPickup 
+    representation = "hugeshrinkpickup"
     duration = 60.0
     shrinkFactor = 10.0
     activaionType = "immediate"
@@ -569,7 +589,9 @@
 </Template>
 
 <Template name=triplehealthspeedinvisibilitypickup>
-    <PickupCollection>
+    <PickupCollection
+        representation = "triplehealthspeedinvisibilitypickup"
+    >
         <pickupables>
             <HealthPickup template=mediumhealthpickup />
             <SpeedPickup template=mediumspeedpickup />
@@ -629,6 +651,6 @@
 </Template>
 
 <Template name=dronepickup>
-    <DronePickup droneTemplate=droneTemplate />
+    <DronePickup representation=dronepickup droneTemplate=droneTemplate />
 </Template>
 

Modified: code/branches/presentation2012merge/src/modules/pickup/CMakeLists.txt
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/CMakeLists.txt	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/CMakeLists.txt	2012-07-18 20:36:24 UTC (rev 9318)
@@ -3,7 +3,6 @@
   DroppedPickup.cc
   Pickup.cc
   PickupCollection.cc
-  PickupCollectionIdentifier.cc
   PickupManager.cc
   PickupRepresentation.cc
   PickupSpawner.cc

Modified: code/branches/presentation2012merge/src/modules/pickup/Pickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -36,8 +36,6 @@
 #include "core/CoreIncludes.h"
 #include "util/StringUtils.h"
 
-#include "pickup/PickupIdentifier.h"
-
 #include "DroppedPickup.h"
 
 namespace orxonox
@@ -85,26 +83,15 @@
 
     /**
     @brief
-        Initializes the PickupIdentififer of this Pickup.
-    */
-    void Pickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("activationType", this->getActivationType());
-        this->pickupIdentifier_->addParameter("durationType", this->getDurationType());
-    }
-
-    /**
-    @brief
         Method for creating a Pickup object through XML.
     */
     void Pickup::XMLPort(Element& xmlelement, XMLPort::Mode mode)
     {
         SUPER(Pickup, XMLPort, xmlelement, mode);
 
+        XMLPortParam(Pickup, "representation", setRepresentationName, getRepresentationName, xmlelement, mode);
         XMLPortParam(Pickup, "activationType", setActivationTypeAsString, getActivationTypeAsString, xmlelement, mode);
         XMLPortParam(Pickup, "durationType", setDurationTypeAsString, getDurationTypeAsString, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -205,10 +192,9 @@
         SUPER(Pickup, clone, item);
 
         Pickup* pickup = orxonox_cast<Pickup*>(item);
+        pickup->setRepresentationName(this->getRepresentationName());
         pickup->setActivationType(this->getActivationType());
         pickup->setDurationType(this->getDurationType());
-
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/Pickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/Pickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/Pickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -104,6 +104,9 @@
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
+            virtual const std::string& getRepresentationName() const
+                { return this->representationName_; }
+
             /**
             @brief Get the activation type of the Pickup.
             @return Returns the activation type of the Pickup.
@@ -149,11 +152,15 @@
             virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the OrxonoxClass.
 
         protected:
-            void initializeIdentifier(void);
-
             virtual bool createSpawner(void); //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
 
             /**
+            @brief Sets the representation name which refers to the name of the PickupRepresentation that is used to represent this pickup.
+            */
+            inline void setRepresentationName(const std::string& name)
+                { this->representationName_ = name; }
+
+            /**
             @brief Set the activation type of the Pickup.
             @param type The activation type of the Pickup.
             */
@@ -172,6 +179,7 @@
         private:
             void initialize(void); //!< Initializes the member variables.
 
+            std::string representationName_; //!< The name of the associated PickupRepresentation.
             pickupActivationType::Value activationType_; //!< The activation type of the Pickup.
             pickupDurationType::Value durationType_; //!< The duration type of the Pickup.
 

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -38,7 +38,6 @@
 
 #include "CollectiblePickup.h"
 #include "DroppedPickup.h"
-#include "PickupCollectionIdentifier.h"
 
 #include "PickupCollection.h"
 
@@ -53,11 +52,10 @@
     @param creator
         The creator of the object.
     */
-    PickupCollection::PickupCollection(BaseObject* creator) : BaseObject(creator), pickupCollectionIdentifier_(NULL)
+    PickupCollection::PickupCollection(BaseObject* creator) : BaseObject(creator)
     {
         RegisterObject(PickupCollection);
 
-        this->pickupCollectionIdentifier_ = new PickupCollectionIdentifier(this);
         this->processingUsed_ = false;
         this->processingPickedUp_ = false;
     }
@@ -75,9 +73,6 @@
             (*it)->destroy();
         }
         this->pickups_.clear();
-
-        if(this->pickupCollectionIdentifier_ != NULL)
-            this->pickupCollectionIdentifier_->destroy();
     }
 
     /**
@@ -88,6 +83,7 @@
     {
         SUPER(PickupCollection, XMLPort, xmlelement, mode);
 
+        XMLPortParam(PickupCollection, "representation", setRepresentationName, getRepresentationName, xmlelement, mode);
         XMLPortObject(PickupCollection, CollectiblePickup, "pickupables", addPickupable, getPickupable, xmlelement, mode);
     }
 
@@ -216,6 +212,7 @@
         SUPER(PickupCollection, clone, item);
 
         PickupCollection* pickup = orxonox_cast<PickupCollection*>(item);
+        pickup->setRepresentationName(this->getRepresentationName());
         // Clone all Pickupables this PickupCollection consist of.
         for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
         {
@@ -246,18 +243,6 @@
 
     /**
     @brief
-        Get the PickupIdentifier of this PickupCollection.
-        This is in fact the PickupCollectionIdentifier.
-    @return
-        Returns a pointer to the PickupIdentifier of this PickupCollection.
-    */
-    const PickupIdentifier* PickupCollection::getPickupIdentifier(void) const
-    {
-        return this->pickupCollectionIdentifier_;
-    }
-
-    /**
-    @brief
         Add the input Pickupable to list of Pickupables combined by this PickupCollection.
     @param pickup
         The Pickupable to be added.

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -49,8 +49,6 @@
     @brief
         The PickupCollection combines different @ref orxonox::Pickupable "Pickupables" (more precisely @ref orxonox::CollectiblePickup "CollectiblePickups") to a coherent, single pickup and makes them seem (from the outside looking in) just as if they were just one @ref orxonox::Pickupable "Pickupable".
 
-        To differentiate between different types of @ref orxonox::PickupCollection "PickupCollections" (just as we differentiate between different types of @ref orxonox::Pickupable "Pickupables") we define a new identifyer called the @ref orxonox::PickupCollectionIdentifier "PickupCollectionIdentifier" which has pretty much the same properties as the @ref orxonox::PickupIdentifier "PickupIdentifier" but extende to @ref orxonox::PickupCollection "PickupCollections".
-
         A PickupCollection can be created in XML as follows:
         @code
         <PickupCollection>
@@ -84,7 +82,10 @@
 
             virtual bool isTarget(const PickupCarrier* carrier) const; //!< Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.
 
-            virtual const PickupIdentifier* getPickupIdentifier(void) const; //!< Get the PickupIdentifier of this PickupCollection.
+            inline void setRepresentationName(const std::string& name)
+                { this->representationName_ = name; }
+            virtual const std::string& getRepresentationName() const
+                { return this->representationName_; }
 
             bool addPickupable(CollectiblePickup* pickup); //!< Add the input Pickupable to list of Pickupables combined by this PickupCollection.
             const Pickupable* getPickupable(unsigned int index) const; //!< Get the Pickupable at the given index.
@@ -100,13 +101,12 @@
         protected:
             virtual bool createSpawner(void); //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
 
-            PickupCollectionIdentifier* pickupCollectionIdentifier_; //!< The PickupCollectionIdentifier of this PickupCollection. Is used to distinguish different PickupCollections amongst themselves.
-
         private:
             void changedUsedAction(void); //!< Helper method.
             void changedPickedUpAction(void); //!< Helper method.
             void pickupsChanged(void); //!< Helper method.
 
+            std::string representationName_; //!< The name of the associated PickupRepresentation.
             std::list<CollectiblePickup*> pickups_; //!< The list of the pointers of all the Pickupables this PickupCollection consists of. They are weak pointers to facilitate testing, whether the pointers are still valid.
 
             bool processingUsed_; //!< Boolean to ensure, that the PickupCollection doesn't update its used status while its internal state is inconsistent.

Deleted: code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -1,104 +0,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:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
-*/
-
-/**
-    @file PickupCollectionIdentifier.cc
-    @brief Implementation of PickupCollectionIdentifier.
-*/
-
-#include "core/CoreIncludes.h"
-
-#include "PickupCollectionIdentifier.h"
-#include "PickupCollection.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        Constructor. Registers the object.
-    */
-    PickupCollectionIdentifier::PickupCollectionIdentifier(PickupCollection* collection) : PickupIdentifier(collection)
-    {
-        RegisterObject(PickupCollectionIdentifier);
-
-        this->collection_ = collection;
-    }
-
-    /**
-    @brief
-        Destructor.
-    */
-    PickupCollectionIdentifier::~PickupCollectionIdentifier()
-    {
-
-    }
-
-    /**
-    @brief
-        Compares a PickupCollectionIdentifier with a PickupIdentifier and returns 0 if a == b, <0 if a < b and >0 if a > b for a.compare(b), where a is a PickupCollectionIdentifier and b is just some PickupIdentifier.
-    @param identifier
-        Pointer to the second PickupIdentifier, b.
-    @return
-        Returns an integer. 0 if the two compared PickupIdentifiers are the same, <0 if a < b and >0 if a > b.
-    */
-    int PickupCollectionIdentifier::compare(const PickupIdentifier* identifier) const
-    {
-        assert(identifier);
-
-        const PickupCollectionIdentifier* collectionIdentifier = orxonox_cast<const PickupCollectionIdentifier*>(identifier);
-
-        // If the input PickupIdentifier 'identifier' is no PickupCollectionIdentifier then just the two PickupIdentifiers are compared.
-        if(collectionIdentifier == NULL)
-        {
-            return this->PickupIdentifier::compare(identifier);
-        }
-
-        // If the number of Pickupables each of the two PickupCollectionIdentifiers contain differ, the one with less is considered smaller.
-        if(this->collection_->getPickups().size() != collectionIdentifier->collection_->getPickups().size())
-            return this->collection_->getPickups().size()-collectionIdentifier->collection_->getPickups().size();
-
-        // Compare the Pickupables of the two PickupCollectionIdentifiers one after the other. the one with the first 'smaller' one is considered smaller.
-        std::list<CollectiblePickup*>::const_iterator it1 = this->collection_->getPickups().begin();
-        std::list<CollectiblePickup*>::const_iterator it2 = collectionIdentifier->collection_->getPickups().begin();
-        for( ; it1 != this->collection_->getPickups().end(); ++it1, ++it2)
-        {
-            const PickupIdentifier* id1 = (*it1)->getPickupIdentifier();
-            const PickupIdentifier* id2 = (*it2)->getPickupIdentifier();
-
-            int result = id1->compare(id2);
-            if(result != 0)
-                return result;
-        }
-
-        // This means they are equal.
-        return 0;
-    }
-
-}
-

Deleted: code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollectionIdentifier.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -1,75 +0,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:
- *      Damian 'Mozork' Frick
- *   Co-authors:
- *      ...
- *
-*/
-
-/**
-    @file PickupCollectionIdentifier.h
-    @brief Declaration of PickupCollectionIdentifier.
-    @ingroup Pickup
-*/
-
-#ifndef _PickupCollectionIdentifier_H__
-#define _PickupCollectionIdentifier_H__
-
-#include "PickupPrereqs.h"
-
-#include <set>
-
-#include "pickup/PickupIdentifier.h"
-
-namespace orxonox
-{
-
-    /**
-    @brief
-        The PickupCollectionIdentifier is the specialization of the PickupIdentifier for the @ref orxonox::PickupCollection "PickupCollection" class.
-        It identifies @ref orxonox::PickupCollection "PickupCollections" based on the different @ref orxonox::CollectiblePickup "CollectiblePickups" they consist of.
-
-        @ref orxonox::Pickupable "Pickupables" (resp. @ref orxonox::CollectiblePickup "CollectiblePickups") can be added to the PickupCollectionIdentifier via the addPickup method.
-
-    @author
-        Damian 'Mozork' Frick
-
-    @ingroup Pickup
-    */
-    class _PickupExport PickupCollectionIdentifier : public PickupIdentifier
-    {
-
-        public:
-            PickupCollectionIdentifier(PickupCollection* pickup); //!< Constructor.
-            ~PickupCollectionIdentifier(); //!< Destructor.
-
-            virtual int compare(const PickupIdentifier* identifier) const; //!< Compares a PickupCollectionIdentifier with a PickupIdentifier.
-
-        private:
-            PickupCollection* collection_;
-
-    };
-
-}
-
-#endif // _PickupCollectionIdentifier_H__

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupManager.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupManager.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupManager.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -86,7 +86,6 @@
             this->defaultRepresentation_->destroy();
 
         this->representations_.clear();
-        this->representationsNetworked_.clear();
 
         // Destroying all the PickupInventoryContainers that are still there.
         for(std::map<uint32_t, PickupInventoryContainer*>::iterator it = this->pickupInventoryContainers_.begin(); it != this->pickupInventoryContainers_.end(); it++)
@@ -105,25 +104,23 @@
 
     /**
     @brief
-        Registers a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents, on the server (or in standalone mode).
-        For every type of Pickupable (uniquely identified by a PickupIdentifier) there can be one (and just one) PickupRepresentation registered.
-    @param identifier
-        The PickupIdentifier identifying the Pickupable.
+        Registers a PickupRepresentation.
+    @param name
+        The representation's name.
     @param representation
         A pointer to the PickupRepresentation.
     @return
         Returns true if successful and false if not.
     */
-    bool PickupManager::registerRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation)
+    bool PickupManager::registerRepresentation(const std::string& name, PickupRepresentation* representation)
     {
-        assert(identifier);
         assert(representation);
 
         // If the list is not empty and Pickupable already has a Representation registered.
-        if(!this->representations_.empty() && this->representations_.find(identifier) != this->representations_.end())
+        if(!this->representations_.empty() && this->representations_.find(name) != this->representations_.end())
             return false;
 
-        this->representations_[identifier] = representation;
+        this->representations_[name] = representation;
 
         orxout(verbose, context::pickups) << "PickupRepresentation &" << representation << " registered with the PickupManager." << endl;
         return true;
@@ -131,81 +128,36 @@
 
     /**
     @brief
-        Unegisters a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents, on the server (or in standalone mode).
-    @param identifier
-        The PickupIdentifier identifying the Pickupable.
-    @param representation
-        A pointer to the PickupRepresentation.
+        Unegisters a PickupRepresentation.
+    @param name
+        The representation's name.
     @return
         Returns true if successful and false if not.
     */
-    bool PickupManager::unregisterRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation)
+    bool PickupManager::unregisterRepresentation(const std::string& name)
     {
-        assert(identifier);
-        assert(representation);
-
-        std::map<const PickupIdentifier*, PickupRepresentation*, PickupIdentifierCompare>::iterator it = this->representations_.find(identifier);
+        std::map<std::string, PickupRepresentation*>::iterator it = this->representations_.find(name);
         if(it == this->representations_.end()) // If the Pickupable is not registered in the first place.
             return false;
 
         this->representations_.erase(it);
 
-        orxout(verbose, context::pickups) << "PickupRepresentation &" << representation << " unregistered with the PickupManager." << endl;
+        orxout(verbose, context::pickups) << "PickupRepresentation &" << name << " unregistered with the PickupManager." << endl;
         return true;
     }
 
     /**
     @brief
-        Registers a PickupRepresentation on the host it was created.
-    @param representation
-        A pointer to the PickupRepresentation.
+        Get the PickupRepresentation with the given name.
+    @param name
+        The name of the PickupRepresentation.
     @return
-        Returns true if successful, false if not.
-    */
-    bool PickupManager::registerRepresentation(PickupRepresentation* representation)
-    {
-        assert(representation);
-
-        // If the list is not empty and PickupRepresentation is already registered.
-        if(!this->representationsNetworked_.empty() && this->representationsNetworked_.find(representation->getObjectID()) != this->representationsNetworked_.end())
-            return false;
-
-        this->representationsNetworked_[representation->getObjectID()] = representation;
-        return true;
-    }
-
-    /**
-    @brief
-        Unregisters a PickupRepresentation on the host it is being destroyed (which is the same host on which it was created).
-    @param representation
-        A pointer to the Pickuprepresentation.
-    @return
-        Returns true if successful, false if not.
-    */
-    bool PickupManager::unregisterRepresentation(PickupRepresentation* representation)
-    {
-        assert(representation);
-
-        std::map<uint32_t, PickupRepresentation*>::iterator it = this->representationsNetworked_.find(representation->getObjectID());
-        if(it == this->representationsNetworked_.end()) // If the Pickupable is not registered in the first place.
-            return false;
-
-        this->representationsNetworked_.erase(it);
-        return true;
-    }
-
-    /**
-    @brief
-        Get the PickupRepresentation representing the Pickupable with the input PickupIdentifier.
-    @param identifier
-        The PickupIdentifier.
-    @return
         Returns a pointer to the PickupRepresentation.
     */
-    PickupRepresentation* PickupManager::getRepresentation(const PickupIdentifier* identifier)
+    PickupRepresentation* PickupManager::getRepresentation(const std::string& name)
     {
-        std::map<const PickupIdentifier*, PickupRepresentation*, PickupIdentifierCompare>::iterator it = this->representations_.find(identifier);
-        if(it == this->representations_.end()) // If there is no PickupRepresentation associated with the input PickupIdentifier.
+        std::map<std::string, PickupRepresentation*>::iterator it = this->representations_.find(name);
+        if(it == this->representations_.end()) // If there is no PickupRepresentation associated with the input name.
         {
             orxout(verbose, context::pickups) << "PickupManager::getRepresentation() returned default representation." << endl;
             return this->defaultRepresentation_;
@@ -352,22 +304,22 @@
         if(GameMode::isStandalone() || Host::getPlayerID() == clientId)
         {
             // If there is no PickupRepresentation registered the default representation is used.
-            if(this->representations_.find(pickup->getPickupIdentifier()) == this->representations_.end())
-                PickupManager::pickupChangedPickedUpNetwork(index, pickup->isUsable(), this->defaultRepresentation_->getObjectID(), pickedUp);
+            if(this->representations_.find(pickup->getRepresentationName()) == this->representations_.end())
+                PickupManager::pickupChangedPickedUpNetwork(index, pickup->isUsable(), this->defaultRepresentation_->getObjectID(), pickup->getRepresentationName(), pickedUp);
             else
-                PickupManager::pickupChangedPickedUpNetwork(index, pickup->isUsable(), this->representations_[pickup->getPickupIdentifier()]->getObjectID(), pickedUp);
+                PickupManager::pickupChangedPickedUpNetwork(index, pickup->isUsable(), this->representations_[pickup->getRepresentationName()]->getObjectID(), pickup->getRepresentationName(), pickedUp);
         }
         // If the concerned host is somewhere in the network, we call pickupChangedPickedUpNetwork() on its PickupManager.
         else
         {
             // If there is no PickupRepresentation registered the default representation is used.
-            if(this->representations_.find(pickup->getPickupIdentifier()) == this->representations_.end())
+            if(this->representations_.find(pickup->getRepresentationName()) == this->representations_.end())
             {
                 callStaticNetworkFunction(PickupManager::pickupChangedPickedUpNetwork, clientId, index, pickup->isUsable(), this->defaultRepresentation_->getObjectID(), pickedUp);
             }
             else
             {
-                callStaticNetworkFunction(PickupManager::pickupChangedPickedUpNetwork, clientId, index, pickup->isUsable(), this->representations_[pickup->getPickupIdentifier()]->getObjectID(), pickedUp);
+                callStaticNetworkFunction(PickupManager::pickupChangedPickedUpNetwork, clientId, index, pickup->isUsable(), this->representations_[pickup->getRepresentationName()]->getObjectID(), pickedUp);
             }
         }
 
@@ -387,7 +339,7 @@
     @param pickedUp
         The pickedUp status the Pickupable changed to.
     */
-    /*static*/ void PickupManager::pickupChangedPickedUpNetwork(uint32_t pickup, bool usable, uint32_t representationObjectId, bool pickedUp)
+    /*static*/ void PickupManager::pickupChangedPickedUpNetwork(uint32_t pickup, bool usable, uint32_t representationObjectId, const std::string& representationName, bool pickedUp)
     {
         PickupManager& manager = PickupManager::getInstance(); // Get the PickupManager singleton on this host.
         // If the Pickupable has been picked up, we create a new PickupInventoryContainer for it.
@@ -401,6 +353,7 @@
             container->usable = usable;
             container->unusable = false;
             container->representationObjectId = representationObjectId;
+            container->representationName = representationName;
             // Insert the container into the pickupInventoryContainers_ list.
             manager.pickupInventoryContainers_.insert(std::pair<uint32_t, PickupInventoryContainer*>(pickup, container));
 
@@ -420,36 +373,6 @@
 
     /**
     @brief
-        Get the PickupRepresentation of an input Pickupable.
-        This method spares us the hassle to export the PickupIdentifier class to lua.
-    @param pickup
-        The number identifying the Pickupable whose PickupRepresentation should be returned.
-    @return
-        Returns the PickupRepresentation of the input Pickupable or NULL if an error occurred.
-    */
-    orxonox::PickupRepresentation* PickupManager::getPickupRepresentation(uint32_t pickup)
-    {
-        // Clear and rebuild the representationsNetworked_ list.
-        //TODO: Better solution?
-        this->representationsNetworked_.clear();
-        for(ObjectList<PickupRepresentation>::iterator it = ObjectList<PickupRepresentation>::begin(); it != ObjectList<PickupRepresentation>::end(); ++it)
-            this->representationsNetworked_[it->getObjectID()] = *it;
-
-        // Get the container belonging to the input pickup, if not found return the default representation.
-        std::map<uint32_t, PickupInventoryContainer*>::iterator it = this->pickupInventoryContainers_.find(pickup);
-        if(it == this->pickupInventoryContainers_.end())
-            return this->defaultRepresentation_;
-
-        // Get the PickupRepresentation of the input pickup (through the objecId of the representation stored in the PickupInventoryContainer belonging to the pickup), if not found return the default representation.
-        std::map<uint32_t, PickupRepresentation*>::iterator it2 = this->representationsNetworked_.find(it->second->representationObjectId);
-        if(it2 == this->representationsNetworked_.end())
-            return this->defaultRepresentation_;
-
-        return it2->second;
-    }
-
-    /**
-    @brief
         Get the number of pickups currently picked up by the player.
         This method is used in lua to populate the PickupInventory. The intended usage is to call this method to reset the iterator of the list of PickupInventoryContainers and then use popPickup() to get the individual PickupInventoryContainers.
     @return

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupManager.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupManager.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupManager.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -40,8 +40,6 @@
 #include <map>
 #include "core/WeakPtr.h"
 
-#include "pickup/PickupIdentifier.h"
-
 #include "PickupRepresentation.h"
 
 #include "util/Singleton.h"
@@ -66,6 +64,7 @@
         bool usable; //!< Whether the @ref orxonox::Pickupable "Pickupable" is usable.
         bool unusable; //!< Whether the @ref orxonox::Pickupable "Pickupable" is droppable.
         uint32_t representationObjectId; //!< The objectId of the @ref orxonox::PickupRepresentation "PickupRepresentation" that represents the @ref orxonox::Pickupable "Pickupable".
+        std::string representationName; //!< The name of the associated PickupRepresentation
     };
     // tolua_end
 
@@ -73,7 +72,7 @@
     @brief
         The PickupManager class manages @ref orxonox::Pickupable "Pickupables".
 
-        It has in essence two tasks to fulfill. Firstly it must link @ref orxonox::Pickupable "Pickupables" (through their @ref orxonox::PickupIdentifier "PickupIdentifiers") to their respective @ref orxonox::PickupRepresentation "PickupRepresentations". Secondly it manages the PickupInventory. (The PickupInventory is the GUI that displays @ref orxonox::Pickupable "Pickupables" for the covenience of the user.)
+        It has in essence two tasks to fulfill. Firstly it must link @ref orxonox::Pickupable "Pickupables" (through their representation-name attribute) to the respective @ref orxonox::PickupRepresentation "PickupRepresentations". Secondly it manages the PickupInventory. (The PickupInventory is the GUI that displays @ref orxonox::Pickupable "Pickupables" for the covenience of the user.)
 
         @section PickupManagerTechnicalDetails Technical details
         Unfortunately <em>under the hood</em> it isn't just as easy. At least the PickupInventory part isn't. To grasp why this is we need to have a brief look at how the pickups module works over the network:
@@ -85,8 +84,7 @@
         This leaves us with the PickupInventory component (and this is really the source of all the complexity).
 
         Firstly there are a number of lists (where by list I really mean any kind of ordered data structure) kept.
-        - The @ref orxonox::PickupManager::representations_ "representations_" list links @ref orxonox::PickupRepresentation "PickupRepresentations" with @ref orxonox::PickupIdentifier "PickupIdentifiers" and can be used to get the @ref orxonox::PickupRepresentation "PickupRepresentation" for a given @ref orxonox::Pickupable "Pickupable". It is only populated on the server (or in standalone mode). Each @ref orxonox::PickupRepresentation "PickupRepresentation" that is generated through XML registers itself with the PickupManager and is thereby added to the list.
-        - The @ref orxonox::PickupManager::representationsNetworked_ "representationsNetworked_" list is the networked (hence the name) equivalent to the @ref orxonox::PickupManager::representations_ "representations_" list. It links an objectId of a @ref orxonox::PickupRepresentation "PickupRepresentation" to a @ref orxonox::PickupRepresentation "PickupRepresentation". This list is maintained on all hosts, each representation registers itself (in its constructor) with the PickupManager. Since the representations are synchronised they are created on each host. The "same" instance on each host is identified by the same objectId and that is why we store the representations with the objectId as key. We can then use this list to get a @ref orxonox::PickupRepresentation "PickupRepresentation" for a specific @ref orxonox::Pickupable "Pickupable" (or more precisely a number identifiying that particular pickup, but we'll see that, when we look at the next list) on a client to be used in the PickupInventory.
+        - The @ref orxonox::PickupManager::representations_ "representations_" list links @ref orxonox::PickupRepresentation "PickupRepresentations" with its name and can be used to get the @ref orxonox::PickupRepresentation "PickupRepresentation" for a given @ref orxonox::Pickupable "Pickupable". It is only populated on the server (or in standalone mode). Each @ref orxonox::PickupRepresentation "PickupRepresentation" that is generated through XML registers itself with the PickupManager and is thereby added to the list.
         - The @ref orxonox::PickupManager::pickupInventoryContainers_ "pickupInventoryContainers_" list links a number identifying a @ref orxonox::Pickupable "Pickupable" to a data structure (the @ref orxonox::PickupInventoryContainer "PickupInventoryContainer"), which contains all necessary information about that @ref orxonox::Pickupable "Pickupable". This list is maintained on all hosts, a new container is inserted when a @ref orxonox::Pickupable "Pickupable" is picked up, but only if it has been picked up by the repsective host. This list is then used by the PickupInventory to access the required information and to get the correct @ref orxonox::PickupRepresentation "PickupRepresentation".
         - The @ref orxonox::PickupManager::pickups_ "pickups_" list links a number identifiying a @ref orxonox::Pickupable "Pickupable" to a (weak pointer to a) @ref orxonox::Pickupable "Pickupable". It is only maintained by the server (or in standalone mode), to be able to use, unuse and drop @ref orxonox::Pickupable "Pickupables" through the PickupInventory. Since @ref orxonox::Pickupable "Pickupables" only exist on the server a client that wants to change a pickups status has so send a request over the network (with the number identifying the pickup) to the server and then the server facilitates the change, using this list to map from the identifyer to the actual @ref orxonox::Pickupable "Pickupable".
         - The @ref orxonox::PickupManager::indexes_ "indexes_" list links a @ref orxonox::Pickupable "Pickupable" to the number identifying it. This is only maintained on the server (or in standalone mode), and is used for the inverse mapping of the previous list, which means the server uses it identify pickups on clients when it communicates changes in pickups to clients.
@@ -113,24 +111,19 @@
             */
             static PickupManager& getInstance() { return Singleton<PickupManager>::getInstance(); } // tolua_export
 
-            bool registerRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation); //!< Registers a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents.
-            bool unregisterRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation); //!< Unegisters a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents.
+            bool registerRepresentation(const std::string& name, PickupRepresentation* representation);
+            bool unregisterRepresentation(const std::string& name);
 
-            bool registerRepresentation(PickupRepresentation* representation); //!< Registers a PickupRepresentation on the host it was created.
-            bool unregisterRepresentation(PickupRepresentation* representation); //!< Unregisters a PickupRepresentation on the host it is being destroyed.
+            PickupRepresentation* getRepresentation(const std::string& name); // tolua_export
 
-            PickupRepresentation* getRepresentation(const PickupIdentifier* identifier); //!< Get the PickupRepresentation representing the Pickupable with the input PickupIdentifier.
-
             virtual void pickupChangedUsed(Pickupable* pickup, bool used); //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input used state.
             static void pickupChangedUsedNetwork(uint32_t pickup, bool inUse, bool usable, bool unusable); //!< Helper method to react to the change in the used status of a Pickupable.
             virtual void pickupChangedPickedUp(Pickupable* pickup, bool pickedUp); //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input pickedUp state.
-            static void pickupChangedPickedUpNetwork(uint32_t pickup, bool usable, uint32_t representationObjectId, bool pickedUp); //!< Helper method to react to the change in the pickedUp status of a Pickupable.
+            static void pickupChangedPickedUpNetwork(uint32_t pickup, bool usable, uint32_t representationObjectId, const std::string& representationName, bool pickedUp); //!< Helper method to react to the change in the pickedUp status of a Pickupable.
 
         // Methods to be used by the PickupInventory.
         public:
             // tolua_begin
-            orxonox::PickupRepresentation* getPickupRepresentation(uint32_t pickup); //!< Get the PickupRepresentation of an input indentifier for Pickupable.
-
             int getNumPickups(void); //!< Get the number of pickups currently picked up by the player.
             /**
             @brief Get the next PickupInventoryContainer in the list.
@@ -162,8 +155,7 @@
 
             PickupRepresentation* defaultRepresentation_; //!< The default PickupRepresentation.
 
-            std::map<const PickupIdentifier*, PickupRepresentation*, PickupIdentifierCompare> representations_; //!< Map linking PickupIdentifiers (representing types of Pickupables) and PickupRepresentations.
-            std::map<uint32_t, PickupRepresentation*> representationsNetworked_; //!< Map linking the PickupRepresentation's objectId to the PickupRepresentation itself. It is used for networking purposes.
+            std::map<std::string, PickupRepresentation*> representations_; //!< Map linking PickupRepresentations and their names.
 
             std::map<uint32_t, PickupInventoryContainer*> pickupInventoryContainers_; //!< Map linking a number identifying a Pickupable to a PickupInventoryContainer, which contains all necessary information about that Pickupable.
             std::map<uint32_t, PickupInventoryContainer*>::iterator pickupsIterator_; //!< An iterator pointing to the current Pickupable in pickupsList_.

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupPrereqs.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupPrereqs.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupPrereqs.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -72,7 +72,6 @@
     class DroppedPickup;
     class Pickup;
     class PickupCollection;
-    class PickupCollectionIdentifier;
     class PickupManager;
     class PickupRepresentation;
     class PickupSpawner;

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -51,7 +51,7 @@
         Constructor. Registers the object and initializes its member variables.
         This is primarily for use of the PickupManager in creating a default PickupRepresentation.
     */
-    PickupRepresentation::PickupRepresentation() : BaseObject(NULL), Synchronisable(NULL), spawnerRepresentation_(NULL), pickup_(NULL)
+    PickupRepresentation::PickupRepresentation() : BaseObject(NULL), Synchronisable(NULL), spawnerRepresentation_(NULL)
     {
         RegisterObject(PickupRepresentation);
 
@@ -63,14 +63,12 @@
     @brief
         Default Constructor. Registers the object and initializes its member variables.
     */
-    PickupRepresentation::PickupRepresentation(BaseObject* creator) : BaseObject(creator), Synchronisable(creator), spawnerRepresentation_(NULL), pickup_(NULL)
+    PickupRepresentation::PickupRepresentation(BaseObject* creator) : BaseObject(creator), Synchronisable(creator), spawnerRepresentation_(NULL)
     {
         RegisterObject(PickupRepresentation);
 
         this->initialize();
         this->registerVariables();
-
-        PickupManager::getInstance().registerRepresentation(this); // Registers the PickupRepresentation with the PickupManager.
     }
 
     /**
@@ -83,13 +81,7 @@
             this->spawnerRepresentation_->destroy();
 
         if(this->isInitialized())
-        {
-            if(GameMode::isMaster() && this->pickup_ != NULL)
-            {
-                PickupManager::getInstance().unregisterRepresentation(this->pickup_->getPickupIdentifier(), this);
-            }
-            PickupManager::getInstance().unregisterRepresentation(this);
-        }
+            PickupManager::getInstance().unregisterRepresentation(this->getName());
     }
 
     /**
@@ -127,18 +119,8 @@
         XMLPortParam(PickupRepresentation, "pickupDescription", setPickupDescription, getPickupDescription, xmlelement, mode);
         XMLPortParam(PickupRepresentation, "spawnerTemplate", setSpawnerTemplate, getSpawnerTemplate, xmlelement, mode);
         XMLPortParam(PickupRepresentation, "inventoryRepresentation", setInventoryRepresentation, getInventoryRepresentation, xmlelement, mode);
-        XMLPortObject(PickupRepresentation, Pickupable, "pickup", setPickup, getPickup, xmlelement, mode);
         XMLPortObject(PickupRepresentation, StaticEntity, "spawner-representation", setSpawnerRepresentation, getSpawnerRepresentationIndex, xmlelement, mode);
 
-        if(GameMode::isMaster())
-        {
-            // Registers the PickupRepresentation with the PickupManager through the PickupIdentifier of the Pickupable it represents.
-            PickupManager::getInstance().registerRepresentation(this->pickup_->getPickupIdentifier(), this);
-        }
-
-        if(this->spawnerRepresentation_ != NULL)
-            this->spawnerRepresentation_->setVisible(false);
-
         orxout(verbose, context::pickups) << "PickupRepresentation created: name: '" << this->name_ << "', description: '" << this->description_ << "', spawnerTemplate: '" << this->spawnerTemplate_ << "'." << endl;
     }
 
@@ -171,6 +153,20 @@
         return temp;
     }
 
+    void PickupRepresentation::changedName()
+    {
+        // Registers the PickupRepresentation with the PickupManager.
+        PickupManager::getInstance().unregisterRepresentation(this->getOldName());
+        PickupManager::getInstance().registerRepresentation(this->getName(), this);
+    }
+
+    void PickupRepresentation::setSpawnerRepresentation(StaticEntity* representation)
+    {
+        this->spawnerRepresentation_ = representation;
+        if(this->spawnerRepresentation_ != NULL)
+            this->spawnerRepresentation_->setVisible(false);
+    }
+
     /**
     @brief
         Get the default spawnerRepresentation for a specific PickupSpawner.

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupRepresentation.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -40,7 +40,6 @@
 #include "core/XMLPort.h"
 
 #include "interfaces/Pickupable.h"
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/StaticEntity.h"
 
 #include "PickupSpawner.h"
@@ -53,7 +52,7 @@
 
     /**
     @brief
-        The PickupRepresentation class represents a specific pickup type (identified by its @ref orxonox::PickupIdentifier "PickupIdentifier"). It defines the information displayed in the GUI (PickupInventory) and how @ref orxonox::PickupSpawner "PickupSpawners" that spawn the pickup type look like.
+        The PickupRepresentation class represents a specific pickup type. It defines the information displayed in the GUI (PickupInventory) and how @ref orxonox::PickupSpawner "PickupSpawners" that spawn the pickup type look like.
         They are created through XML and are registered with the @ref orxonox::PickupManager "PickupManager".
 
         Creating a PickupRepresentation in XML could look as follows:
@@ -63,11 +62,7 @@
             description = "This is the most awesome Pickup ever to exist."
             spawnerTemplate = "awesomePickupRepresentation"
             inventoryRepresentation = "AwesomePickup"
-        >
-            <pickup>
-                <SomePickup />
-            </pickup>
-        </PickupRepresentation>
+        />
         @endcode
         As you might have noticed, there is a parameter called <em>spawnerTemplate</em> and also another parameter called <em>inventoryRepresentation</em>. Let's first explain the second one, <em>inventoryRepresentation</em>.
         - The <b>inventoryRepresentation</b> specifies the image that is displayed in the PickupInventory for the specific type of @ref orxonox::Pickupable "Pickupable". More technically, it is the name of an image located in the <code>PickupInventory.imageset</code>, which in turn is located in <code>data_extern/gui/imagesets/</code>.
@@ -132,14 +127,9 @@
             @return Returns the name of the image as a string.
             */
             inline const std::string& getInventoryRepresentation(void) const { return this->inventoryRepresentation_; } // tolua_export
-            /**
-            @brief Get the Pickupable represented by this PickupRepresentation.
-            @param index The index.
-            @return Returns (for index = 0) a pointer to the Pickupable. For index > 0 it returns NULL.
-            */
-            inline const Pickupable* getPickup(unsigned int index) const
-                { if(index == 0) return this->pickup_; return NULL; }
 
+            virtual void changedName();
+
             StaticEntity* createSpawnerRepresentation(PickupSpawner* spawner); //!< Create a spawnerRepresentation for a specific PickupSpawner.
 
         protected:
@@ -167,20 +157,14 @@
                    This will be set by the spawnerTemplate. Setting it when creating the PickupRepresentation without creating a template and specifying its name will be futile, because through the course of the game many PickupSpawners for one specific pickup type may have to be created, thus the StaticEntity that is the spawnerRepresentation has to be generated (with the template) for every new PickupSpawner spawning the Pickupable represented by this PickupRepresentation. The spawnerRepresentation that is set here, however can only be used once.
             @param representation A pointer to the StaticEntity that is the spawnerRepresentation of this PickupRepresentation.
             */
-            inline void setSpawnerRepresentation(StaticEntity* representation)
-                { this->spawnerRepresentation_ = representation; }
+            void setSpawnerRepresentation(StaticEntity* representation);
+
             /**
             @brief Set the image representing the pickup in the PickupInventory.
             @param image A string with the name of the image representing the pickup.
             */
             inline void setInventoryRepresentation(const std::string& image)
                 { this->inventoryRepresentation_ = image; }
-            /**
-            @brief Set the Pickupable that is represented by this PickupRepresentation.
-            @param pickup A pointer to the Pickupable.
-            */
-            inline void setPickup(Pickupable* pickup)
-                { this->pickup_ = pickup; }
 
         private:
             void initialize(void); //!< Initializes the member variables of this PickupRepresentation.
@@ -194,8 +178,6 @@
             StaticEntity* spawnerRepresentation_; //!< The spawnerRepresentation of this PickupRepresentation.
             std::string inventoryRepresentation_; //!< The name of an image representing the pickup in the PickupInventory.
 
-            Pickupable* pickup_; //!< The Pickupable that is represented by this PickupRepresentation.
-
     }; // tolua_export
 
 } // tolua_export

Modified: code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -94,7 +94,7 @@
         }
         else
         {
-            PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getPickupIdentifier());
+            PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getRepresentationName());
             this->attach(representation->createSpawnerRepresentation(this));
             this->setActive(true);
         }
@@ -148,7 +148,7 @@
         }
         else
         {
-            PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getPickupIdentifier());
+            PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getRepresentationName());
             this->attach(representation->createSpawnerRepresentation(this));
             this->setActive(true);
         }

Modified: code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -37,7 +37,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/SpaceShip.h"
 
 namespace orxonox
@@ -77,16 +76,6 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void DamageBoostPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("duration", this->getDuration());
-        this->pickupIdentifier_->addParameter("damageMultiplier", this->getDamageMultiplier());
-    }
-
-    /**
-    @brief
         Method for creating a DamageBoostPickup object through XML.
     */
     void DamageBoostPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
@@ -95,8 +84,6 @@
 
         XMLPortParam(DamageBoostPickup, "duration", setDuration, getDuration, xmlelement, mode);
         XMLPortParam(DamageBoostPickup, "damageMultiplier", setDamageMultiplier, getDamageMultiplier, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     // Work in Progress setDamage Function
@@ -195,7 +182,6 @@
         DamageBoostPickup* pickup = orxonox_cast<DamageBoostPickup*>(item);
         pickup->setDuration(this->getDuration());
         pickup->setDamageMultiplier(this->getDamageMultiplier());
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -78,7 +78,6 @@
 
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
             void setDamageMultiplier(float damageMultiplier); //!< Sets the DamageMultiplier according to the XML.
 
 

Modified: code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -38,7 +38,6 @@
 #include "core/XMLPort.h"
 
 #include "controllers/DroneController.h"
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/Drone.h"
 #include "worldentities/pawns/Pawn.h"
 
@@ -80,23 +79,12 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void DronePickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("droneTemplate", this->getDroneTemplate());
-    }
-
-    /**
-    @brief
         Method for creating a DronePickup object through XML.
     */
     void DronePickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
     {
         SUPER(DronePickup, XMLPort, xmlelement, mode);
         XMLPortParam(DronePickup, "droneTemplate", setDroneTemplate, getDroneTemplate, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -197,7 +185,5 @@
 
         DronePickup* pickup = orxonox_cast<DronePickup*>(item);
         pickup->setDroneTemplate(this->getDroneTemplate());
-
-        pickup->initializeIdentifier();
     }
 }

Modified: code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -74,8 +74,6 @@
             const std::string& getDroneTemplate() const; //!< Get the name of the droneTemplate.
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
-
             void setDroneTemplate(const std::string& templatename); //!< Set the droneTemplate.
 
         private:

Modified: code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -37,7 +37,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -86,17 +85,6 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void HealthPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("health", this->getHealth());
-        this->pickupIdentifier_->addParameter("healthType", this->getHealthType());
-        this->pickupIdentifier_->addParameter("healthRate", this->getHealthRate());
-    }
-
-    /**
-    @brief
         Method for creating a HealthPickup object through XML.
     */
     void HealthPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
@@ -109,8 +97,6 @@
 
         if(!this->isContinuous())
             this->setHealthRate(0.0f); // TODO: this logic should be inside tick(), not in XMLPort
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -276,8 +262,6 @@
         pickup->setHealth(this->getHealth());
         pickup->setHealthRate(this->getHealthRate());
         pickup->setHealthType(this->getHealthType());
-
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -120,8 +120,6 @@
             const std::string& getHealthTypeAsString(void) const; //!< Get the health type of this pickup.
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
-
             void setHealth(float health); //!< Sets the health.
             void setHealthRate(float speed); //!< Set the rate at which health is transferred if the pickup is continuous.
 

Modified: code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -39,7 +39,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -78,23 +77,12 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void InvisiblePickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("duration", this->getDuration());
-    }
-
-    /**
-    @brief
         Method for creating a HealthPickup object through XML.
     */
     void InvisiblePickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
     {
         SUPER(InvisiblePickup, XMLPort, xmlelement, mode);
         XMLPortParam(InvisiblePickup, "duration", setDuration, getDuration, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -156,7 +144,6 @@
 
         InvisiblePickup* pickup = orxonox_cast<InvisiblePickup*>(item);
         pickup->setDuration(this->getDuration());
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -71,7 +71,7 @@
 
             InvisiblePickup(BaseObject* creator); //!< Constructor.
             virtual ~InvisiblePickup(); //!< Destructor.
-            
+
             virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a HealthPickup object through XML.
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
             virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
@@ -90,8 +90,6 @@
                 { return this->duration_; }
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
-
             bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again.
             void setDuration(float duration); //!< Sets the time the InvisibilityPickup will last.
 

Modified: code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -35,7 +35,6 @@
 #include "core/XMLPort.h"
 
 #include "interfaces/PickupCarrier.h"
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 #include "MetaPickup.h"
@@ -85,15 +84,6 @@
 
     /**
     @brief
-        Helper method to initialize the PickupIdentifier.
-    */
-    void MetaPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("metaType", this->getMetaType());
-    }
-
-    /**
-    @brief
         Method for creating a MetaPickup object through XML.
     */
     void MetaPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
@@ -101,8 +91,6 @@
         SUPER(MetaPickup, XMLPort, xmlelement, mode);
 
         XMLPortParam(MetaPickup, "metaType", setMetaTypeAsString, getMetaTypeAsString, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -171,8 +159,6 @@
 
         MetaPickup* pickup = orxonox_cast<MetaPickup*>(item);
         pickup->setMetaType(this->getMetaType());
-
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -105,8 +105,6 @@
             const std::string& getMetaTypeAsString(void) const; //!< Get the meta type of this MetaPickup.
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
-
             /**
             @brief Set the meta type of the MetaPickup.
             @param type The meta type as an enum.

Modified: code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -37,7 +37,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -79,17 +78,6 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void ShieldPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("duration", this->getDuration());
-        this->pickupIdentifier_->addParameter("ShieldHealth", this->getShieldHealth());
-        this->pickupIdentifier_->addParameter("ShieldAbsorption", this->getShieldAbsorption());
-    }
-
-    /**
-    @brief
         Method for creating a ShieldPickup object through XML.
     */
     void ShieldPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
@@ -99,8 +87,6 @@
         XMLPortParam(ShieldPickup, "shieldhealth", setShieldHealth, getShieldHealth, xmlelement, mode);
         XMLPortParam(ShieldPickup, "shieldabsorption", setShieldAbsorption, getShieldAbsorption, xmlelement, mode);
         XMLPortParam(ShieldPickup, "duration", setDuration, getDuration, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -187,7 +173,6 @@
         pickup->setDuration(this->getDuration());
         pickup->setShieldAbsorption(this->getShieldAbsorption());
         pickup->setShieldHealth(this->getShieldHealth());
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -103,7 +103,6 @@
                 { return this->shieldAbsorption_; }
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
             void pickupTimerCallback(void); //!< Helper method. Is called by the Timer as soon as it expires.
 
             void setDuration(float duration); //!< Sets the duration.

Modified: code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -39,7 +39,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 #include "worldentities/CameraPosition.h"
@@ -80,13 +79,6 @@
         this->currentFactor_ = 1.0f;
     }
 
-    void ShrinkPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("shrinkFactor", this->getShrinkFactor());
-        this->pickupIdentifier_->addParameter("duration", this->getDuration());
-        this->pickupIdentifier_->addParameter("shrinkDuration", this->getShrinkDuration());
-    }
-
    /**
     @brief
         Method for creating a ShrinkPickup object through XML.
@@ -98,8 +90,6 @@
         XMLPortParam(ShrinkPickup, "shrinkFactor", setShrinkFactor, getShrinkFactor, xmlelement, mode);
         XMLPortParam(ShrinkPickup, "duration", setDuration, getDuration, xmlelement, mode);
         XMLPortParam(ShrinkPickup, "shrinkDuration", setShrinkDuration, getShrinkDuration, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -320,7 +310,5 @@
         pickup->setShrinkFactor(this->getShrinkFactor());
         pickup->setDuration(this->getDuration());
         pickup->setShrinkDuration(this->getShrinkDuration());
-
-        pickup->initializeIdentifier();
     }
 }

Modified: code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -118,9 +118,6 @@
             inline void setShrinkDuration(float speed)
                 { if(speed <= 0.0f) { orxout(internal_warning, context::pickups) << "Invalid shrink duration in ShrinkPickup. Ignoring.." << endl; return; } this->shrinkDuration_ = speed; }
 
-        protected:
-            void initializeIdentifier(void);
-
         private:
             void initialize(void);
 
@@ -134,7 +131,7 @@
 
             float currentFactor_;       //!< The shrink factor that is currently applied.
             float timeRemainig_;        //!< The remaining shrink time.
-            
+
             Pawn* carrierToPawnHelper(void);
             Timer durationTimer_;
             void terminate(void);

Modified: code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -37,7 +37,6 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
 
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/SpaceShip.h"
 
 namespace orxonox
@@ -79,17 +78,6 @@
 
     /**
     @brief
-        Initializes the PickupIdentifier of this pickup.
-    */
-    void SpeedPickup::initializeIdentifier(void)
-    {
-        this->pickupIdentifier_->addParameter("duration", this->getDuration());
-        this->pickupIdentifier_->addParameter("speedAdd", this->getSpeedAdd());
-        this->pickupIdentifier_->addParameter("speedMultiply", this->getSpeedMultiply());
-    }
-
-    /**
-    @brief
         Method for creating a SpeedPickup object through XML.
     */
     void SpeedPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
@@ -99,8 +87,6 @@
         XMLPortParam(SpeedPickup, "duration", setDuration, getDuration, xmlelement, mode);
         XMLPortParam(SpeedPickup, "speedAdd", setSpeedAdd, getSpeedAdd, xmlelement, mode);
         XMLPortParam(SpeedPickup, "speedMultiply", setSpeedMultiply, getSpeedMultiply, xmlelement, mode);
-
-        this->initializeIdentifier();
     }
 
     /**
@@ -188,8 +174,6 @@
         pickup->setDuration(this->getDuration());
         pickup->setSpeedAdd(this->getSpeedAdd());
         pickup->setSpeedMultiply(this->getSpeedMultiply());
-
-        pickup->initializeIdentifier();
     }
 
     /**

Modified: code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -102,7 +102,6 @@
                 { return this->speedMultiply_; }
 
         protected:
-            void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup.
             void pickupTimerCallback(void); //!< Function that gets called when timer ends.
 
             void setDuration(float duration); //!< Sets the duration.

Modified: code/branches/presentation2012merge/src/orxonox/CMakeLists.txt
===================================================================
--- code/branches/presentation2012merge/src/orxonox/CMakeLists.txt	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/orxonox/CMakeLists.txt	2012-07-18 20:36:24 UTC (rev 9318)
@@ -49,7 +49,6 @@
 ADD_SUBDIRECTORY(interfaces)
 ADD_SUBDIRECTORY(items)
 ADD_SUBDIRECTORY(overlays)
-ADD_SUBDIRECTORY(pickup)
 ADD_SUBDIRECTORY(sound)
 ADD_SUBDIRECTORY(weaponsystem)
 ADD_SUBDIRECTORY(worldentities)

Modified: code/branches/presentation2012merge/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/presentation2012merge/src/orxonox/OrxonoxPrereqs.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/orxonox/OrxonoxPrereqs.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -151,9 +151,6 @@
     class OrxonoxOverlay;
     class OverlayGroup;
 
-    // pickup
-    class PickupIdentifier;
-
     //sound
     class AmbientSound;
     class BaseSound;

Modified: code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	2012-07-18 20:36:24 UTC (rev 9318)
@@ -38,7 +38,6 @@
 #include "util/Convert.h"
 
 #include "infos/PlayerInfo.h"
-#include "pickup/PickupIdentifier.h"
 #include "worldentities/pawns/Pawn.h"
 
 #include "PickupCarrier.h"
@@ -51,13 +50,12 @@
     @brief
         Constructor. Registers the objects and initializes its member variables.
     */
-    Pickupable::Pickupable() : pickupIdentifier_(NULL), used_(false), pickedUp_(false)
+    Pickupable::Pickupable() : used_(false), pickedUp_(false)
     {
         RegisterRootObject(Pickupable);
 
         this->carrier_ = NULL;
 
-        this->pickupIdentifier_ = new PickupIdentifier(this);
         this->beingDestroyed_ = false;
         this->enabled_ = true;
     }
@@ -68,11 +66,6 @@
     */
     Pickupable::~Pickupable()
     {
-        if(this->pickupIdentifier_ != NULL)
-        {
-            orxout(verbose, context::pickups) << "Pickupable (&" << this << ") destroyed." << endl;
-            this->pickupIdentifier_->destroy();
-        }
     }
 
     /**

Modified: code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h
===================================================================
--- code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h	2012-07-09 21:48:16 UTC (rev 9317)
+++ code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h	2012-07-18 20:36:24 UTC (rev 9318)
@@ -52,8 +52,6 @@
 
         Pickups (@ref orxonox::Pickupable "Pickupables") are objects that (quite unsurprisingly) can be picked up. Additionally they can be used and unused (transition from used to not used), and also dropped.
 
-        A class of Pickups can incorporate many different types of pickups (see @ref orxonox::PickupIdentifier "PickupIdentifier"), each type is uniquely defined by a @ref orxonox::PickupIdentifier "PickupIdentifier". Each pickup has such an identifier identiying its type. This means that two pickups of the same type have identifiers which are equal.
-
     @author
         Damian 'Mozork' Frick
 
@@ -69,6 +67,9 @@
         public:
             virtual ~Pickupable(); //!< Default destructor.
 
+            //! @brief Returns the representation name which refers to the name of the PickupRepresentation that is used to represent this pickup.
+            virtual const std::string& getRepresentationName() const = 0;
+
             /**
             @brief Get whether the Pickupable is currently in use or not.
             @return Returns true if the Pickupable is currently in use.
@@ -143,13 +144,6 @@
             */
             virtual void clone(OrxonoxClass*& item) {}
 
-            /**
-            @brief Get the PickupIdentifier of this Pickupable.
-            @return Returns a pointer to the PickupIdentifier of this Pickupable.
-            */
-            virtual const PickupIdentifier* getPickupIdentifier(void) const
-                { return this->pickupIdentifier_; }
-
             bool setUsed(bool used); //!< Sets the Pickupable to used or unused, depending on the input.
             bool setPickedUp(bool pickedUp); //!< Helper method to set the Pickupable to either picked up or not picked up.
             bool setCarrier(PickupCarrier* carrier, bool tell = true); //!< Sets the carrier of the Pickupable.
@@ -157,11 +151,6 @@
             void destroy(void); //!< Is called internally within the Pickupable module to destroy pickups.
 
         protected:
-            /**
-            @brief Helper method to initialize the PickupIdentifier.
-            */
-            void initializeIdentifier(void) {}
-
             virtual void preDestroy(void); //!< A method that is called by OrxonoxClass::destroy() before the object is actually destroyed.
             virtual void destroyPickup(void); //!< Destroys a Pickupable.
             virtual void carrierDestroyed(void); //!< Is called by the PickupCarrier when it is being destroyed.
@@ -187,8 +176,6 @@
             */
             virtual bool createSpawner(void) = 0;
 
-            PickupIdentifier* pickupIdentifier_; //!< The PickupIdentifier of this Pickupable.
-
         private:
 
             bool used_; //!< Whether the Pickupable is currently in use or not.




More information about the Orxonox-commit mailing list