summaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptDefines
diff options
context:
space:
mode:
authorRazor2142 <Razor2142@graveyardgames.net>2025-02-16 23:26:07 +0100
committerGitHub <noreply@github.com>2025-02-16 23:26:07 +0100
commit8cc47ab1f174e82d74b2e17b4af13ded0f37a693 (patch)
tree28a93ac2bfb9eb98618b99668743447b45d6a1e9 /src/server/game/Scripting/ScriptDefines
parent92ef042f338d6bccebb4aa7c0873bb03768c0566 (diff)
feat(Script/Instance): added generic instance map script (#21218)
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
-rw-r--r--src/server/game/Scripting/ScriptDefines/InstanceMapScript.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/InstanceMapScript.h b/src/server/game/Scripting/ScriptDefines/InstanceMapScript.h
index edbc9a3baa..74b5024ba3 100644
--- a/src/server/game/Scripting/ScriptDefines/InstanceMapScript.h
+++ b/src/server/game/Scripting/ScriptDefines/InstanceMapScript.h
@@ -34,4 +34,14 @@ public:
virtual InstanceScript* GetInstanceScript(InstanceMap* /*map*/) const { return nullptr; }
};
+template<typename IS>
+class GenericInstanceMapScript : public InstanceMapScript
+{
+public:
+ GenericInstanceMapScript(char const* name, uint32 mapId) : InstanceMapScript(name, mapId) { }
+ InstanceScript* GetInstanceScript(InstanceMap* map) const override { return new IS(map); }
+};
+
+#define RegisterInstanceScript(script_name, mapId) new GenericInstanceMapScript<script_name>(#script_name, mapId)
+
#endif