summaryrefslogtreecommitdiff
path: root/game
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-03-15 23:40:04 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-03-15 23:40:04 +0000
commit125c9867da9cc58f0a250c7316f06755b1cc18ac (patch)
treea6ad259e48cd0d58b4755b3e662a9eeda2a21391 /game
parentRoute Walker returns Link::Nexts, not vector links (diff)
downloadilt-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.cpp15
-rw-r--r--game/gamestate.h20
-rw-r--r--game/world.h11
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