diff options
author | Aki <please@ignore.pl> | 2022-03-14 18:37:12 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-03-14 18:37:12 +0100 |
commit | 92f7c58068c6a7bfe0b32af5c1ace6bdde2f3951 (patch) | |
tree | 9f237622f6dac613823c013f0db662af7557374f /Stars45 | |
parent | 01954b1d34a42fa4a51a3e0d690ba4ad5a1f8298 (diff) | |
download | starshatter-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.
Diffstat (limited to 'Stars45')
-rw-r--r-- | Stars45/GameWinDX9.cpp | 15 | ||||
-rw-r--r-- | Stars45/GameWinDX9.h | 5 |
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; }; |