Changeset 2462 for code/branches/objecthierarchy2/src/orxonox
- Timestamp:
- Dec 15, 2008, 1:38:02 AM (16 years ago)
- Location:
- code/branches/objecthierarchy2/src/orxonox
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy2/src/orxonox/gamestates/GSRoot.cc
r2406 r2462 69 69 : RootGameState("root") 70 70 , timeFactor_(1.0f) 71 , bPaused_(false) 72 , timeFactorPauseBackup_(1.0f) 71 73 , settings_(0) 72 74 , tclBind_(0) … … 78 80 79 81 this->ccSetTimeFactor_ = 0; 82 this->ccPause_ = 0; 80 83 } 81 84 … … 125 128 setThreadAffinity((unsigned int)(limitToCPU - 1)); 126 129 127 // add console commands 128 FunctorMember<GSRoot>* functor1 = createFunctor(&GSRoot::exitGame); 129 functor1->setObject(this); 130 ccExit_ = createConsoleCommand(functor1, "exit"); 131 CommandExecutor::addConsoleCommandShortcut(ccExit_); 132 133 // add console commands 134 FunctorMember01<GameStateBase, const std::string&>* functor2 = createFunctor(&GameStateBase::requestState); 135 functor2->setObject(this); 136 ccSelectGameState_ = createConsoleCommand(functor2, "selectGameState"); 137 CommandExecutor::addConsoleCommandShortcut(ccSelectGameState_); 138 139 // time factor console command 140 FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::setTimeFactor); 141 functor->setObject(this); 142 ccSetTimeFactor_ = createConsoleCommand(functor, "setTimeFactor"); 143 CommandExecutor::addConsoleCommandShortcut(ccSetTimeFactor_).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0);; 130 { 131 // add console commands 132 FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::exitGame); 133 functor->setObject(this); 134 this->ccExit_ = createConsoleCommand(functor, "exit"); 135 CommandExecutor::addConsoleCommandShortcut(this->ccExit_); 136 } 137 138 { 139 // add console commands 140 FunctorMember01<GameStateBase, const std::string&>* functor = createFunctor(&GameStateBase::requestState); 141 functor->setObject(this); 142 this->ccSelectGameState_ = createConsoleCommand(functor, "selectGameState"); 143 CommandExecutor::addConsoleCommandShortcut(this->ccSelectGameState_); 144 } 145 146 { 147 // time factor console command 148 FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::setTimeFactor); 149 functor->setObject(this); 150 this->ccSetTimeFactor_ = createConsoleCommand(functor, "setTimeFactor"); 151 CommandExecutor::addConsoleCommandShortcut(this->ccSetTimeFactor_).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0); 152 } 153 154 { 155 // time factor console command 156 FunctorMember<GSRoot>* functor = createFunctor(&GSRoot::pause); 157 functor->setObject(this); 158 this->ccPause_ = createConsoleCommand(functor, "pause"); 159 CommandExecutor::addConsoleCommandShortcut(this->ccPause_).accessLevel(AccessLevel::Offline); 160 } 144 161 } 145 162 … … 161 178 delete this->ccSetTimeFactor_; 162 179 this->ccSetTimeFactor_ = 0; 180 } 181 182 if (this->ccPause_) 183 { 184 delete this->ccPause_; 185 this->ccPause_ = 0; 163 186 } 164 187 } … … 229 252 if (Core::isMaster()) 230 253 { 231 TimeFactorListener::timefactor_s = factor; 232 233 for (ObjectList<TimeFactorListener>::iterator it = ObjectList<TimeFactorListener>::begin(); it != ObjectList<TimeFactorListener>::end(); ++it) 234 it->changedTimeFactor(factor, this->timeFactor_); 235 236 this->timeFactor_ = factor; 254 if (!this->bPaused_) 255 { 256 TimeFactorListener::timefactor_s = factor; 257 258 for (ObjectList<TimeFactorListener>::iterator it = ObjectList<TimeFactorListener>::begin(); it != ObjectList<TimeFactorListener>::end(); ++it) 259 it->changedTimeFactor(factor, this->timeFactor_); 260 261 this->timeFactor_ = factor; 262 } 263 else 264 this->timeFactorPauseBackup_ = factor; 265 } 266 } 267 268 void GSRoot::pause() 269 { 270 if (Core::isMaster()) 271 { 272 if (!this->bPaused_) 273 { 274 this->timeFactorPauseBackup_ = this->timeFactor_; 275 this->setTimeFactor(0.0f); 276 this->bPaused_ = true; 277 } 278 else 279 { 280 this->bPaused_ = false; 281 this->setTimeFactor(this->timeFactorPauseBackup_); 282 } 237 283 } 238 284 } -
code/branches/objecthierarchy2/src/orxonox/gamestates/GSRoot.h
r2406 r2462 50 50 // when taking the function address. 51 51 void setTimeFactor(float factor); 52 void pause(); 52 53 float getTimeFactor() { return this->timeFactor_; } 53 54 … … 61 62 62 63 float timeFactor_; //!< A factor that sets the gamespeed. 1 is normal. 64 bool bPaused_; 65 float timeFactorPauseBackup_; 63 66 Settings* settings_; 64 67 TclBind* tclBind_; … … 71 74 ConsoleCommand* ccSelectGameState_; 72 75 ConsoleCommand* ccSetTimeFactor_; 76 ConsoleCommand* ccPause_; 73 77 }; 74 78 -
code/branches/objecthierarchy2/src/orxonox/objects/controllers/HumanController.cc
r2254 r2462 33 33 #include "core/ConsoleCommand.h" 34 34 #include "objects/worldentities/ControllableEntity.h" 35 #include "objects/worldentities/pawns/Pawn.h" 36 #include "objects/gametypes/Gametype.h" 35 37 36 38 namespace orxonox … … 48 50 SetConsoleCommand(HumanController, use, true); 49 51 SetConsoleCommand(HumanController, switchCamera, true); 52 SetConsoleCommand(HumanController, suicide, true); 53 SetConsoleCommand(HumanController, addBots, true).defaultValues(1); 54 SetConsoleCommand(HumanController, killBots, true).defaultValues(0); 50 55 51 56 CreateUnloadableFactory(HumanController); … … 136 141 HumanController::localController_s->controllableEntity_->switchCamera(); 137 142 } 143 144 void HumanController::suicide() 145 { 146 if (HumanController::localController_s && HumanController::localController_s->controllableEntity_) 147 { 148 Pawn* pawn = dynamic_cast<Pawn*>(HumanController::localController_s->controllableEntity_); 149 if (pawn) 150 pawn->kill(); 151 } 152 } 153 154 void HumanController::addBots(unsigned int amount) 155 { 156 if (HumanController::localController_s && HumanController::localController_s->controllableEntity_ && HumanController::localController_s->controllableEntity_->getGametype()) 157 HumanController::localController_s->controllableEntity_->getGametype()->addBots(amount); 158 } 159 160 void HumanController::killBots(unsigned int amount) 161 { 162 if (HumanController::localController_s && HumanController::localController_s->controllableEntity_ && HumanController::localController_s->controllableEntity_->getGametype()) 163 HumanController::localController_s->controllableEntity_->getGametype()->killBots(amount); 164 } 138 165 } -
code/branches/objecthierarchy2/src/orxonox/objects/controllers/HumanController.h
r2254 r2462 59 59 static void switchCamera(); 60 60 61 static void suicide(); 62 63 static void addBots(unsigned int amount); 64 static void killBots(unsigned int amount = 0); 65 61 66 private: 62 67 static HumanController* localController_s; -
code/branches/objecthierarchy2/src/orxonox/objects/gametypes/Gametype.cc
r2447 r2462 36 36 #include "core/ConfigValueIncludes.h" 37 37 #include "objects/infos/PlayerInfo.h" 38 #include "objects/infos/Bot.h" 38 39 #include "objects/worldentities/pawns/Spectator.h" 39 40 #include "objects/worldentities/SpawnPoint.h" … … 50 51 RegisterObject(Gametype); 51 52 53 this->setGametype(this); 54 52 55 this->defaultControllableEntity_ = Class(Spectator); 53 56 54 57 this->bAutoStart_ = false; 55 58 this->bForceSpawn_ = false; 59 this->numberOfBots_ = 0; 56 60 57 61 this->initialStartCountdown_ = 3; 58 62 59 63 this->setConfigValues(); 64 65 this->addBots(this->numberOfBots_); 60 66 } 61 67 … … 65 71 SetConfigValue(bAutoStart_, false); 66 72 SetConfigValue(bForceSpawn_, false); 73 SetConfigValue(numberOfBots_, 0); 67 74 } 68 75 … … 293 300 } 294 301 } 302 303 void Gametype::addBots(unsigned int amount) 304 { 305 for (unsigned int i = 0; i < amount; ++i) 306 new Bot(this); 307 } 308 309 void Gametype::killBots(unsigned int amount) 310 { 311 unsigned int i = 0; 312 for (ObjectList<Bot>::iterator it = ObjectList<Bot>::begin(); (it != ObjectList<Bot>::end()) && ((amount == 0) || (i < amount)); ) 313 { 314 if (it->getGametype() == this) 315 { 316 delete (*(it++)); 317 ++i; 318 } 319 } 320 } 295 321 } -
code/branches/objecthierarchy2/src/orxonox/objects/gametypes/Gametype.h
r2428 r2462 98 98 { return this->gtinfo_.startCountdown_; } 99 99 100 void addBots(unsigned int amount); 101 void killBots(unsigned int amount = 0); 102 100 103 private: 101 104 virtual SpawnPoint* getBestSpawnPoint(PlayerInfo* player) const; … … 116 119 117 120 float initialStartCountdown_; 121 unsigned int numberOfBots_; 118 122 119 123 std::map<PlayerInfo*, PlayerState::Enum> players_; -
code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.cc
r2438 r2462 65 65 this->controller_ = 0; 66 66 } 67 68 if (this->getGametype()) 69 this->getGametype()->playerLeft(this); 67 70 } 68 71 } -
code/branches/objecthierarchy2/src/orxonox/overlays/hud/HUDBar.cc
r2369 r2462 84 84 this->bar_->setMaterialName(materialname); 85 85 86 this->setValue(0.0f); 86 this->value_ = 1.0f; // initielize with 1.0f to trigger a change when calling setValue(0.0f) on the line below 87 this->setValue(0.0f); // <-- 87 88 this->setRightToLeft(false); 88 89 this->setAutoColour(true);
Note: See TracChangeset
for help on using the changeset viewer.