Index: branches/powerups/src/defs/class_id.h
===================================================================
--- branches/powerups/src/defs/class_id.h	(revision 6223)
+++ branches/powerups/src/defs/class_id.h	(revision 6233)
@@ -74,4 +74,5 @@
 
   // subsuper-classes derivations taken : 1, 2, 5, a, b, c.     << THIS IS A LIST OF ALL THE DCL_MASK_SUBSUPERCLASS_ID's taken
+
   // subsuper-classes
   CL_MASK_SUBSUPER_CLASS        =    0x00fff000,
@@ -87,6 +88,5 @@
   CL_WEAPON                     =    0x00210000,
   CL_POWER_UP                   =    0x00220000,
-  CL_EXTENDABLE                  =    0x00220000,
-
+  CL_EXTENDABLE                 =    0x00240000,
   // SUPER-Modeling
   CL_TEXTURE                    =    0x00c01000,
Index: branches/powerups/src/world_entities/power_ups/param_power_up.cc
===================================================================
--- branches/powerups/src/world_entities/power_ups/param_power_up.cc	(revision 6223)
+++ branches/powerups/src/world_entities/power_ups/param_power_up.cc	(revision 6233)
@@ -19,4 +19,5 @@
 #include "factory.h"
 #include "state.h"
+#include "list.h"
 
 #include "primitive_model.h"
Index: branches/powerups/src/world_entities/power_ups/power_up.cc
===================================================================
--- branches/powerups/src/world_entities/power_ups/power_up.cc	(revision 6223)
+++ branches/powerups/src/world_entities/power_ups/power_up.cc	(revision 6233)
@@ -33,5 +33,4 @@
   this->sphereMaterial->setTransparency(.1);
   this->sphereMaterial->setDiffuse(r, g, b);
-
   this->toList(OM_COMMON);
 }
Index: branches/powerups/src/world_entities/power_ups/weapon_power_up.cc
===================================================================
--- branches/powerups/src/world_entities/power_ups/weapon_power_up.cc	(revision 6223)
+++ branches/powerups/src/world_entities/power_ups/weapon_power_up.cc	(revision 6233)
@@ -19,4 +19,5 @@
 #include "factory.h"
 #include "state.h"
+#include "list.h"
 
 #include "primitive_model.h"
Index: branches/powerups/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/powerups/src/world_entities/space_ships/space_ship.cc	(revision 6223)
+++ branches/powerups/src/world_entities/space_ships/space_ship.cc	(revision 6233)
@@ -31,4 +31,7 @@
 #include "key_mapper.h"
 #include "event_handler.h"
+
+#include "power_ups/weapon_power_up.h"
+#include "power_ups/param_power_up.h"
 
 #include "graphics_engine.h"
@@ -430,5 +433,4 @@
   else if ( event.type == KeyMapper::PEV_PREVIOUS_WEAPON && event.bPressed)
     this->getWeaponManager()->previousWeaponConfig();
-
   else if( event.type == SDLK_w)
     this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);
@@ -443,4 +445,28 @@
      this->setAbsDir(mouseDir);
   }
+}
+
+/**
+ *
+ */
+bool SpaceShip::pickup(PowerUp* powerUp)
+{
+  if(powerUp->isA(CL_WEAPON_POWER_UP)) {
+    Weapon* weapon = dynamic_cast<WeaponPowerUp*>(powerUp)->getWeapon();
+    WeaponManager* manager = this->getWeaponManager();
+    int slot = manager->getNextFreeSlot(0, weapon->getCapability());
+    if(slot >= 0) {
+      manager->addWeapon(weapon, 0, slot);
+      return true;
+    }
+  }
+  else if(powerUp->isA(CL_PARAM_POWER_UP)) {
+    ParamPowerUp* ppu = dynamic_cast<ParamPowerUp*>(powerUp);
+    switch(ppu->getType()) {
+      case PARAM_SHIELD:
+        break;
+    }
+  }
+  return false;
 }
 
Index: branches/powerups/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/powerups/src/world_entities/space_ships/space_ship.h	(revision 6223)
+++ branches/powerups/src/world_entities/space_ships/space_ship.h	(revision 6233)
@@ -8,4 +8,5 @@
 
 #include "playable.h"
+#include "extendable.h"
 
 
@@ -14,5 +15,5 @@
 class Event;
 
-class SpaceShip : public Playable
+class SpaceShip : public Playable, public Extendable
 {
 
@@ -41,5 +42,5 @@
 
     virtual void process(const Event &event);
-
+    bool pickup(PowerUp* powerUp);
 
 
