summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-03-14 18:37:12 +0100
committerAki <please@ignore.pl>2022-03-14 18:37:12 +0100
commit92f7c58068c6a7bfe0b32af5c1ace6bdde2f3951 (patch)
tree9f237622f6dac613823c013f0db662af7557374f
parent01954b1d34a42fa4a51a3e0d690ba4ad5a1f8298 (diff)
downloadstarshatter-92f7c58068c6a7bfe0b32af5c1ace6bdde2f3951.zip
starshatter-92f7c58068c6a7bfe0b32af5c1ace6bdde2f3951.tar.gz
starshatter-92f7c58068c6a7bfe0b32af5c1ace6bdde2f3951.tar.bz2
Added instance retrieval method to GameWinDX9
I don't like having a singleton with inheritance. At all. It needs to be removed as soon as possible and functionalities need to be moved outside of this monolith and this is a step into that direction. I think.
-rw-r--r--Stars45/GameWinDX9.cpp15
-rw-r--r--Stars45/GameWinDX9.h5
2 files changed, 20 insertions, 0 deletions
diff --git a/Stars45/GameWinDX9.cpp b/Stars45/GameWinDX9.cpp
index bf7876f..efc825a 100644
--- a/Stars45/GameWinDX9.cpp
+++ b/Stars45/GameWinDX9.cpp
@@ -17,13 +17,28 @@
#include "Utils.h"
+GameWinDX9* GameWinDX9::instance = nullptr;
+
+
+GameWinDX9*
+GameWinDX9::GetInstance()
+{
+ return instance;
+}
+
+
GameWinDX9::GameWinDX9()
{
+ if (instance != nullptr)
+ Panic::Panic("Multiple instances of GameWinDX9");
+ instance = this;
}
GameWinDX9::~GameWinDX9()
{
+ if (instance != nullptr)
+ instance = nullptr;
}
diff --git a/Stars45/GameWinDX9.h b/Stars45/GameWinDX9.h
index 9151bcd..5193a77 100644
--- a/Stars45/GameWinDX9.h
+++ b/Stars45/GameWinDX9.h
@@ -14,6 +14,8 @@
class GameWinDX9 : public Game
{
public:
+ static GameWinDX9* GetInstance();
+
GameWinDX9();
virtual ~GameWinDX9();
@@ -28,6 +30,9 @@ public:
protected:
PALETTEENTRY standard_palette[256];
BYTE inverse_palette[32768];
+
+private:
+ static GameWinDX9* instance;
};