diff options
| author | Supabad <supabad.trinity@gmail.com> | 2011-04-09 19:28:36 +0200 |
|---|---|---|
| committer | Supabad <supabad.trinity@gmail.com> | 2011-04-09 19:28:36 +0200 |
| commit | a5a545a4030b62cf3564224316c5ee6a77631670 (patch) | |
| tree | 632c04d4e5dbcca408f7d01a2a99f9fdcc2dbafb /src/server/game/Scripting | |
| parent | 9efac6fe9f221714901fda494a6927ba57bf9ab4 (diff) | |
Core/GameObjects: add script hook when destructable building is damaged.
Diffstat (limited to 'src/server/game/Scripting')
| -rwxr-xr-x | src/server/game/Scripting/ScriptMgr.cpp | 12 | ||||
| -rwxr-xr-x | src/server/game/Scripting/ScriptMgr.h | 7 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index f7f5e495280..8849194a8c5 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -823,12 +823,20 @@ uint32 ScriptMgr::GetDialogStatus(Player* player, GameObject* go) return tmpscript->GetDialogStatus(player, go); } -void ScriptMgr::OnGameObjectDestroyed(Player* player, GameObject* go, uint32 eventId) +void ScriptMgr::OnGameObjectDestroyed(GameObject* go, Player* player, uint32 eventId) { ASSERT(go); GET_SCRIPT(GameObjectScript, go->GetScriptId(), tmpscript); - tmpscript->OnDestroyed(player, go, eventId); + tmpscript->OnDestroyed(go, player, eventId); +} + +void ScriptMgr::OnGameObjectDamaged(GameObject* go, Player* player, uint32 eventId) +{ + ASSERT(go); + + GET_SCRIPT(GameObjectScript, go->GetScriptId(), tmpscript); + tmpscript->OnDamaged(go, player, eventId); } void ScriptMgr::OnGameObjectUpdate(GameObject* go, uint32 diff) diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 85c8dfbc866..5153bd12087 100755 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -464,7 +464,9 @@ class GameObjectScript : public ScriptObject, public UpdatableScript<GameObject> virtual uint32 GetDialogStatus(Player* /*player*/, GameObject* /*go*/) { return 100; } // Called when the gameobject is destroyed (destructible buildings only). - virtual void OnDestroyed(Player* /*player*/, GameObject* /*go*/, uint32 /*eventId*/) { } + virtual void OnDestroyed(GameObject* /*go*/, Player* /*player*/, uint32 /*eventId*/) { } + // Called when the gameobject is damaged (destructible buildings only). + virtual void OnDamaged(GameObject* /*go*/, Player* /*player*/, uint32 /*eventId*/) { } }; class AreaTriggerScript : public ScriptObject @@ -859,7 +861,8 @@ class ScriptMgr bool OnQuestAccept(Player* player, GameObject* go, Quest const* quest); bool OnQuestReward(Player* player, GameObject* go, Quest const* quest, uint32 opt); uint32 GetDialogStatus(Player* player, GameObject* go); - void OnGameObjectDestroyed(Player* player, GameObject* go, uint32 eventId); + void OnGameObjectDestroyed(GameObject* go, Player* player, uint32 eventId); + void OnGameObjectDamaged(GameObject* go, Player* player, uint32 eventId); void OnGameObjectUpdate(GameObject* go, uint32 diff); public: /* AreaTriggerScript */ |
