Changeset 9348 for code/trunk/src/modules/pickup/items/HealthPickup.cc
- Timestamp:
- Aug 30, 2012, 11:08:17 PM (12 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:ignore
-
old new 1 .project 1 2 build 2 3 codeblocks 4 dependencies 3 5 vs 4 dependencies
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
code/trunk/src/modules/pickup/items/HealthPickup.cc
r8864 r9348 38 38 #include "core/XMLPort.h" 39 39 40 #include "pickup/PickupIdentifier.h"41 40 #include "worldentities/pawns/Pawn.h" 42 41 … … 87 86 /** 88 87 @brief 89 Initializes the PickupIdentifier of this pickup.90 */91 void HealthPickup::initializeIdentifier(void)92 {93 std::stringstream stream;94 stream << this->getHealth();95 std::string type1 = "health";96 std::string val1 = stream.str();97 this->pickupIdentifier_->addParameter(type1, val1);98 99 std::string val2 = this->getHealthType();100 std::string type2 = "healthType";101 this->pickupIdentifier_->addParameter(type2, val2);102 103 stream.clear();104 stream << this->getHealthRate();105 std::string val3 = stream.str();106 std::string type3 = "healthRate";107 this->pickupIdentifier_->addParameter(type3, val3);108 }109 110 /**111 @brief112 88 Method for creating a HealthPickup object through XML. 113 89 */ … … 118 94 XMLPortParam(HealthPickup, "health", setHealth, getHealth, xmlelement, mode); 119 95 XMLPortParam(HealthPickup, "healthRate", setHealthRate, getHealthRate, xmlelement, mode); 120 XMLPortParam(HealthPickup, "healthType", setHealthType , getHealthType, xmlelement, mode);96 XMLPortParam(HealthPickup, "healthType", setHealthTypeAsString, getHealthTypeAsString, xmlelement, mode); 121 97 122 98 if(!this->isContinuous()) 123 this->healthRate_ = 0.0f; 124 125 this->initializeIdentifier(); 99 this->setHealthRate(0.0f); // TODO: this logic should be inside tick(), not in XMLPort 126 100 } 127 101 … … 151 125 this->setHealth(this->getHealth()-health); 152 126 153 switch(this->getHealthType Direct())127 switch(this->getHealthType()) 154 128 { 155 129 case pickupHealthType::permanent: … … 198 172 199 173 float health = 0.0f; 200 switch(this->getHealthType Direct())174 switch(this->getHealthType()) 201 175 { 202 176 case pickupHealthType::permanent: … … 227 201 else 228 202 { 229 if(this->getHealthType Direct() == pickupHealthType::temporary)203 if(this->getHealthType() == pickupHealthType::temporary) 230 204 { 231 205 PickupCarrier* carrier = this->getCarrier(); 232 Pawn* pawn = dynamic_cast<Pawn*>(carrier);206 Pawn* pawn = orxonox_cast<Pawn*>(carrier); 233 207 234 208 if(pawn == NULL) … … 264 238 { 265 239 PickupCarrier* carrier = this->getCarrier(); 266 Pawn* pawn = dynamic_cast<Pawn*>(carrier);240 Pawn* pawn = orxonox_cast<Pawn*>(carrier); 267 241 268 242 if(pawn == NULL) … … 270 244 271 245 return pawn; 272 }273 274 /**275 @brief276 Creates a duplicate of the input OrxonoxClass.277 @param item278 A pointer to the Orxonox class.279 */280 void HealthPickup::clone(OrxonoxClass*& item)281 {282 if(item == NULL)283 item = new HealthPickup(this);284 285 SUPER(HealthPickup, clone, item);286 287 HealthPickup* pickup = dynamic_cast<HealthPickup*>(item);288 pickup->setHealth(this->getHealth());289 pickup->setHealthRate(this->getHealthRate());290 pickup->setHealthTypeDirect(this->getHealthTypeDirect());291 292 pickup->initializeIdentifier();293 246 } 294 247 … … 299 252 Returns the health type as a string. 300 253 */ 301 const std::string& HealthPickup::getHealthType (void) const302 { 303 switch(this->getHealthType Direct())254 const std::string& HealthPickup::getHealthTypeAsString(void) const 255 { 256 switch(this->getHealthType()) 304 257 { 305 258 case pickupHealthType::limited: … … 352 305 The type as a string. 353 306 */ 354 void HealthPickup::setHealthType (std::stringtype)307 void HealthPickup::setHealthTypeAsString(const std::string& type) 355 308 { 356 309 if(type == HealthPickup::healthTypeLimited_s) 357 this->setHealthType Direct(pickupHealthType::limited);310 this->setHealthType(pickupHealthType::limited); 358 311 else if(type == HealthPickup::healthTypeTemporary_s) 359 this->setHealthType Direct(pickupHealthType::temporary);312 this->setHealthType(pickupHealthType::temporary); 360 313 else if(type == HealthPickup::healthTypePermanent_s) 361 this->setHealthType Direct(pickupHealthType::permanent);314 this->setHealthType(pickupHealthType::permanent); 362 315 else 363 316 orxout(internal_error, context::pickups) << "Invalid healthType '" << type << "' in HealthPickup." << endl;
Note: See TracChangeset
for help on using the changeset viewer.