- Timestamp:
- Jan 23, 2006, 2:02:22 PM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 1 added
- 4 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/defs/class_id.h
r6637 r6655 209 209 210 210 CL_WEAPON_MANAGER = 0x00000503, 211 CL_AMMO_CONTAINER = 0x00000504, 211 212 CL_HUD = 0x00000520, 212 213 -
trunk/src/util/loading/resource_manager.cc
r6651 r6655 22 22 23 23 #include <algorithm> 24 #include <assert.h> 24 25 25 26 // different resource Types -
trunk/src/world_entities/Makefile.am
r6637 r6655 27 27 \ 28 28 world_entities/weapons/weapon_manager.cc \ 29 world_entities/weapons/ammo_container.cc \ 29 30 world_entities/weapons/weapon.cc \ 30 31 world_entities/weapons/test_gun.cc \ … … 79 80 \ 80 81 world_entities/weapons/weapon_manager.h \ 82 world_entities/weapons/ammo_container.h \ 81 83 world_entities/weapons/weapon.h \ 82 84 world_entities/weapons/test_gun.h \ -
trunk/src/world_entities/items/item_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 "item_container.h" 19 19 20 20 using namespace std; … … 25 25 * @todo this constructor is not jet implemented - do it 26 26 */ 27 ProtoClass::ProtoClass()27 ItemContainer::ItemContainer () 28 28 { 29 this->setClassID(CL_ PROTO_ID, "ProtoClass");29 this->setClassID(CL_ITEM_CONTAINER, "ItemContainer"); 30 30 31 31 /* If you make a new class, what is most probably the case when you write this file … … 45 45 * standard deconstructor 46 46 */ 47 ProtoClass::~ProtoClass()47 ItemContainer::~ItemContainer () 48 48 { 49 49 // delete what has to be deleted here -
trunk/src/world_entities/items/item_container.h
r6653 r6655 1 1 /*! 2 * @file proto_class.h3 * @brief Definition of ...4 */2 * @file item_container.h 3 * @brief Definition of a Container for Items one can pick up 4 */ 5 5 6 #ifndef _ PROTO_CLASS_H7 #define _ PROTO_CLASS_H6 #ifndef _ITEM_CONTAINER_H 7 #define _ITEM_CONTAINER_H 8 8 9 9 #include "base_object.h" … … 13 13 14 14 15 //! A class for ...16 class ProtoClass: public BaseObject {15 //! A class for storing collected Items. 16 class ItemContainer : public BaseObject { 17 17 18 18 public: 19 ProtoClass();20 virtual ~ ProtoClass();19 ItemContainer(); 20 virtual ~ItemContainer(); 21 21 22 22 … … 25 25 }; 26 26 27 #endif /* _ PROTO_CLASS_H */27 #endif /* _ITEM_CONTAINER_H */ -
trunk/src/world_entities/projectiles/laser.cc
r6622 r6655 17 17 18 18 #include "laser.h" 19 #include <assert.h> 20 19 21 20 22 #include "fast_factory.h" … … 26 28 #include "particle_emitter.h" 27 29 #include "sprite_particles.h" 30 28 31 29 32 -
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 } -
trunk/src/world_entities/weapons/ammo_container.h
r6653 r6655 4 4 */ 5 5 6 #ifndef _ PROTO_CLASS_H7 #define _ PROTO_CLASS_H6 #ifndef _AMMO_CONTAINER_H 7 #define _AMMO_CONTAINER_H 8 8 9 9 #include "base_object.h" 10 10 11 11 12 // FORWARD DECLARATION 13 class Weapon; 14 15 #define DEFAULT_MAX_ENERGY 100 16 17 //! A class for Storing energy of Projectiles. 18 class AmmoContainer : public BaseObject { 19 20 public: 21 AmmoContainer(ClassID projectileType, float maxEnergy = DEFAULT_MAX_ENERGY); 22 virtual ~AmmoContainer(); 23 24 ClassID getProjectileType() const { return this->projectileType; }; 12 25 13 26 27 float increaseEnergy(float energy); 28 float decreaseEnergy(float energy); 14 29 15 //! A class for ... 16 class ProtoClass : public BaseObject { 30 float getMaxEnergy() const { return this->maxEnergy; }; 17 31 18 public: 19 ProtoClass(); 20 virtual ~ProtoClass(); 32 void increaseMaxEnergy(float increase); 33 34 bool weaponValid(const Weapon* weapon); 35 void fillWeapon(Weapon* weapon); 21 36 22 37 23 38 private: 39 float energy; 40 float maxEnergy; 24 41 42 ClassID projectileType; 25 43 }; 26 44 27 #endif /* _ PROTO_CLASS_H */45 #endif /* _AMMO_CONTAINER_H */
Note: See TracChangeset
for help on using the changeset viewer.