- Timestamp:
- Jul 17, 2005, 12:37:18 AM (19 years ago)
- Location:
- orxonox/branches/weaponSystem/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/weaponSystem/src/lib/sound/sound_engine.h
r4836 r4878 37 37 38 38 //! A class that represents a SoundSource 39 /** 40 * @todo ability to play back different SoundBuffers on the same SounSource 41 */ 39 42 class SoundSource : public BaseObject 40 43 { -
orxonox/branches/weaponSystem/src/util/loading/factory.h
r4836 r4878 15 15 16 16 /*! 17 \file factory.h18 \brief A loadable object handler17 * @file factory.h 18 * @brief A loadable object handler 19 19 */ 20 20 … … 31 31 32 32 /** 33 Creates a factory to a Loadable Class. 34 this should be used at the beginning of all the Classes that should be loadable (in the cc-file) 35 @todo make factoryName a BaseObject-parameter. (else it would be redundant) 33 * Creates a factory to a Loadable Class. 34 * this should be used at the beginning of all the Classes that should be loadable (in the cc-file) 36 35 */ 37 #define CREATE_FACTORY(CLASS_NAME) tFactory<CLASS_NAME>* global_##CLASS_NAME##_Factory = new tFactory<CLASS_NAME>(#CLASS_NAME) 36 #define CREATE_FACTORY(CLASS_NAME) \ 37 tFactory<CLASS_NAME>* global_##CLASS_NAME##_Factory = new tFactory<CLASS_NAME>(#CLASS_NAME) 38 38 39 39 //! The Factory is a loadable object handler … … 48 48 49 49 static void registerFactory( Factory* factory); 50 /** \briefsets the Next factory in the list @param nextFactory the next factory */50 /** sets the Next factory in the list @param nextFactory the next factory */ 51 51 inline void setNext( Factory* nextFactory) { this->next = nextFactory; }; 52 52 /** @returns the first factory */ … … 54 54 /** @returns the next factory */ 55 55 Factory* getNext() const { return this->next; }; 56 57 58 private:59 56 60 57 private: -
orxonox/branches/weaponSystem/src/world_entities/player.cc
r4877 r4878 241 241 if( this->bRight && TrackManager::getInstance()->getWidth() > this->getRelCoor().z*2) 242 242 accel = accel + (orthDirection*acceleration); 243 if( this->bAscend ) 243 if( this->bAscend ) { /* FIXME */ } 244 244 if( this->bDescend) {/* FIXME */} /* @todo up and down player movement */ 245 245 … … 250 250 251 251 /** 252 * 252 * weapon manipulation by the player 253 253 */ 254 254 void Player::weaponAction() … … 271 271 { 272 272 if( event.type == KeyMapper::PEV_UP) 273 {274 273 this->bUp = event.bPressed; 275 }276 274 else if( event.type == KeyMapper::PEV_DOWN) 277 {278 275 this->bDown = event.bPressed; 279 }280 276 else if( event.type == KeyMapper::PEV_RIGHT) 281 {282 277 this->bRight= event.bPressed; 283 }284 278 else if( event.type == KeyMapper::PEV_LEFT) 285 {286 279 this->bLeft = event.bPressed; 287 }288 280 else if( event.type == KeyMapper::PEV_FIRE1) 289 { 290 this->bFire = event.bPressed; 291 } 281 this->bFire = event.bPressed; 292 282 else if( event.type == KeyMapper::PEV_NEXT_WEAPON) 293 {294 283 if( !event.bPressed) this->bWeaponChange = !this->bWeaponChange; 295 } 296 297 } 284 285 } -
orxonox/branches/weaponSystem/src/world_entities/weapons/test_gun.cc
r4836 r4878 50 50 51 51 this->model = (Model*)ResourceManager::getInstance()->load("models/test_gun.obj", OBJ, RP_CAMPAIGN); 52 this->idleTime = 0.2f;53 52 this->leftRight = leftRight; 54 53 … … 145 144 void TestGun::fire() 146 145 { 147 if( !this-> hasWeaponIdleTimeElapsed())146 if( !this->stateTimeElapsed()) 148 147 { 149 148 this->weaponIdle(); … … 158 157 pj->setVelocity(this->getVelocity()); 159 158 State::getWorldEntityList()->add(pj); 160 this->localTime = 0;161 159 162 160 this->animation1->replay(); … … 191 189 void TestGun::tick (float time) 192 190 { 193 this-> localTime += time;191 this->stateTime += time; 194 192 } 195 193 -
orxonox/branches/weaponSystem/src/world_entities/weapons/weapon.cc
r4836 r4878 25 25 26 26 /** 27 * 28 29 27 * standard constructor 28 * 29 * creates a new weapon 30 30 */ 31 31 Weapon::Weapon (PNode* parent, const Vector& coordinate, const Quaternion& direction) 32 32 { 33 this->init(); 33 34 parent->addChild(this, PNODE_ALL); 34 35 this->setRelCoor(coordinate); … … 36 37 } 37 38 38 39 39 /** 40 * 40 * standard deconstructor 41 41 */ 42 42 Weapon::~Weapon () … … 50 50 } 51 51 52 void Weapon::init() 53 { 54 this->currentState = WS_INACTIVE; 55 this->stateTime = 0.0; 56 for (int i = 0; i < WS_STATE_COUNT; i++) 57 { 58 this->times[i] = 0.0; 59 this->animation[i] = NULL; 60 } 61 for (int i = 0; i < WA_ACTION_COUNT; i++) 62 this->soundBuffers[i] = NULL; 63 64 this->weaponSource = NULL; 65 this->minCharge; 66 this->maxCharge; 67 68 this->active = false; 69 this->projectile = NULL; 70 } 52 71 53 72 /** 54 * enables the weapon 55 56 a weapon can be enabled/disabled because of various reasons. if a weapon is 57 been enabled, it can interact in a world. elswhere it wont react to any 58 action. 59 */ 60 void Weapon::enable() 61 { 62 this->enabled = true; 63 } 64 65 66 /** 67 * disables the weapon 68 69 a weapon can be enabled/disabled because of various reasons. if a weapon is 70 been enabled, it can interact in a world. elswhere it wont react to any 71 action. 72 */ 73 void Weapon::disable() 74 { 75 this->enabled = false; 76 } 77 78 79 /** 80 * checks if the weapon is enabled 81 * @returns true if enabled 82 83 a weapon can be ebabled/disabled because of various reasons. if a weapon is 84 been enabled, it can interact in a world. elswhere it wont react to any 85 action. 86 */ 87 bool Weapon::isEnabled() 88 { 89 return this->enabled; 90 } 91 92 93 /** 94 * sets a new projectile to the weapon 73 * sets a new projectile to the weapon 95 74 * @param new projectile for this weapon 96 97 75 * 76 * weapon an projectile are independent, so you can combine them as you want 98 77 */ 99 78 void Weapon::setProjectile(Projectile* projectile) … … 104 83 105 84 /** 106 * 85 * sets a new projectile to the weapon 107 86 * @returns the current projectile of this weapon 108 109 87 * 88 * weapon an projectile are independent, so you can combine them as you want 110 89 */ 111 90 Projectile* Weapon::getProjectile() … … 116 95 117 96 /** 118 * 119 120 121 122 97 * this activates the weapon 98 * 99 * This is needed, since there can be more than one weapon on a ship. the 100 * activation can be connected with an animation. for example the weapon is 101 * been armed out. 123 102 */ 124 103 void Weapon::activate() … … 127 106 128 107 /** 129 * 130 131 132 133 108 * this deactivates the weapon 109 * 110 * This is needed, since there can be more than one weapon on a ship. the 111 * activation can be connected with an animation. for example the weapon is 112 * been armed out. 134 113 */ 135 114 void Weapon::deactivate() … … 137 116 138 117 /** 139 * asks if the current weapon is active 140 * @returns true if it the weapon is active 141 */ 142 bool Weapon::isActive() 143 {} 144 145 146 147 148 149 150 /** 151 * is called, when the weapon gets hit (=collide with something) 118 * is called, when the weapon gets hit (=collide with something) 152 119 * @param from which entity it is been hit 153 120 * @param where it is been hit 154 155 156 121 * 122 * this may not be used, since it would make the game relay complicated when one 123 * can destroy the weapons of enemies or vice versa. 157 124 */ 158 125 void Weapon::hit (WorldEntity* entity, const Vector& position) … … 162 129 /** 163 130 * is called, when the weapon is destroyed 164 165 166 131 * 132 * this is in conjunction with the hit function, so when a weapon is able to get 133 * hit, it can also be destoryed. 167 134 */ 168 135 void Weapon::destroy () -
orxonox/branches/weaponSystem/src/world_entities/weapons/weapon.h
r4876 r4878 78 78 void loadParams(const TiXmlElement* root); 79 79 80 void enable();81 void disable();82 bool isEnabled();83 84 80 void setProjectile(Projectile* projectile); 85 81 Projectile* getProjectile(); … … 87 83 virtual void activate(); 88 84 virtual void deactivate(); 89 bool isActive(); 85 virtual void fire() = 0; 86 //virtual void reload(); 87 //virtual void charge(); 88 bool isActive() const { return this->active; }; 90 89 91 92 /** @param idle time in ms */ 93 inline void setWeaponIdleTime(float idleTime) { this->idleTime = idleTime; }; 94 /** @returns idle time in ms */ 95 inline float getWeaponIdleTime() const { return this->idleTime; }; 96 /** @return true if idletime is elapsed else otherwise */ 97 inline bool hasWeaponIdleTimeElapsed() const { return (this->localTime > this->idleTime)?true:false; }; 90 // FUNCTIONS TO SET THE WEAPONS PROPERTIES. 91 void setStateDuration(const char* state, float duration); 92 void setStateDuration(WeaponState state, float duration); 93 float getStateDuration(WeaponState state) { return (state < WS_STATE_COUNT)?this->times[state]:0.0; }; 94 /** @return true if idletime is elapsed, false otherwise */ 95 inline bool stateTimeElapsed() const { return (this->stateTime > this->times[currentState])?true:false; }; 98 96 99 97 /** fires the weapon */ 100 virtual void fire() = 0;101 98 virtual void hit (WorldEntity* weapon, const Vector& loc); 102 99 virtual void destroy(); … … 107 104 108 105 protected: 109 float localTime; //<! this is the local time. important for shooting attributes like frequency110 float idleTime; //<! the time a weapon needs before it can shoot again. eg. shooting frequency or actication/deactivateion delay111 float slowDownFactor; //<! if the shooting frequency is a linear function of time...112 113 106 //////////// 114 107 // PHASES // 115 108 //////////// 116 109 WeaponState currentState; //!< The State the weapon is in. 117 float stateTime; //!< how long the state has t eken until now.110 float stateTime; //!< how long the state has taken until now. 118 111 float times[WS_STATE_COUNT]; //!< Times to stay in the different States @see WeaponState. 119 112 SoundBuffer* soundBuffers[WA_ACTION_COUNT]; //!< SoundBuffers for all actions @see WeaponAction. … … 127 120 128 121 private: 129 bool enabled; //<! states if the weapon is enabled or not 130 Projectile* projectile; //<! the projectile used for this weapon 131 //WeaponSound sound; 122 bool active; //!< states wheter the weapon is enabled or not 123 Projectile* projectile; //!< the projectile used for this weapon 132 124 }; 133 125 -
orxonox/branches/weaponSystem/src/world_entities/world_entity.cc
r4877 r4878 62 62 63 63 /** 64 * 64 * loads a Model onto a WorldEntity 65 65 * @param fileName the name of the model to load 66 66 */ … … 79 79 80 80 /** 81 * 81 * sets the character attributes of a worldentity 82 82 * @param character attributes 83 84 83 * 84 * these attributes don't have to be set, only use them, if you need them 85 85 */ 86 86 void WorldEntity::setCharacterAttributes(CharacterAttributes* charAttr) … … 89 89 90 90 /** 91 * 91 * gets the Character attributes of this worldentity 92 92 * @returns character attributes 93 93 */ … … 95 95 {} 96 96 97 98 /**99 * set the WorldEntity's collision hull100 * @param newhull: a pointer to a completely assembled CollisionCluster101 102 Any previously assigned collision hull will be deleted on reassignment103 */104 /*105 void WorldEntity::setCollision (CollisionCluster* newhull)106 {107 if( newhull == NULL) return;108 if( collisioncluster != NULL) delete collisioncluster;109 collisioncluster = newhull;110 }111 */112 113 97 /** 114 98 * this function is called, when two entities collide 115 99 * @param entity: the world entity with whom it collides 116 117 100 * 101 * Implement behaviour like damage application or other miscellaneous collision stuff in this function 118 102 */ 119 103 void WorldEntity::collideWith(WorldEntity* entity) … … 127 111 * @param weapon: the laser/rocket/shoot that hits. 128 112 * @param loc: place where it is hit 129 130 113 * 114 * calculate the damage depending 131 115 */ 132 116 void WorldEntity::hit(WorldEntity* weapon, Vector* loc) {} … … 135 119 /** 136 120 * this is called immediately after the Entity has been constructed and initialized 137 138 139 121 * 122 * Put any initialisation code that requires knowledge of location (placement if the Entity is free) and owner of the entity here. 123 * DO NOT place such code in the constructor, those variables are set AFTER the entity is constucted. 140 124 */ 141 125 void WorldEntity::postSpawn () … … 146 130 /** 147 131 * this method is called by the world if the WorldEntity leaves valid gamespace 148 149 150 132 * 133 * For free entities this means it left the Track boundaries. With bound entities it means its Location adresses a 134 * place that is not in the world anymore. In both cases you might have to take extreme measures (a.k.a. call destroy). 151 135 */ 152 136 void WorldEntity::leftWorld () … … 158 142 * this method is called every frame 159 143 * @param time: the time in seconds that has passed since the last tick 160 161 144 * 145 * Handle all stuff that should update with time inside this method (movement, animation, etc.) 162 146 */ 163 147 void WorldEntity::tick(float time) … … 167 151 /** 168 152 * the entity is drawn onto the screen with this function 169 170 This is a central function of an entity: call it to let the entity painted to the screen. Just override this function with whatever you want to be drawn. 153 * 154 * This is a central function of an entity: call it to let the entity painted to the screen. 155 * Just override this function with whatever you want to be drawn. 171 156 */ 172 157 void WorldEntity::draw() -
orxonox/branches/weaponSystem/src/world_entities/world_entity.h
r4877 r4878 1 1 /*! 2 \file world_entity.h3 *Definition of the basic WorldEntity2 * @file world_entity.h 3 * Definition of the basic WorldEntity 4 4 */ 5 5 … … 8 8 9 9 #include "p_node.h" 10 #include "comincl.h"11 10 #include "resource_manager.h" 12 11 #include "factory.h" … … 16 15 17 16 18 17 // FORWARD DECLARATION 19 18 class CharacterAttributes; 20 19 class SoundEngine; … … 23 22 24 23 25 //! Basi c class from whichall interactive stuff in the world is derived from24 //! Basis-class all interactive stuff in the world is derived from 26 25 class WorldEntity : public PNode 27 26 { … … 53 52 virtual unsigned int getFaceCount () const { if (this->model) return this->model->getFaceCount(); else return 0; }; 54 53 54 virtual void tick (float time); 55 55 virtual void draw (); 56 56 void drawBVTree(int depth, int drawMode); 57 virtual void tick (float time);58 57 59 58 protected:
Note: See TracChangeset
for help on using the changeset viewer.