From e47e9a2218195d4490434986409a11a539560ae0 Mon Sep 17 00:00:00 2001 From: SilverIce Date: Sat, 17 Jul 2010 03:26:36 +0400 Subject: [PATCH] [10201] Broadcast packets only if worldobject is in world There is no sense to do that for objects that not in world - those objects are unknown for clients and their packets will be ignored (based on SilverIce's repo commit 6305402) Signed-off-by: VladimirMangos --- src/game/Object.cpp | 13 ++++++------- src/game/Player.cpp | 12 ++++++------ src/game/Unit.cpp | 2 +- src/shared/revision_nr.h | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 8386721ea..5fd1e6fd9 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -1572,25 +1572,24 @@ void WorldObject::BuildMonsterChat(WorldPacket *data, uint8 msgtype, char const* void WorldObject::SendMessageToSet(WorldPacket *data, bool /*bToSelf*/) { //if object is in world, map for it already created! - Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId()); - if(_map) - _map->MessageBroadcast(this, data); + if (IsInWorld()) + GetMap()->MessageBroadcast(this, data); } void WorldObject::SendMessageToSetInRange(WorldPacket *data, float dist, bool /*bToSelf*/) { //if object is in world, map for it already created! - if (Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId())) - _map->MessageDistBroadcast(this, data, dist); + if (IsInWorld()) + GetMap()->MessageDistBroadcast(this, data, dist); } void WorldObject::SendMessageToSetExcept(WorldPacket *data, Player const* skipped_receiver) { //if object is in world, map for it already created! - if (Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId())) + if (IsInWorld()) { MaNGOS::MessageDelivererExcept notifier(this, data, skipped_receiver); - Cell::VisitWorldObjects(this, notifier, _map->GetVisibilityDistance()); + Cell::VisitWorldObjects(this, notifier, GetMap()->GetVisibilityDistance()); } } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 0d4e059aa..8f1dc7f14 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6068,8 +6068,8 @@ void Player::SaveRecallPosition() void Player::SendMessageToSet(WorldPacket *data, bool self) { - if (Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId())) - _map->MessageBroadcast(this, data, false); + if (IsInWorld()) + GetMap()->MessageBroadcast(this, data, false); //if player is not in world and map in not created/already destroyed //no need to create one, just send packet for itself! @@ -6079,8 +6079,8 @@ void Player::SendMessageToSet(WorldPacket *data, bool self) void Player::SendMessageToSetInRange(WorldPacket *data, float dist, bool self) { - if (Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId())) - _map->MessageDistBroadcast(this, data, dist, false); + if (IsInWorld()) + GetMap()->MessageDistBroadcast(this, data, dist, false); if (self) GetSession()->SendPacket(data); @@ -6088,8 +6088,8 @@ void Player::SendMessageToSetInRange(WorldPacket *data, float dist, bool self) void Player::SendMessageToSetInRange(WorldPacket *data, float dist, bool self, bool own_team_only) { - if (Map * _map = IsInWorld() ? GetMap() : sMapMgr.FindMap(GetMapId(), GetInstanceId())) - _map->MessageDistBroadcast(this, data, dist, false, own_team_only); + if (IsInWorld()) + GetMap()->MessageDistBroadcast(this, data, dist, false, own_team_only); if (self) GetSession()->SendPacket(data); diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b5c3c3dde..b7ac16394 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8961,7 +8961,7 @@ void Unit::SetPower(Powers power, uint32 val) data << GetPackGUID(); data << uint8(power); data << uint32(val); - SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER ? true : false); + SendMessageToSet(&data, true); // group update if(GetTypeId() == TYPEID_PLAYER) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 199388899..687739acb 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10200" + #define REVISION_NR "10201" #endif // __REVISION_NR_H__