47 #include <boost/preprocessor/cat.hpp> 58 #define DeclareGameState(className, stateName, bIgnoreTickTime, bGraphicsMode) \ 59 static bool BOOST_PP_CAT(bGameStateDummy_##className, __UNIQUE_NUMBER__) = orxonox::Game::declareGameState<className>(#className, stateName, bIgnoreTickTime, bGraphicsMode) 87 typedef std::map<std::string, std::shared_ptr<GameState>>
GameStateMap;
99 std::shared_ptr<GameState> getState(
const std::string& name);
115 void subtractTickTime(int32_t length);
130 virtual std::shared_ptr<GameState> fabricateInternal(
const GameStateInfo& info) = 0;
131 static std::map<std::string, std::shared_ptr<GameStateFactory>>& getFactories();
138 {
return std::shared_ptr<GameState>(std::make_shared<T>(
info)); }
149 Game& operator=(
const Game&) =
delete;
152 void unloadGraphics(
bool loadGraphicsManagerWithoutRenderer =
true);
154 void parseStates(std::vector<std::pair<std::string, int>>::const_iterator& it, std::shared_ptr<GameStateTreeNode> currentNode);
160 void updateGameStateStack();
161 void updateGameStates();
162 void updateStatistics();
163 void updateFPSLimiter();
203 std::map<std::string, GameStateInfo>::const_iterator it = gameStateDeclarations_s.find(stateName);
204 if (it == gameStateDeclarations_s.end())
219 GameStateFactory::createFactory<T>(
className);
std::vector< std::shared_ptr< GameState > > GameStateVector
Definition: Game.h:86
int excessSleepTime_
Definition: Game.h:187
bool bAbort_
Definition: Game.h:178
float getAvgFPS()
Definition: Game.h:113
std::shared_ptr< GameStateTreeNode > GameStateTreeNodePtr
Definition: Game.h:88
static Game * singletonPtr_s
Pointer to the Singleton.
Definition: Game.h:197
uint32_t tickLength
Definition: Game.h:144
static Game & getInstance()
Definition: Game.h:104
std::list< StatisticsTickInfo > statisticsTickTimes_
Definition: Game.h:182
GameStateTreeNodePtr loadedTopStateNode_
Definition: Game.h:174
Shared library macros, enums, constants and forward declarations for the core library ...
::std::string string
Definition: gtest-port.h:756
void resetChangingState()
Definition: Game.h:166
Definition: GameConfig.h:38
bool bChangingState_
Definition: Game.h:177
Output level, used for warnings which are important for developers.
Definition: OutputDefinitions.h:96
float avgFPS_
Definition: Game.h:185
static std::map< std::string, GameStateInfo > gameStateDeclarations_s
Definition: Game.h:196
GameStateMap constructedStates_
Definition: Game.h:171
The MetaPickup destroys all the PickupCarriers' Pickupables.
Helper object required before GameStates are being constructed.
Definition: Game.h:66
uint32_t periodTickTime_
Definition: Game.h:184
float avgTickTime_
Definition: Game.h:186
GameStateVector loadedStates_
Definition: Game.h:172
static bool declareGameState(const std::string &className, const std::string &stateName, bool bIgnoreTickTime, bool bConsoleMode)
Definition: Game.h:201
GameConfig * config_
Helper object that stores the config values.
Definition: Game.h:191
bool bGraphicsMode
Definition: Game.h:71
The Core class is a singleton used to configure the program basics.
Definition: Core.h:60
static void createFactory(const std::string &className)
Definition: Game.h:127
Base for singleton classes.
Definition: Singleton.h:114
OutputStream & orxout(OutputLevel level=level::debug_output, const OutputContextContainer &context=context::undefined())
This helper function returns a reference to a commonly used instance of OutputStream.
Definition: Output.h:81
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
virtual std::shared_ptr< GameState > fabricateInternal(const GameStateInfo &info) override
Definition: Game.h:137
#define _CoreExport
Definition: CorePrereqs.h:61
Utility class that helps to create a special kind of destructor that also executes if the destruction...
Definition: DestructionHelper.h:75
Defines the helper function orxout() and includes all necessary headers to use the output system...
float getAvgTickTime()
Definition: Game.h:112
Main class responsible for running the game.
Definition: Game.h:81
const Clock & getGameClock()
Definition: Game.h:110
std::string className
Definition: Game.h:69
std::string stateName
Definition: Game.h:68
Definition of the Singleton template that is used as base class for classes that allow only one insta...
Simple real time clock based on Ogre::Timer.
Definition: Clock.h:57
unsigned int minimumSleepTime_
Definition: Game.h:188
bool bIgnoreTickTime
Definition: Game.h:70
GameStateTreeNodePtr rootStateNode_
Definition: Game.h:173
uint64_t tickTime
Definition: Game.h:143
std::vector< GameStateTreeNodePtr > requestedStateNodes_
Definition: Game.h:175
uint64_t statisticsStartTime_
Definition: Game.h:181
static T & getInstance()
Returns a reference to the singleton instance.
Definition: Singleton.h:118
uint32_t periodTime_
Definition: Game.h:183
Clock * gameClock_
Definition: Game.h:168
Core * core_
Definition: Game.h:169
DestructionHelper< Game > destructionHelper_
Helper object that executes the surrogate destructor destroy()
Definition: Game.h:194
std::map< std::string, std::shared_ptr< GameState > > GameStateMap
Definition: Game.h:87