diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-03-15 23:40:04 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-03-15 23:40:04 +0000 |
commit | 125c9867da9cc58f0a250c7316f06755b1cc18ac (patch) | |
tree | a6ad259e48cd0d58b4755b3e662a9eeda2a21391 /game | |
parent | Route Walker returns Link::Nexts, not vector links (diff) | |
download | ilt-125c9867da9cc58f0a250c7316f06755b1cc18ac.tar.bz2 ilt-125c9867da9cc58f0a250c7316f06755b1cc18ac.tar.xz ilt-125c9867da9cc58f0a250c7316f06755b1cc18ac.zip |
Create GameState, the single global for the root of everything
Diffstat (limited to 'game')
-rw-r--r-- | game/gamestate.cpp | 15 | ||||
-rw-r--r-- | game/gamestate.h | 20 | ||||
-rw-r--r-- | game/world.h | 11 |
3 files changed, 35 insertions, 11 deletions
diff --git a/game/gamestate.cpp b/game/gamestate.cpp new file mode 100644 index 0000000..fcd4248 --- /dev/null +++ b/game/gamestate.cpp @@ -0,0 +1,15 @@ +#include "gamestate.h" +#include <cassert> + +GameState * gameState {nullptr}; + +GameState::GameState() +{ + assert(!gameState); + gameState = this; +} + +GameState::~GameState() +{ + gameState = nullptr; +} diff --git a/game/gamestate.h b/game/gamestate.h new file mode 100644 index 0000000..b8dfa61 --- /dev/null +++ b/game/gamestate.h @@ -0,0 +1,20 @@ +#ifndef GAMESTATE_H +#define GAMESTATE_H + +#include <collection.hpp> +#include <special_members.hpp> + +class WorldObject; + +class GameState { +public: + GameState(); + ~GameState(); + NO_MOVE(GameState); + NO_COPY(GameState); + + Collection<WorldObject> world; +}; +extern GameState * gameState; + +#endif diff --git a/game/world.h b/game/world.h deleted file mode 100644 index a0185e7..0000000 --- a/game/world.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef WORLD_H -#define WORLD_H - -#include "worldobject.h" -#include <collection.hpp> - -class World : public Collection<WorldObject> { -public: -}; - -#endif |