Changeset 8379 for code/branches/gameimmersion/src/orxonox
- Timestamp:
- May 2, 2011, 2:18:04 PM (14 years ago)
- Location:
- code/branches/gameimmersion
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gameimmersion
- Property svn:mergeinfo changed
/code/branches/steering merged: 8223
- Property svn:mergeinfo changed
-
code/branches/gameimmersion/src/orxonox/controllers/HumanController.cc
r8079 r8379 42 42 extern const std::string __CC_fire_name = "fire"; 43 43 extern const std::string __CC_suicide_name = "suicide"; 44 const std::string __CC_boost_name = "boost"; 44 45 45 46 SetConsoleCommand("HumanController", "moveFrontBack", &HumanController::moveFrontBack ).addShortcut().setAsInputCommand(); … … 51 52 SetConsoleCommand("HumanController", __CC_fire_name, &HumanController::fire ).addShortcut().keybindMode(KeybindMode::OnHold); 52 53 SetConsoleCommand("HumanController", "reload", &HumanController::reload ).addShortcut(); 53 SetConsoleCommand("HumanController", "boost", &HumanController::boost ).addShortcut().keybindMode(KeybindMode::OnHold);54 SetConsoleCommand("HumanController", __CC_boost_name, &HumanController::toggleBoost ).addShortcut().keybindMode(KeybindMode::OnPress); 54 55 SetConsoleCommand("HumanController", "greet", &HumanController::greet ).addShortcut(); 55 56 SetConsoleCommand("HumanController", "switchCamera", &HumanController::switchCamera ).addShortcut(); … … 72 73 73 74 controlPaused_ = false; 75 this->boosting_ = false; 74 76 75 77 HumanController::localController_s = this; … … 163 165 } 164 166 165 void HumanController::boost() 166 { 167 if (HumanController::localController_s && HumanController::localController_s->controllableEntity_) 168 HumanController::localController_s->controllableEntity_->boost(); 167 /** 168 @brief 169 Static method,toggles boosting. 170 */ 171 /*static*/ void HumanController::toggleBoost() 172 { 173 if (HumanController::localController_s && HumanController::localController_s->controllableEntity_) 174 HumanController::localController_s->toggleBoosting(); 175 } 176 177 /** 178 @brief 179 Toggles the boosting mode. 180 Changes the keybind mode of the boost console command and tells the ControllableEntity to boost (or not boost anymore). 181 */ 182 void HumanController::toggleBoosting(void) 183 { 184 this->boosting_ = !this->boosting_; 185 186 // The keybind mode of the boosting console command is onRelease if in boosting mode and onPress of not in boosting mode. 187 if(this->boosting_) 188 ModifyConsoleCommand(__CC_boost_name).keybindMode(KeybindMode::OnRelease); 189 else 190 ModifyConsoleCommand(__CC_boost_name).keybindMode(KeybindMode::OnPress); 191 192 this->controllableEntity_->boost(this->boosting_); 169 193 } 170 194 -
code/branches/gameimmersion/src/orxonox/controllers/HumanController.h
r8079 r8379 64 64 static void reload(); 65 65 66 static void boost(); 66 static void toggleBoost(); // Static method,toggles boosting. 67 /** 68 @brief Check whether the HumanController is in boosting mode. 69 @return Returns true if it is, false if not. 70 */ 71 inline bool isBoosting(void) 72 { return this->boosting_; } 73 void toggleBoosting(void); // Toggles the boosting mode. 74 67 75 static void greet(); 68 76 static void switchCamera(); … … 92 100 static HumanController* localController_s; 93 101 bool controlPaused_; 102 103 private: 104 bool boosting_; // Whether the HumanController is in boosting mode or not. 105 94 106 }; // tolua_export 95 107 } // tolua_export -
code/branches/gameimmersion/src/orxonox/items/Engine.cc
r8079 r8379 204 204 this->ship_->setAcceleration(this->ship_->getOrientation() * (acceleration*this->getSpeedMultiply()+Vector3(0,0,-this->getSpeedAdd()))); 205 205 206 if (!this->ship_->getPermanentBoost())207 this->ship_->setBoost(false);208 206 this->ship_->setSteeringDirection(Vector3::ZERO); 209 207 -
code/branches/gameimmersion/src/orxonox/worldentities/ControllableEntity.cc
r7892 r8379 84 84 this->client_angular_velocity_ = Vector3::ZERO; 85 85 86 87 86 this->setConfigValues(); 88 87 this->setPriority( Priority::VeryHigh ); -
code/branches/gameimmersion/src/orxonox/worldentities/ControllableEntity.h
r7889 r8379 93 93 virtual void reload() {} 94 94 95 virtual void boost() {} 95 /** 96 @brief Tells the ControllableEntity to either start or stop boosting. 97 This doesn't mean, that the ControllableEntity will do so, there might be additional restrictions on boosting, but if it can, then it will. 98 @param bBoost If true the ControllableEntity is told to start boosting, if false it is told to stop. 99 */ 100 virtual void boost(bool bBoost) {} 101 96 102 virtual void greet() {} 97 103 virtual void switchCamera(); -
code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc
r8254 r8379 55 55 this->localAngularAcceleration_.setValue(0, 0, 0); 56 56 this->bBoost_ = false; 57 this->bPermanentBoost_ = false;58 57 this->steering_ = Vector3::ZERO; 59 58 this->engine_ = 0; … … 83 82 this->cameraOriginalOrientation = c->getOrientation(); 84 83 85 this->shakeFrequency_ = 20;84 this->shakeFrequency_ = 50; 86 85 this->shakeAmplitude_ = 40; 87 86 this->shakeDt_ = 0; … … 114 113 registerVariable(this->auxilaryThrust_, VariableDirection::ToClient); 115 114 registerVariable(this->rotationThrust_, VariableDirection::ToClient); 115 registerVariable(this->boostPower_, VariableDirection::ToClient); 116 registerVariable(this->boostPowerRate_, VariableDirection::ToClient); 117 registerVariable(this->boostRate_, VariableDirection::ToClient); 118 registerVariable(this->boostCooldownDuration_, VariableDirection::ToClient); 116 119 } 117 120 … … 163 166 164 167 165 Camera* c = this->getCamera(); 168 166 169 if(this->bBoost_) 167 170 { … … 177 180 { 178 181 this->shakeDt_ += dt; 182 183 Camera* c = this->getCamera(); 179 184 180 185 //Shaking Camera effect … … 201 206 } 202 207 } 203 else204 {205 //reset the camera, if the boost is not active206 //TODO: don't call this every tick207 this->resetCamera();208 }209 208 } 210 209 } … … 254 253 } 255 254 256 // TODO: something seems to call this function every tick, could probably handled a little more efficiently! 257 void SpaceShip::setBoost(bool bBoost) 258 { 259 if(bBoost == this->bBoost_) 260 return; 261 262 if(bBoost) 263 this->boost(); 264 else 265 { 255 void SpaceShip::fire() 256 { 257 } 258 259 /** 260 @brief 261 Starts or stops boosting. 262 @param bBoost 263 Whether to start or stop boosting. 264 */ 265 void SpaceShip::boost(bool bBoost) 266 { 267 Camera* c = this->getCamera(); 268 269 if(bBoost && !this->bBoostCooldown_) 270 this->bBoost_ = true; 271 if(!bBoost) 272 { 266 273 this->bBoost_ = false; 267 } 268 } 269 270 void SpaceShip::fire() 271 { 272 } 273 274 void SpaceShip::boost() 275 { 276 if(!this->bBoostCooldown_) 277 this->bBoost_ = true; 274 this->resetCamera(); 275 } 278 276 } 279 277 … … 326 324 327 325 assert(c != 0); 326 327 if (c == 0) 328 { 329 COUT(2) << "Failed to reset camera!"; 330 return; 331 } 332 333 shakeDt_ = 0; 328 334 329 335 c->setAngularVelocity(Vector3(0,0,0)); -
code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.h
r8254 r8379 59 59 60 60 virtual void fire(); 61 virtual void boost( );61 virtual void boost(bool bBoost); // Starts or stops boosting. 62 62 63 63 void setEngine(Engine* engine); … … 70 70 { return this->steering_; } 71 71 72 void setBoost(bool bBoost);73 72 inline bool getBoost() const 74 73 { return this->bBoost_; } … … 79 78 { return this->enginetemplate_; } 80 79 81 inline void setPermanentBoost(bool bPermanent)82 { this->bPermanentBoost_ = bPermanent; }83 inline bool getPermanentBoost() const84 { return this->bPermanentBoost_; }85 86 80 protected: 87 81 virtual std::vector<PickupCarrier*>* getCarrierChildren(void) const; … … 90 84 bool bBoost_; 91 85 bool bBoostCooldown_; 92 bool bPermanentBoost_;93 86 float boostPower_; 94 87 float initialBoostPower_;
Note: See TracChangeset
for help on using the changeset viewer.