aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaelima <kaelima@live.se>2011-09-06 23:56:55 +0200
committerkaelima <kaelima@live.se>2011-09-06 23:56:55 +0200
commit85c7a916a0efcbadaabfa28c1424ae1360ba4142 (patch)
treef237d341c3255103faf1f0f8a11064ee6ffeb802 /src
parent152f446c60ff7c38eb7ac24eb26907453710f822 (diff)
Core/GameObjects: Fix possible crash in GameObject::SetDestructibleState.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/GameObject/GameObject.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 83ece2eda31..8716733f46f 100755
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1791,10 +1791,13 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
case GO_DESTRUCTIBLE_DAMAGED:
{
EventInform(m_goInfo->building.damagedEvent);
- sScriptMgr->OnGameObjectDamaged(this, eventInvoker);
+
if (eventInvoker)
+ {
+ sScriptMgr->OnGameObjectDamaged(this, eventInvoker);
if (Battleground* bg = eventInvoker->GetBattleground())
bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.damagedEvent);
+ }
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
@@ -1818,10 +1821,10 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
}
case GO_DESTRUCTIBLE_DESTROYED:
{
- sScriptMgr->OnGameObjectDestroyed(this, eventInvoker);
EventInform(m_goInfo->building.destroyedEvent);
if (eventInvoker)
{
+ sScriptMgr->OnGameObjectDestroyed(this, eventInvoker);
if (Battleground* bg = eventInvoker->GetBattleground())
{
bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.destroyedEvent);