summaryrefslogtreecommitdiff
path: root/Runtime/BaseClasses/GameManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/BaseClasses/GameManager.cpp')
-rw-r--r--Runtime/BaseClasses/GameManager.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/Runtime/BaseClasses/GameManager.cpp b/Runtime/BaseClasses/GameManager.cpp
new file mode 100644
index 0000000..0003b1f
--- /dev/null
+++ b/Runtime/BaseClasses/GameManager.cpp
@@ -0,0 +1,58 @@
+#include "UnityPrefix.h"
+#include "GameManager.h"
+#include "Runtime/Serialize/TransferFunctions/SerializeTransfer.h"
+#include "ManagerContext.h"
+
+GameManager::~GameManager ()
+{
+ for (int i=0;i<ManagerContext::kManagerCount;i++)
+ {
+ if (GetManagerContext().m_Managers[i] == this)
+ SetManagerPtrInContext(i, NULL);
+ }
+}
+
+LevelGameManager::~LevelGameManager () { }
+GlobalGameManager::~GlobalGameManager () { }
+
+template<class TransferFunction>
+void LevelGameManager::Transfer (TransferFunction& transfer)
+{
+ Super::Transfer (transfer);
+}
+
+template<class TransferFunction>
+void GlobalGameManager::Transfer (TransferFunction& transfer)
+{
+ Super::Transfer (transfer);
+}
+
+char const* GlobalGameManager::GetName () const
+{
+ return GetClassName ().c_str ();
+}
+
+GameManager* GetGameManagerIfExists (int index)
+{
+ GameManager* manager = static_cast<GameManager*> (GetManagerPtrFromContext(index));
+ Assert(manager == dynamic_pptr_cast<GameManager*> (GetManagerPtrFromContext(index)));
+ return manager;
+}
+
+LevelGameManager::LevelGameManager(MemLabelId label, ObjectCreationMode mode) : Super(label, mode)
+{ }
+
+GlobalGameManager::GlobalGameManager(MemLabelId label, ObjectCreationMode mode) : Super(label, mode)
+{ }
+
+
+
+IMPLEMENT_CLASS (LevelGameManager)
+IMPLEMENT_CLASS (GlobalGameManager)
+IMPLEMENT_CLASS (GameManager)
+
+IMPLEMENT_OBJECT_SERIALIZE (LevelGameManager)
+IMPLEMENT_OBJECT_SERIALIZE (GlobalGameManager)
+
+INSTANTIATE_TEMPLATE_TRANSFER_EXPORTED (LevelGameManager)
+INSTANTIATE_TEMPLATE_TRANSFER_EXPORTED (GlobalGameManager)