diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 3e078ebbbb5..44fdec8c563 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1089,6 +1089,17 @@ void WorldObject::RemoveFromWorld() Object::RemoveFromWorld(); } +bool WorldObject::IsInWorldPvpZone() const +{ + switch (GetZoneId()) + { + case AREA_WINTERGRASP: // Wintergrasp + return true; + default: + return false; + } +} + InstanceScript* WorldObject::GetInstanceScript() const { Map* map = GetMap(); diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index d800c4283f9..7b735e5b2c7 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -317,6 +317,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation uint32 GetZoneId() const { return m_zoneId; } uint32 GetAreaId() const { return m_areaId; } void GetZoneAndAreaId(uint32& zoneid, uint32& areaid) const { zoneid = m_zoneId, areaid = m_areaId; } + bool IsInWorldPvpZone() const; bool IsOutdoors() const { return m_outdoors; } ZLiquidStatus GetLiquidStatus() const { return m_liquidStatus; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d862339c13b..9bb1bf8976b 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8327,8 +8327,8 @@ bool Player::CheckAmmoCompatibility(ItemTemplate const* ammo_proto) const Called by remove insignia spell effect */ void Player::RemovedInsignia(Player* looterPlr) { - // If player is not in battleground and not in wintergrasp - if (!GetBattlegroundId() && GetZoneId() != AREA_WINTERGRASP) + // If player is not in battleground and not in worldpvpzone + if (!GetBattlegroundId() && !IsInWorldPvpZone()) return; // If not released spirit, do it ! |