Changeset 7163 for code/trunk/src/modules/pickup/items
- Timestamp:
- Aug 11, 2010, 8:55:13 AM (14 years ago)
- Location:
- code/trunk
- Files:
-
- 10 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/modules/pickup/items/CMakeLists.txt
- Property svn:eol-style set to native
r6710 r7163 3 3 InvisiblePickup.cc 4 4 MetaPickup.cc 5 DronePickup.cc 5 6 SpeedPickup.cc 7 ShieldPickup.cc 6 8 ) -
code/trunk/src/modules/pickup/items/HealthPickup.cc
r6709 r7163 45 45 namespace orxonox 46 46 { 47 47 48 48 /*static*/ const std::string HealthPickup::healthTypeLimited_s = "limited"; 49 49 /*static*/ const std::string HealthPickup::healthTypeTemporary_s = "temporary"; 50 50 /*static*/ const std::string HealthPickup::healthTypePermanent_s = "permanent"; 51 51 52 52 CreateFactory(HealthPickup); 53 53 54 54 /** 55 55 @brief … … 59 59 { 60 60 RegisterObject(HealthPickup); 61 61 62 62 this->initialize(); 63 63 } 64 64 65 65 /** 66 66 @brief … … 69 69 HealthPickup::~HealthPickup() 70 70 { 71 72 } 73 74 /** 75 @brief 71 72 } 73 74 /** 75 @brief 76 76 Initializes the member variables. 77 77 */ 78 78 void HealthPickup::initialize(void) 79 { 79 { 80 80 this->health_ = 0; 81 81 this->healthRate_ = 0; … … 83 83 this->maxHealthSave_ = 0; 84 84 this->maxHealthOverwrite_ = 0; 85 85 86 86 this->addTarget(ClassIdentifier<Pawn>::getIdentifier()); 87 87 } 88 88 89 89 /** 90 90 @brief … … 98 98 std::string val1 = stream.str(); 99 99 this->pickupIdentifier_->addParameter(type1, val1); 100 100 101 101 std::string val2 = this->getHealthType(); 102 102 std::string type2 = "healthType"; 103 103 this->pickupIdentifier_->addParameter(type2, val2); 104 104 105 105 stream.clear(); 106 106 stream << this->getHealthRate(); … … 109 109 this->pickupIdentifier_->addParameter(type3, val3); 110 110 } 111 111 112 112 /** 113 113 @brief … … 117 117 { 118 118 SUPER(HealthPickup, XMLPort, xmlelement, mode); 119 119 120 120 XMLPortParam(HealthPickup, "health", setHealth, getHealth, xmlelement, mode); 121 121 XMLPortParam(HealthPickup, "healthRate", setHealthRate, getHealthRate, xmlelement, mode); 122 122 XMLPortParam(HealthPickup, "healthType", setHealthType, getHealthType, xmlelement, mode); 123 123 124 124 if(!this->isContinuous()) 125 125 this->healthRate_ = 0.0; 126 126 127 127 this->initializeIdentifier(); 128 128 } 129 129 130 130 /** 131 131 @brief … … 138 138 { 139 139 SUPER(HealthPickup, tick, dt); 140 140 141 141 if(this->isContinuous() && this->isUsed()) 142 142 { 143 143 Pawn* pawn = this->carrierToPawnHelper(); 144 144 if(pawn == NULL) //!< If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed. 145 this-> destroy();146 145 this->Pickupable::destroy(); 146 147 147 //! Calculate the health that is added this tick. 148 148 float health = dt*this->getHealthRate(); … … 152 152 float fullHealth = pawn->getHealth() + health; 153 153 this->setHealth(this->getHealth()-health); 154 154 155 155 switch(this->getHealthTypeDirect()) 156 156 { … … 173 173 COUT(1) << "Invalid healthType in HealthPickup." << std::endl; 174 174 } 175 175 176 176 //! If all health has been transfered. 177 177 if(this->getHealth() == 0) … … 181 181 } 182 182 } 183 183 184 184 /** 185 185 @brief … … 189 189 { 190 190 SUPER(HealthPickup, changedUsed); 191 191 192 192 //! If the pickup is not picked up nothing must be done. 193 if(!this->isPickedUp()) 193 if(!this->isPickedUp()) //TODO: Needed? 194 194 return; 195 195 196 196 //! If the pickup has transited to used. 197 197 if(this->isUsed()) … … 201 201 Pawn* pawn = this->carrierToPawnHelper(); 202 202 if(pawn == NULL) //!< If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed. 203 this-> destroy();204 203 this->Pickupable::destroy(); 204 205 205 float health = 0; 206 206 switch(this->getHealthTypeDirect()) … … 226 226 COUT(1) << "Invalid healthType in HealthPickup." << std::endl; 227 227 } 228 228 229 229 //! The pickup has been used up. 230 230 this->setUsed(false); … … 237 237 PickupCarrier* carrier = this->getCarrier(); 238 238 Pawn* pawn = dynamic_cast<Pawn*>(carrier); 239 239 240 240 if(pawn == NULL) 241 241 { 242 242 COUT(1) << "Something went horribly wrong in Health Pickup. PickupCarrier is no Pawn." << std::endl; 243 this-> destroy();243 this->Pickupable::destroy(); 244 244 return; 245 245 } 246 246 247 247 if(pawn->getMaxHealth() == this->maxHealthOverwrite_) 248 248 { … … 252 252 } 253 253 } 254 254 255 255 //! If either the pickup can only be used once or it is continuous and used up, it is destroyed upon setting it to unused. 256 256 if(this->isOnce() || (this->isContinuous() && this->getHealth() == 0)) 257 257 { 258 this-> destroy();259 } 260 } 261 } 262 258 this->Pickupable::destroy(); 259 } 260 } 261 } 262 263 263 /** 264 264 @brief … … 271 271 PickupCarrier* carrier = this->getCarrier(); 272 272 Pawn* pawn = dynamic_cast<Pawn*>(carrier); 273 273 274 274 if(pawn == NULL) 275 275 { 276 276 COUT(1) << "Invalid PickupCarrier in HealthPickup." << std::endl; 277 277 } 278 278 279 279 return pawn; 280 280 } 281 281 282 282 /** 283 283 @brief … … 290 290 if(item == NULL) 291 291 item = new HealthPickup(this); 292 292 293 293 SUPER(HealthPickup, clone, item); 294 294 295 295 HealthPickup* pickup = dynamic_cast<HealthPickup*>(item); 296 296 pickup->setHealth(this->getHealth()); 297 297 pickup->setHealthRate(this->getHealthRate()); 298 298 pickup->setHealthTypeDirect(this->getHealthTypeDirect()); 299 299 300 300 pickup->initializeIdentifier(); 301 301 } 302 302 303 303 /** 304 304 @brief … … 322 322 } 323 323 } 324 324 325 325 /** 326 326 @brief … … 341 341 } 342 342 } 343 343 344 344 /** 345 345 @brief … … 356 356 else 357 357 { 358 COUT(1) << "Invalid healthSpeed in HealthPickup." << std::endl; 359 } 360 } 361 358 COUT(1) << "Invalid healthSpeed in HealthPickup." << std::endl; 359 } 360 } 361 362 362 /** 363 363 @brief -
code/trunk/src/modules/pickup/items/HealthPickup.h
r6709 r7163 45 45 46 46 namespace orxonox { 47 47 48 48 //! Enum for the type of the HealthPickup 49 49 namespace pickupHealthType … … 56 56 }; 57 57 } 58 58 59 59 /** 60 60 @brief … … 71 71 { 72 72 public: 73 73 74 74 HealthPickup(BaseObject* creator); //!< Constructor. 75 75 virtual ~HealthPickup(); //!< Destructor. 76 76 77 77 virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a HealthPickup object through XML. 78 78 virtual void tick(float dt); //!< Is called every tick. 79 79 80 80 virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around. 81 81 virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass. 82 82 83 83 /** 84 84 @brief Get the health that is transfered to the Pawn upon usage of this pickup. … … 93 93 inline float getHealthRate(void) 94 94 { return this->healthRate_; } 95 95 96 96 /** 97 97 @brief Get the type of HealthPickup, this pickup is. 98 @return Returns the health type as an enum. 98 @return Returns the health type as an enum. 99 99 */ 100 100 inline pickupHealthType::Value getHealthTypeDirect(void) 101 101 { return this->healthType_; } 102 102 const std::string& getHealthType(void); //!< Get the health type of this pickup. 103 103 104 104 protected: 105 105 void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup. … … 107 107 void setHealth(float health); //!< Sets the health. 108 108 void setHealthRate(float speed); //!< Set the rate at which health is transferred if the pickup is continuous. 109 109 110 110 /** 111 111 @brief Set the health type of this pickup. … … 115 115 { this->healthType_ = type; } 116 116 void setHealthType(std::string type); //!< Set the type of the HealthPickup. 117 117 118 118 private: 119 119 void initialize(void); //!< Initializes the member variables. 120 120 Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails. 121 121 122 122 float health_; //!< The health that is transferred to the Pawn. 123 123 float healthRate_; //!< The rate at which the health is transferred. … … 125 125 float maxHealthOverwrite_; //!< Helper to remember with which value we overwrote the maxHealh, to detect if someone else changed it as well. 126 126 pickupHealthType::Value healthType_; //!< The type of the HealthPickup. 127 127 128 128 //! Strings for the health types. 129 129 static const std::string healthTypeLimited_s; 130 130 static const std::string healthTypeTemporary_s; 131 131 static const std::string healthTypePermanent_s; 132 132 133 133 }; 134 134 } -
code/trunk/src/modules/pickup/items/InvisiblePickup.cc
- Property svn:eol-style set to native
r6755 r7163 34 34 #include "InvisiblePickup.h" 35 35 36 #include <sstream> 37 #include <OgreEntity.h> 38 #include <OgreAnimationState.h> 39 40 #include "util/StringUtils.h" 36 41 #include "core/CoreIncludes.h" 37 42 #include "core/XMLPort.h" 38 #include "util/StringUtils.h"39 43 40 44 #include "worldentities/pawns/Pawn.h" 41 45 #include "pickup/PickupIdentifier.h" 42 46 43 #include <sstream>44 45 47 namespace orxonox 46 48 { 47 49 48 50 CreateFactory(InvisiblePickup); 49 51 50 52 /** 51 53 @brief … … 56 58 RegisterObject(InvisiblePickup); 57 59 //! Defines who is allowed to pick up the pickup. 58 this->initialize(); 59 } 60 60 this->initialize(); 61 } 62 61 63 /** 62 64 @brief … … 64 66 */ 65 67 InvisiblePickup::~InvisiblePickup() 66 { 67 } 68 69 68 { 69 } 70 71 70 72 void InvisiblePickup::initializeIdentifier(void) 71 73 { … … 76 78 this->pickupIdentifier_->addParameter(type1, val1); 77 79 } 78 80 79 81 /** 80 82 @brief … … 93 95 void InvisiblePickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode) 94 96 { 95 SUPER(InvisiblePickup, XMLPort, xmlelement, mode); 97 SUPER(InvisiblePickup, XMLPort, xmlelement, mode); 96 98 XMLPortParam(InvisiblePickup, "duration", setDuration, getDuration, xmlelement, mode); 97 99 98 100 this->initializeIdentifier(); 99 101 } 100 102 101 103 /** 102 104 @brief … … 106 108 { 107 109 SUPER(InvisiblePickup, changedUsed); 108 110 109 111 //! If the pickup is not picked up nothing must be done. 110 112 if(!this->isPickedUp()) 111 113 return; 112 114 113 115 if (this->isUsed()) 114 116 { … … 121 123 this->startPickupTimer(this->getDuration()); 122 124 } 125 123 126 this->setInvisible(true); 127 124 128 } 125 129 else 126 130 { 127 131 this->setInvisible(false); 128 132 129 133 if(!this->getTimer()->isActive() && this->getTimer()->getRemainingTime() == this->getDuration()) 130 134 { 131 this-> destroy();135 this->Pickupable::destroy(); 132 136 } 133 137 else … … 136 140 } 137 141 } 138 139 } 140 142 143 } 144 141 145 /** 142 146 @brief … … 149 153 PickupCarrier* carrier = this->getCarrier(); 150 154 Pawn* pawn = dynamic_cast<Pawn*>(carrier); 151 155 152 156 if(pawn == NULL) 153 157 { … … 156 160 return pawn; 157 161 } 158 162 159 163 /** 160 164 @brief … … 167 171 if(item == NULL) 168 172 item = new InvisiblePickup(this); 169 173 170 174 SUPER(InvisiblePickup, clone, item); 171 175 172 176 InvisiblePickup* pickup = dynamic_cast<InvisiblePickup*>(item); 173 177 pickup->setDuration(this->getDuration()); 174 178 pickup->initializeIdentifier(); 175 179 } 176 180 177 181 /** 178 182 @brief … … 186 190 if(pawn == NULL) 187 191 return false; 188 192 189 193 pawn->setVisible(!invisibility); 194 pawn->setRadarVisibility(!invisibility); 195 196 // Test to change Material at runtime! 197 198 // Ogre::MaterialPtr mat = this->mesh_.getEntity()->getSubEntity(0)->getMaterial(); 199 // mat->setDiffuse(0.4, 0.3, 0.1, 0.1); 200 // mat->setAmbient(0.3, 0.7, 0.8); 201 // mat->setSpecular(0.5, 0.5, 0.5, 0.1); 202 // Ogre::SceneBlendType sbt = Ogre::SBT_ADD; 203 // 204 // mat->setSceneBlending(sbt); 205 190 206 return true; 191 207 } 192 208 193 209 /** 194 210 @brief … … 209 225 } 210 226 } 211 227 212 228 void InvisiblePickup::pickupTimerCallback(void) 213 229 { -
code/trunk/src/modules/pickup/items/InvisiblePickup.h
- Property svn:eol-style set to native
r6710 r7163 38 38 39 39 #include <string> 40 40 41 #include <worldentities/pawns/Pawn.h> 41 42 #include "worldentities/StaticEntity.h" 42 43 43 #include "pickup/Pickup.h" 44 44 45 45 namespace orxonox { 46 46 47 47 /** 48 48 @brief … … 57 57 { 58 58 public: 59 59 60 60 InvisiblePickup(BaseObject* creator); //!< Constructor. 61 61 virtual ~InvisiblePickup(); //!< Destructor. … … 63 63 virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around. 64 64 virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass. 65 65 66 66 /** 67 67 @brief Checks whether the Pawn is invisible. … … 72 72 inline float getDuration() 73 73 { return this->duration_; } 74 74 75 75 protected: 76 76 bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again. … … 78 78 void initializeIdentifier(void); 79 79 virtual void pickupTimerCallback(void); //!< Function that gets called when the timer ends. 80 80 81 81 private: 82 82 void initialize(void); //!< Initializes the member variables. -
code/trunk/src/modules/pickup/items/MetaPickup.cc
r6709 r7163 34 34 #include "core/CoreIncludes.h" 35 35 #include "core/XMLPort.h" 36 #include "worldentities/pawns/Pawn.h" 36 37 #include "interfaces/PickupCarrier.h" 37 38 #include "pickup/PickupIdentifier.h" … … 40 41 41 42 namespace orxonox { 42 43 43 44 CreateFactory(MetaPickup); 44 45 45 46 //! Setting the static variables to their values. 46 47 /*static*/ const std::string MetaPickup::metaTypeNone_s = "none"; 47 48 /*static*/ const std::string MetaPickup::metaTypeUse_s = "use"; 48 49 /*static*/ const std::string MetaPickup::metaTypeDrop_s = "drop"; 49 50 /*static*/ const std::string MetaPickup::metaTypeDestroy_s = "destroy"; 51 /*static*/ const std::string MetaPickup::metaTypeDestroyCarrier_s = "destroyCarrier"; 52 50 53 /** 51 54 @brief … … 55 58 { 56 59 RegisterObject(MetaPickup); 57 60 58 61 this->initialize(); 59 62 } 60 63 61 64 /** 62 65 @brief … … 65 68 MetaPickup::~MetaPickup() 66 69 { 67 68 } 69 70 71 } 72 70 73 /** 71 74 @brief … … 75 78 { 76 79 this->addTarget(ClassIdentifier<PickupCarrier>::getIdentifier()); 77 80 78 81 this->setActivationTypeDirect(pickupActivationType::immediate); 79 82 this->setDurationTypeDirect(pickupDurationType::once); 80 83 this->metaType_ = pickupMetaType::none; 81 84 } 82 85 83 86 /** 84 87 @brief … … 91 94 this->pickupIdentifier_->addParameter(type, val); 92 95 } 93 96 94 97 /** 95 98 @brief … … 99 102 { 100 103 SUPER(MetaPickup, XMLPort, xmlelement, mode); 101 104 102 105 XMLPortParam(MetaPickup, "metaType", setMetaType, getMetaType, xmlelement, mode); 103 106 104 107 this->initializeIdentifier(); 105 108 } 106 109 107 110 /** 108 111 @brief … … 113 116 { 114 117 SUPER(MetaPickup, changedUsed); 115 118 116 119 //! If the MetaPickup transited to used. 117 120 if(this->isUsed()) … … 120 123 if(this->getMetaTypeDirect() != pickupMetaType::none && carrier != NULL) 121 124 { 125 if(this->getMetaTypeDirect() == pickupMetaType::destroyCarrier) 126 { 127 Pawn* pawn = orxonox_cast<Pawn*>(carrier); 128 pawn->kill(); 129 return; 130 } 122 131 std::set<Pickupable*> pickups = carrier->getPickups(); 123 //! Set all Pickupables carried by the PickupCarrier either to used or drop them, depending o the meta type.132 //! Set all Pickupables carried by the PickupCarrier either to used or drop them, depending on the meta type. 124 133 for(std::set<Pickupable*>::iterator it = pickups.begin(); it != pickups.end(); it++) 125 134 { … … 136 145 if(pickup != NULL && pickup != this) 137 146 { 138 carrier->drop(pickup); 147 pickup->drop(); 148 } 149 } 150 if(this->getMetaTypeDirect() == pickupMetaType::destroy) 151 { 152 if(pickup != NULL && pickup != this) 153 { 154 pickup->Pickupable::destroy(); 139 155 } 140 156 } 141 157 } 142 158 } 143 this-> destroy();144 } 145 } 146 159 this->Pickupable::destroy(); 160 } 161 } 162 147 163 /** 148 164 @brief … … 155 171 if(item == NULL) 156 172 item = new MetaPickup(this); 157 173 158 174 SUPER(MetaPickup, clone, item); 159 175 160 176 MetaPickup* pickup = dynamic_cast<MetaPickup*>(item); 161 177 pickup->setMetaTypeDirect(this->getMetaTypeDirect()); 162 178 163 179 pickup->initializeIdentifier(); 164 180 } 165 181 166 182 /** 167 183 @brief … … 180 196 case pickupMetaType::drop: 181 197 return MetaPickup::metaTypeDrop_s; 198 case pickupMetaType::destroy: 199 return MetaPickup::metaTypeDestroy_s; 200 case pickupMetaType::destroyCarrier: 201 return MetaPickup::metaTypeDestroyCarrier_s; 182 202 default: 183 203 return BLANKSTRING; 184 204 } 185 205 } 186 206 187 207 /** 188 208 @brief … … 205 225 this->setMetaTypeDirect(pickupMetaType::drop); 206 226 } 207 } 208 227 else if(type == MetaPickup::metaTypeDestroy_s) 228 { 229 this->setMetaTypeDirect(pickupMetaType::destroy); 230 } 231 else if(type == MetaPickup::metaTypeDestroyCarrier_s) 232 { 233 this->setMetaTypeDirect(pickupMetaType::destroyCarrier); 234 } 235 else 236 COUT(2) << "Invalid metaType '" << type << "' in MetaPickup." << std::endl; 237 } 238 209 239 } -
code/trunk/src/modules/pickup/items/MetaPickup.h
r6709 r7163 48 48 none, 49 49 use, 50 drop 50 drop, 51 destroy, 52 destroyCarrier 51 53 }; 52 54 } 53 55 54 56 /** 55 57 @brief 56 The MetaPickup is a pickup that can, depending on the parameters, either drop all pickups of the PickupCarrier that picks it up, or use all the unused pickups of the PickupCarrier, that picks it up. The parameter to set for this is the metaType and it can be used with the values 'none', 'drop' and 'use'. 58 The MetaPickup is a pickup that can, depending on the parameter 'metaType', do different things. If the 'metaType' is set to 59 1) 'use', all the pickups, the PickupCarrier has, are immediately set to used upon pickup of the MetaPickup. 60 2) 'drop', all the pickups, the PickupCarrier has, are immediately dropped upon pickup of the MetaPickup. 61 3) 'destroy', all the pickups, the PickupCarrier has, are immediately destroyed upon pickup of the MetaPickup. 62 4) 'destroyCarrier', the PickupCarrier is immediately destroyed upon pickup of the MetaPickup. 57 63 @author 58 64 Damian 'Mozork' Frick … … 60 66 class _PickupExport MetaPickup : public Pickup 61 67 { 62 68 63 69 public: 64 70 MetaPickup(BaseObject* creator); //!< Constructor. Registers and initializes the object. 65 71 virtual ~MetaPickup(); //!< Destructor. 66 72 67 73 virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a MetaPickup object through XML. 68 74 69 75 virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around. 70 76 virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass. 71 77 72 78 /** 73 79 @brief Returns the meta type of the MetaPickup. … … 77 83 { return this->metaType_; } 78 84 const std::string& getMetaType(void); //!< Get the meta type of this MetaPickup. 79 85 80 86 protected: 81 87 void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup. 82 88 83 89 /** 84 90 @brief Set the meta type of the MetaPickup. … … 88 94 { this->metaType_ = type; } 89 95 void setMetaType(const std::string& type); //!< Set the meta type of this MetaPickup. 90 96 91 97 private: 92 98 void initialize(void); //!< Initializes the member variables. 93 99 94 100 pickupMetaType::Value metaType_; //!< The meta type of the MetaPickup, determines which actions are taken. 95 101 96 102 //! Static strings for the meta types. 97 103 static const std::string metaTypeNone_s; 98 104 static const std::string metaTypeUse_s; 99 105 static const std::string metaTypeDrop_s; 100 101 106 static const std::string metaTypeDestroy_s; 107 static const std::string metaTypeDestroyCarrier_s; 108 109 102 110 }; 103 111 -
code/trunk/src/modules/pickup/items/SpeedPickup.cc
r6755 r7163 136 136 Engine* engine = this->carrierToEngineHelper(); 137 137 if(engine == NULL) //!< If the PickupCarrier is no Engine, then this pickup is useless and therefore is destroyed. 138 this-> destroy();139 138 this->Pickupable::destroy(); 139 140 140 //! If the pickup has transited to used. 141 141 if(this->isUsed()) … … 156 156 engine->setSpeedAdd(0.0f); 157 157 engine->setSpeedMultiply(1.0f); 158 158 159 159 if(this->isOnce()) 160 160 { 161 161 if(!this->getTimer()->isActive() && this->getTimer()->getRemainingTime() == this->getDuration()) 162 162 { 163 this-> destroy();163 this->Pickupable::destroy(); 164 164 } 165 165 else … … 186 186 COUT(1) << "Invalid PickupCarrier in SpeedPickup." << std::endl; 187 187 } 188 188 189 189 return engine; 190 190 } … … 269 269 270 270 void SpeedPickup::pickupTimerCallback(void) 271 { 271 { 272 272 this->setUsed(false); 273 273 } -
code/trunk/src/modules/pickup/items/SpeedPickup.h
r6709 r7163 78 78 protected: 79 79 void initializeIdentifier(void); //!< Initializes the PickupIdentifier of this pickup. 80 80 81 81 virtual void pickupTimerCallback(void); //!< Function that gets called when timer ends. 82 82
Note: See TracChangeset
for help on using the changeset viewer.