Changeset 1670 for code/branches/gui/src/orxonox/gamestates/GSLevel.cc
- Timestamp:
- Aug 26, 2008, 4:26:04 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gui/src/orxonox/gamestates/GSLevel.cc
r1664 r1670 30 30 #include "GSLevel.h" 31 31 32 #include "core/ConsoleCommand.h"33 32 #include "core/input/InputManager.h" 34 33 #include "core/input/SimpleInputState.h" 35 34 #include "core/input/KeyBinder.h" 36 35 #include "core/Loader.h" 37 #include "core/CommandLine.h"38 #include "overlays/console/InGameConsole.h"39 #include "gui/GUIManager.h"40 36 #include "objects/Backlight.h" 41 37 #include "tools/ParticleInterface.h" 38 #include "Settings.h" 42 39 #include "Radar.h" 43 #include "Settings.h"44 40 #include "GraphicsEngine.h" 45 41 46 42 namespace orxonox 47 43 { 48 SetCommandLineArgument(port, 55556).setShortcut("p").setInformation("PORT"); 49 SetCommandLineArgument(ip, "127.0.0.0").setInformation("#.#.#.#"); 50 51 GSLevel::GSLevel() 52 : GameState("level") 44 GSLevel::GSLevel(const std::string& name) 45 : GameState(name) 53 46 , timefactor_(1.0f) 54 47 , keyBinder_(0) 48 , inputState_(0) 55 49 , radar_(0) 56 50 , startLevel_(0) … … 65 59 void GSLevel::enter() 66 60 { 61 inputState_ = InputManager::getInstance().createInputState<SimpleInputState>("game", 20); 67 62 keyBinder_ = new KeyBinder(); 68 63 keyBinder_->loadBindings(); 69 InputManager::getInstance().createInputState<SimpleInputState>("game", 20)->setHandler(keyBinder_);64 inputState_->setHandler(keyBinder_); 70 65 71 66 // create Ogre SceneManager for the level … … 79 74 hud_ = new Level(Settings::getDataPath() + "overlay/hud.oxo"); 80 75 Loader::load(hud_); 81 82 // call the loader83 COUT(0) << "Loading level..." << std::endl;84 startLevel_ = new Level(Settings::getDataPath() + "levels/sample.oxw");85 Loader::open(startLevel_);86 87 // add console commands88 FunctorMember<GSLevel>* functor = createFunctor(&GSLevel::setTimeFactor);89 functor->setObject(this);90 CommandExecutor::addConsoleCommandShortcut(createConsoleCommand(functor, "setTimeFactor"));91 92 // level is loaded: we can start capturing the input93 InputManager::getInstance().requestEnterState("game");94 76 } 95 77 96 78 void GSLevel::leave() 97 79 { 98 InputManager::getInstance().requestLeaveState("game");99 100 // TODO: Remove and destroy console command101 102 Loader::unload(startLevel_);103 delete this->startLevel_;104 105 80 Loader::unload(hud_); 106 81 delete this->hud_; … … 116 91 // TODO: delete SceneManager 117 92 118 InputManager::getInstance().destroyState("game"); 93 inputState_->setHandler(0); 94 InputManager::getInstance().requestDestroyState("game"); 119 95 delete this->keyBinder_; 120 96 } 121 97 122 bool GSLevel::tick(float dt)98 void GSLevel::ticked(float dt) 123 99 { 124 100 // Call those objects that need the real time … … 128 104 for (Iterator<Tickable> it = ObjectList<Tickable>::start(); it; ++it) 129 105 it->tick(dt * this->timefactor_); 130 131 // TODO: split file into server/client/standalone132 // call server/client with normal dt133 //if (client_g)134 // client_g->tick(dt * this->timefactor_);135 //if (server_g)136 // server_g->tick(dt * this->timefactor_);137 138 return true;139 106 } 140 107 … … 153 120 it->setTimeFactor(timefactor_); 154 121 } 122 123 void GSLevel::loadLevel() 124 { 125 // call the loader 126 COUT(0) << "Loading level..." << std::endl; 127 startLevel_ = new Level(Settings::getDataPath() + "levels/sample.oxw"); 128 Loader::open(startLevel_); 129 } 130 131 void GSLevel::unloadLevel() 132 { 133 Loader::unload(startLevel_); 134 delete this->startLevel_; 135 } 155 136 }
Note: See TracChangeset
for help on using the changeset viewer.