Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp
- --- a/src/game/GameObject.cpp
- +++ b/src/game/GameObject.cpp
- @@ -1582,7 +1582,7 @@
- {
- if (!m_goValue->building.health)
- return;
- -
- + uint8 hitType;
- Player* pwho = NULL;
- if (who)
- {
- @@ -1597,5 +1597,5 @@
- else
- m_goValue->building.health = 0;
- - if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED)) // from damaged to destroyed
- + if (!HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED) && !HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED))// from intact to damaged"
- {
- @@ -1601,26 +1601,6 @@
- {
- - uint8 hitType = BG_OBJECT_DMG_HIT_TYPE_HIGH_DAMAGED;
- - if (!m_goValue->building.health)
- - {
- - RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
- -
- - SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
- - SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.destroyedDisplayId);
- - EventInform(m_goInfo->building.destroyedEvent);
- - if (pwho)
- - if (BattleGround* bg = pwho->GetBattleGround())
- - bg->DestroyGate(pwho, this, m_goInfo->building.destroyedEvent);
- - hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_DESTROYED;
- - sScriptMgr.GODestroyed(pwho, this, m_goInfo->building.destroyedEvent);
- - }
- - if (pwho)
- - if (BattleGround* bg = pwho->GetBattleGround())
- - bg->EventPlayerDamagedGO(pwho, this, hitType, m_goInfo->building.destroyedEvent);
- - }
- - else // from intact to damaged
- - {
- - uint8 hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_DAMAGED;
- + hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_DAMAGED;
- if (m_goValue->building.health + damage < m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits)
- hitType = BG_OBJECT_DMG_HIT_TYPE_DAMAGED;
- if (m_goValue->building.health <= m_goInfo->building.damagedNumHits)
- @@ -1623,11 +1603,6 @@
- if (m_goValue->building.health + damage < m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits)
- hitType = BG_OBJECT_DMG_HIT_TYPE_DAMAGED;
- if (m_goValue->building.health <= m_goInfo->building.damagedNumHits)
- - {
- - if (!m_goInfo->building.destroyedDisplayId)
- - m_goValue->building.health = 0;
- - else if (!m_goValue->building.health)
- - m_goValue->building.health = 1;
- -
- + {
- SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
- @@ -1633,4 +1608,3 @@
- SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
- - SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.damagedDisplayId);
- EventInform(m_goInfo->building.damagedEvent);
- hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_HIGH_DAMAGED;
- @@ -1635,3 +1609,9 @@
- EventInform(m_goInfo->building.damagedEvent);
- hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_HIGH_DAMAGED;
- +
- + if (m_goInfo->building.damagedDisplayId)
- + SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.damagedDisplayId);
- +
- + if (!m_goValue->building.health)
- + m_goValue->building.health = 1;
- }
- @@ -1637,5 +1617,2 @@
- }
- - if (pwho)
- - if (BattleGround* bg = pwho->GetBattleGround())
- - bg->EventPlayerDamagedGO(pwho, this, hitType, m_goInfo->building.destroyedEvent);
- }
- @@ -1641,4 +1618,27 @@
- }
- +
- + if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED)) // from damaged to destroyed
- + {
- + hitType = BG_OBJECT_DMG_HIT_TYPE_HIGH_DAMAGED;
- + if (!m_goValue->building.health)
- + {
- + RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
- + SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
- + EventInform(m_goInfo->building.destroyedEvent);
- + hitType = BG_OBJECT_DMG_HIT_TYPE_JUST_DESTROYED;
- + sScriptMgr.GODestroyed(pwho, this, m_goInfo->building.destroyedEvent);
- + if (m_goInfo->building.destroyedDisplayId)
- + SetUInt32Value(GAMEOBJECT_DISPLAYID, m_goInfo->building.destroyedDisplayId);
- + }
- + }
- + if (HasFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED)) //destroyed
- + {
- + if (damage)
- + damage = 0;
- + }
- + if (pwho)
- + if (BattleGround* bg = pwho->GetBattleGround())
- + bg->EventPlayerDamagedGO(pwho, this, hitType, m_goInfo->building.destroyedEvent);
- SetGoAnimProgress(m_goValue->building.health*255/(m_goInfo->building.intactNumHits + m_goInfo->building.damagedNumHits));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement