Core/Entities: GameObjectDespawn packet is only sent for GameObjects

This commit is contained in:
joschiwald
2016-11-16 22:46:37 +01:00
parent 938595320f
commit 7fbc4374f3
7 changed files with 11 additions and 15 deletions

View File

@@ -102,7 +102,6 @@ void AreaTrigger::Remove()
{
if (IsInWorld())
{
SendObjectDeSpawnAnim(GetGUID());
RemoveFromWorld();
AddObjectToRemoveList();
}

View File

@@ -163,7 +163,6 @@ void DynamicObject::Remove()
{
if (IsInWorld())
{
SendObjectDeSpawnAnim(GetGUID());
RemoveFromWorld();
AddObjectToRemoveList();
}

View File

@@ -697,7 +697,7 @@ void GameObject::Update(uint32 diff)
//burning flags in some battlegrounds, if you find better condition, just add it
if (GetGOInfo()->IsDespawnAtAction() || GetGoAnimProgress() > 0)
{
SendObjectDeSpawnAnim(GetGUID());
SendGameObjectDespawn();
//reset flags
if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags);
@@ -748,7 +748,7 @@ void GameObject::Delete()
SetLootState(GO_NOT_READY);
RemoveFromOwner();
SendObjectDeSpawnAnim(GetGUID());
SendGameObjectDespawn();
SetGoState(GO_STATE_READY);
@@ -762,6 +762,13 @@ void GameObject::Delete()
AddObjectToRemoveList();
}
void GameObject::SendGameObjectDespawn()
{
WorldPackets::GameObject::GameObjectDespawn packet;
packet.ObjectGUID = GetGUID();
SendMessageToSet(packet.Write(), true);
}
void GameObject::getFishLoot(Loot* fishloot, Player* loot_owner)
{
fishloot->clear();

View File

@@ -1016,6 +1016,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
uint32 GetRespawnDelay() const { return m_respawnDelayTime; }
void Refresh();
void Delete();
void SendGameObjectDespawn();
void getFishLoot(Loot* loot, Player* loot_owner);
void getFishLootJunk(Loot* loot, Player* loot_owner);
GameobjectTypes GetGoType() const { return GameobjectTypes(GetByteValue(GAMEOBJECT_BYTES_1, 1)); }

View File

@@ -43,7 +43,6 @@
#include "OutdoorPvPMgr.h"
#include "Unit.h"
#include "BattlefieldMgr.h"
#include "GameObjectPackets.h"
#include "MiscPackets.h"
#include "InstanceScenario.h"
@@ -2182,13 +2181,6 @@ void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skippe
VisitNearbyWorldObject(GetVisibilityRange(), notifier);
}
void WorldObject::SendObjectDeSpawnAnim(ObjectGuid guid)
{
WorldPackets::GameObject::GameObjectDespawn packet;
packet.ObjectGUID = guid;
SendMessageToSet(packet.Write(), true);
}
void WorldObject::SetMap(Map* map)
{
ASSERT(map);

View File

@@ -613,8 +613,6 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void PlayDistanceSound(uint32 sound_id, Player* target = NULL);
void PlayDirectSound(uint32 sound_id, Player* target = NULL);
void SendObjectDeSpawnAnim(ObjectGuid guid);
virtual void SaveRespawnTime() { }
void AddObjectToRemoveList();

View File

@@ -654,7 +654,7 @@ public:
if (objectType < 0)
{
if (objectType == -1)
object->SendObjectDeSpawnAnim(object->GetGUID());
object->SendGameObjectDespawn();
else if (objectType == -2)
return false;
return true;