diff options
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 375c339c109..c27a169880c 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -753,6 +753,25 @@ class TransportScript : public ScriptObject, public UpdatableScript<Transport> virtual void OnRelocate(Transport* transport, uint32 mapId, float x, float y, float z) { } }; +class AchievementCriteriaScript : public ScriptObject +{ + protected: + + AchievementCriteriaScript(const char* name) + : ScriptObject(name) + { + } + + void RegisterSelf(); + + public: + + bool IsDatabaseBound() const { return true; } + + // Called when additional criteria is checked + virtual bool OnCheck(Player* source, Unit* target) = 0; +}; + // Placed here due to ScriptRegistry::AddScript dependency. #define sScriptMgr (*ACE_Singleton<ScriptMgr, ACE_Null_Mutex>::instance()) @@ -921,6 +940,10 @@ class ScriptMgr void OnTransportUpdate(Transport* transport, uint32 diff); void OnRelocate(Transport* transport, uint32 mapId, float x, float y, float z); + public: /* AchievementCriteriaScript */ + + bool OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target); + public: /* ScriptRegistry */ // This is the global static registry of scripts. |