Changeset 8864
- Timestamp:
- Aug 24, 2011, 2:57:53 PM (13 years ago)
- Location:
- code/trunk/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/modules/pickup/Pickup.cc
r8858 r8864 159 159 void Pickup::setActivationType(const std::string& type) 160 160 { 161 if(Pickup::activationTypeImmediate_s.compare(type) == 0) 162 { 161 if(type == Pickup::activationTypeImmediate_s) 163 162 this->activationType_ = pickupActivationType::immediate; 164 } 165 else if(Pickup::activationTypeOnUse_s.compare(type) == 0) 166 { 163 else if(type == Pickup::activationTypeOnUse_s) 167 164 this->activationType_ = pickupActivationType::onUse; 168 }169 165 else 170 { 171 orxout(internal_error, context::pickups) << "Invalid activationType '" << type << "' in pickup." << endl; 172 } 166 orxout(internal_error, context::pickups) << "Invalid activationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl; 173 167 } 174 168 … … 181 175 void Pickup::setDurationType(const std::string& type) 182 176 { 183 if(Pickup::durationTypeOnce_s.compare(type) == 0) 184 { 177 if(type == Pickup::durationTypeOnce_s) 185 178 this->durationType_ = pickupDurationType::once; 186 } 187 else if(Pickup::durationTypeContinuous_s.compare(type) == 0) 188 { 179 else if(type == Pickup::durationTypeContinuous_s) 189 180 this->durationType_ = pickupDurationType::continuous; 190 }191 181 else 192 { 193 orxout(internal_error, context::pickups) << "Invalid durationType '" << type << "' in pickup." << endl; 194 } 182 orxout(internal_error, context::pickups) << "Invalid durationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl; 195 183 } 196 184 -
code/trunk/src/modules/pickup/items/HealthPickup.cc
r8858 r8864 76 76 void HealthPickup::initialize(void) 77 77 { 78 this->health_ = 0 ;79 this->healthRate_ = 0 ;78 this->health_ = 0.0f; 79 this->healthRate_ = 0.0f; 80 80 this->healthType_ = pickupHealthType::limited; 81 this->maxHealthSave_ = 0 ;82 this->maxHealthOverwrite_ = 0 ;81 this->maxHealthSave_ = 0.0f; 82 this->maxHealthOverwrite_ = 0.0f; 83 83 84 84 this->addTarget(ClassIdentifier<Pawn>::getIdentifier()); … … 121 121 122 122 if(!this->isContinuous()) 123 this->healthRate_ = 0.0 ;123 this->healthRate_ = 0.0f; 124 124 125 125 this->initializeIdentifier(); … … 173 173 174 174 // If all health has been transferred. 175 if(this->getHealth() == 0 )175 if(this->getHealth() == 0.0f) 176 176 { 177 177 this->setUsed(false); … … 197 197 this->Pickupable::destroy(); 198 198 199 float health = 0 ;199 float health = 0.0f; 200 200 switch(this->getHealthTypeDirect()) 201 201 { … … 234 234 if(pawn == NULL) 235 235 { 236 orxout(internal_error, context::pickups) << "Something went horribly wrong in Health Pickup. PickupCarrier is noPawn." << endl;236 orxout(internal_error, context::pickups) << "Something went horribly wrong in Health Pickup. PickupCarrier is '" << carrier->getIdentifier()->getName() << "' instead of Pawn." << endl; 237 237 this->Pickupable::destroy(); 238 238 return; … … 248 248 249 249 // If either the pickup can only be used once or it is continuous and used up, it is destroyed upon setting it to unused. 250 if(this->isOnce() || (this->isContinuous() && this->getHealth() == 0 ))250 if(this->isOnce() || (this->isContinuous() && this->getHealth() == 0.0f)) 251 251 { 252 252 this->Pickupable::destroy(); … … 267 267 268 268 if(pawn == NULL) 269 {270 269 orxout(internal_error, context::pickups) << "Invalid PickupCarrier in HealthPickup." << endl; 271 }272 270 273 271 return pawn; … … 326 324 { 327 325 if(health >= 0.0f) 328 {329 326 this->health_ = health; 330 }331 327 else 332 328 { 333 orxout(internal_error, context::pickups) << "Invalid health in HealthPickup." << endl;334 this->health_ = 0.0 ;329 orxout(internal_error, context::pickups) << "Invalid health '" << health << "' in HealthPickup. The health must be non.negative." << endl; 330 this->health_ = 0.0f; 335 331 } 336 332 } … … 344 340 void HealthPickup::setHealthRate(float rate) 345 341 { 346 if(rate >= 0) 347 { 342 if(rate >= 0.0f) 348 343 this->healthRate_ = rate; 349 }350 344 else 351 { 352 orxout(internal_error, context::pickups) << "Invalid healthSpeed in HealthPickup." << endl; 353 } 345 orxout(internal_error, context::pickups) << "Invalid healthRate '" << rate << "' in HealthPickup. The healthRate must be non-negative." << endl; 354 346 } 355 347 … … 363 355 { 364 356 if(type == HealthPickup::healthTypeLimited_s) 365 {366 357 this->setHealthTypeDirect(pickupHealthType::limited); 367 }368 358 else if(type == HealthPickup::healthTypeTemporary_s) 369 {370 359 this->setHealthTypeDirect(pickupHealthType::temporary); 371 }372 360 else if(type == HealthPickup::healthTypePermanent_s) 373 {374 361 this->setHealthTypeDirect(pickupHealthType::permanent); 375 }376 362 else 377 { 378 orxout(internal_error, context::pickups) << "Invalid healthType in HealthPickup." << endl; 379 } 363 orxout(internal_error, context::pickups) << "Invalid healthType '" << type << "' in HealthPickup." << endl; 380 364 } 381 365 -
code/trunk/src/orxonox/pickup/PickupIdentifier.cc
r8858 r8864 75 75 assert(this->pickup_); 76 76 77 // If the classIdentifiers are not the same (meaning the PickupIdentifiers identify different classes), the obviously the two Pickupables identified by the PickupIdentifiers cannot be the same. An ordering is established through the alphabetical ordering of the respective classnames.77 // If the classIdentifiers are not the same (meaning the PickupIdentifiers identify different classes), then obviously the two Pickupables identified by the PickupIdentifiers cannot be the same. An ordering is established through the alphabetical ordering of the respective classnames. 78 78 if(!identifier->pickup_->getIdentifier()->isExactlyA(this->pickup_->getIdentifier())) 79 79 return this->pickup_->getIdentifier()->getName().compare(identifier->pickup_->getIdentifier()->getName()); … … 83 83 if(!(this->parameters_.size() == identifier->parameters_.size())) 84 84 { 85 orxout(internal_error, context::pickups) << " Something went wrong in PickupIdentifier!" << endl;85 orxout(internal_error, context::pickups) << "Two PickupIdentifiers of the same Class have a different number of parameters. " << this->parameters_.size() << " vs. " << identifier->parameters_.size() << ". This indicates a bug in " << this->pickup_->getIdentifier()->getName() << "." << endl; 86 86 return this->parameters_.size()-identifier->parameters_.size(); 87 87 } … … 93 93 if(identifier->parameters_.find(it->first) == identifier->parameters_.end()) 94 94 { 95 orxout(internal_error, context::pickups) << "Something went wrong in PickupIdentifier!" << endl;95 orxout(internal_error, context::pickups) << this->pickup_->getIdentifier()->getName() << " Something went wrong in PickupIdentifier!" << endl; 96 96 return -1; 97 97 }
Note: See TracChangeset
for help on using the changeset viewer.