diff options
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/InstanceMapScript.h | 10 |
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 |
