aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/core')
-rw-r--r--src/libjin/core/game.cpp2
-rw-r--r--src/libjin/core/game.h17
2 files changed, 7 insertions, 12 deletions
diff --git a/src/libjin/core/game.cpp b/src/libjin/core/game.cpp
index 1c47d87..5c2e69b 100644
--- a/src/libjin/core/game.cpp
+++ b/src/libjin/core/game.cpp
@@ -5,8 +5,6 @@ namespace jin
namespace core
{
- Game* Game::g_game = 0;
-
Game::Game() :run(true) {};
}
diff --git a/src/libjin/core/game.h b/src/libjin/core/game.h
index cd99b42..e155607 100644
--- a/src/libjin/core/game.h
+++ b/src/libjin/core/game.h
@@ -3,13 +3,14 @@
#include <SDL2/SDL.h>
+#include "../common/singleton.h"
#include "../utils/macros.h"
namespace jin
{
namespace core
{
- class Game
+ class Game : public Singleton<Game>
{
public:
@@ -18,14 +19,9 @@ namespace core
};
- static inline Game* get()
- {
- return g_game ? g_game : (g_game = new Game());
- }
-
inline void quit() // quit game loop
{
- CallOnce(_quit());
+ CALLONCE(_quit());
}
inline bool running()
@@ -35,14 +31,15 @@ namespace core
inline void exit() // exit game
{
- CallOnce(_exit());
+ CALLONCE(_exit());
}
private:
Game();
-
- static Game* g_game;
+ ~Game() {};
+
+ SINGLETON(Game);
bool run;