Changeset 6655 in orxonox.OLD for trunk/src/world_entities/weapons/ammo_container.cc
- Timestamp:
- Jan 23, 2006, 2:02:22 PM (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/world_entities/weapons/ammo_container.cc
r6653 r6655 10 10 11 11 ### File Specific: 12 main-programmer: ...12 main-programmer: Benjamin Grauer 13 13 co-programmer: ... 14 14 */ … … 16 16 //#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_ 17 17 18 #include "proto_class.h" 18 #include "ammo_container.h" 19 20 #include "weapon.h" 21 22 #include <assert.h> 19 23 20 24 using namespace std; 21 22 25 23 26 /** … … 25 28 * @todo this constructor is not jet implemented - do it 26 29 */ 27 ProtoClass::ProtoClass ()30 AmmoContainer::AmmoContainer (ClassID projectileType, float maxEnergy) 28 31 { 29 this->setClassID(CL_ PROTO_ID, "ProtoClass");32 this->setClassID(CL_AMMO_CONTAINER, "AmmoContainer"); 30 33 31 /* If you make a new class, what is most probably the case when you write this file32 don't forget to:33 1. Add the new file new_class.cc to the ./src/Makefile.am34 2. Add the class identifier to ./src/class_id.h eg. CL_NEW_CLASS35 34 36 Advanced Topics:37 - if you want to let your object be managed via the ObjectManager make sure to read38 the object_manager.h header comments. You will use this most certanly only if you39 make many objects of your class, like a weapon bullet.40 */41 35 } 42 36 … … 45 39 * standard deconstructor 46 40 */ 47 ProtoClass::~ProtoClass()41 AmmoContainer::~AmmoContainer () 48 42 { 49 43 // delete what has to be deleted here 50 44 } 45 46 47 48 float AmmoContainer::increaseEnergy(float energy) 49 { 50 this->energy += energy; 51 52 if (unlikely(this->energy > this->maxEnergy)) 53 { 54 float retEnergy = this->energy - this->maxEnergy; 55 this->energy = this->maxEnergy; 56 return retEnergy; 57 } 58 else 59 return 0.0f; 60 } 61 62 63 float AmmoContainer::decreaseEnergy(float energy) 64 { 65 this->energy -= energy; 66 67 if (unlikely(this->energy < 0)) 68 { 69 float retEnergy = 0 - this->energy; 70 this->energy = 0; 71 return retEnergy; 72 } 73 else 74 return 0.0f; 75 } 76 77 bool AmmoContainer::weaponValid(const Weapon* weapon) 78 { 79 return (weapon->isA(this->projectileType)); 80 } 81 82 83 void AmmoContainer::fillWeapon(Weapon* weapon) 84 { 85 assert (weapon != NULL); 86 87 float fillEnergy = weapon->getEnergyMax(); 88 89 float restEnergy = weapon->increaseEnergy(fillEnergy); 90 this->decreaseEnergy(fillEnergy - restEnergy); 91 }
Note: See TracChangeset
for help on using the changeset viewer.