- Timestamp:
- Apr 18, 2009, 6:14:52 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/weapons/src/orxonox/objects/weaponSystem/Weapon.h
r2914 r2918 22 22 * Author: 23 23 * Martin Polak 24 * Fabian 'x3n' Landau 24 25 * Co-authors: 25 26 * ... … … 34 35 35 36 #include "tools/Timer.h" 36 #include "core/Identifier.h"37 37 38 38 namespace orxonox … … 46 46 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 47 47 48 virtual void fire(); 49 void attachNeededMunition(const std::string& munitionType); 50 Munition * getAttachedMunition(const std::string& munitiontype); 48 void fire(unsigned int mode); 49 void reload(); 51 50 52 //reloading 53 void bulletTimer(float bulletLoadingTime); 54 void magazineTimer(float magazineLoadingTime); 55 void bulletReloaded(); 56 void magazineReloaded(); 51 void addWeaponmode(WeaponMode* weaponmode); 52 WeaponMode* getWeaponmode(unsigned int index) const; 57 53 58 //XMLPort functions 59 virtual void setMunitionType(const std::string& munitionType); 60 virtual const std::string& getMunitionType() const; 61 virtual void setBulletLoadingTime(float loadingTime); 62 virtual const float getBulletLoadingTime() const; 63 virtual void setMagazineLoadingTime(float loadingTime); 64 virtual const float getMagazineLoadingTime() const; 65 virtual void setBulletAmount(unsigned int amount); 66 virtual const unsigned int getBulletAmount() const; 67 virtual void setMagazineAmount(unsigned int amount); 68 virtual const unsigned int getMagazineAmount() const; 69 virtual void setUnlimitedMunition(bool unlimitedMunition); 70 virtual const bool getUnlimitedMunition() const; 71 72 //weapon actions 73 virtual void takeBullets(); 74 virtual void takeMagazines(); 75 virtual void createProjectile(); 76 virtual void reloadBullet(); 77 virtual void reloadMagazine(); 78 79 //manually set or reset 80 virtual void setWeapon(); 81 virtual void setMunition(); 82 83 inline void setWeaponSystem(WeaponSystem *weaponSystem) 84 { this->weaponSystem_ = weaponSystem; }; 85 inline WeaponSystem * getWeaponSystem() const 86 { return this->weaponSystem_; }; 87 88 inline void setWeaponPack(WeaponPack *weaponPack) 89 { this->weaponPack_ = weaponPack; }; 54 inline void setWeaponPack(WeaponPack * weaponPack) 55 { this->weaponPack_ = weaponPack; this->notifyWeaponModes(); } 90 56 inline WeaponPack * getWeaponPack() const 91 { return this->weaponPack_; } ;57 { return this->weaponPack_; } 92 58 93 59 inline void setWeaponSlot(WeaponSlot * wSlot) … … 96 62 { return this->weaponSlot_; } 97 63 98 protected: 64 private: 65 void reloaded(); 66 void notifyWeaponModes(); 67 68 WeaponPack* weaponPack_; 69 WeaponSlot* weaponSlot_; 70 std::multimap<unsigned int, WeaponMode*> weaponmodes_; 71 72 Timer<Weapon> reloadTimer_; 99 73 bool bReloading_; 100 bool bulletReadyToShoot_; 101 bool magazineReadyToShoot_; 102 bool unlimitedMunition_; 103 float bulletLoadingTime_; 104 float magazineLoadingTime_; 105 unsigned int bulletAmount_; 106 unsigned int magazineAmount_; 107 std::string munitionType_; 108 109 WeaponSlot * weaponSlot_; 110 Munition * munition_; 111 WeaponSystem * weaponSystem_; 112 WeaponPack* weaponPack_; 113 114 SubclassIdentifier<Munition> munitionIdentifier_; 115 116 Timer<Weapon> bulletReloadTimer_; 117 Timer<Weapon> magazineReloadTimer_; 74 unsigned int reloadingWeaponmode_; 118 75 }; 119 76 }
Note: See TracChangeset
for help on using the changeset viewer.