aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptMgr.h
diff options
context:
space:
mode:
authorShauren <none@none>2010-08-07 16:48:34 +0200
committerShauren <none@none>2010-08-07 16:48:34 +0200
commit431301c1b29103e444b5c534c17543c87a99e481 (patch)
tree748d5acb68d83a7cad74c9bd9c06cdbc08a5267e /src/server/game/Scripting/ScriptMgr.h
parented4e49a4e7f44e45ba5b81e5aaa6fe5dff584a5a (diff)
Added support for scripting achievement criteria checks using ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT (11)
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r--src/server/game/Scripting/ScriptMgr.h23
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.