From 125c9867da9cc58f0a250c7316f06755b1cc18ac Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 15 Mar 2021 23:40:04 +0000 Subject: Create GameState, the single global for the root of everything --- application/main.cpp | 5 ++--- game/gamestate.cpp | 15 +++++++++++++++ game/gamestate.h | 20 ++++++++++++++++++++ game/world.h | 11 ----------- 4 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 game/gamestate.cpp create mode 100644 game/gamestate.h delete mode 100644 game/world.h diff --git a/application/main.cpp b/application/main.cpp index f198517..df8828a 100644 --- a/application/main.cpp +++ b/application/main.cpp @@ -4,12 +4,12 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -26,7 +26,7 @@ static const int DISPLAY_WIDTH = 1280; static const int DISPLAY_HEIGHT = 1024; -class SDL_Application : public InputHandler, public std::enable_shared_from_this { +class SDL_Application : public InputHandler, public std::enable_shared_from_this, GameState { public: SDL_Application() { @@ -160,7 +160,6 @@ private: bool isRunning {true}; Collection inputStack; - World world; }; int 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 + +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 +#include + +class WorldObject; + +class GameState { +public: + GameState(); + ~GameState(); + NO_MOVE(GameState); + NO_COPY(GameState); + + Collection 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 - -class World : public Collection { -public: -}; - -#endif -- cgit v1.2.3