aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting
diff options
context:
space:
mode:
authorSupabad <supabad.trinity@gmail.com>2011-04-09 19:28:36 +0200
committerSupabad <supabad.trinity@gmail.com>2011-04-09 19:28:36 +0200
commita5a545a4030b62cf3564224316c5ee6a77631670 (patch)
tree632c04d4e5dbcca408f7d01a2a99f9fdcc2dbafb /src/server/game/Scripting
parent9efac6fe9f221714901fda494a6927ba57bf9ab4 (diff)
Core/GameObjects: add script hook when destructable building is damaged.
Diffstat (limited to 'src/server/game/Scripting')
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.cpp12
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.h7
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 */