Core/Entities: GameObjectDespawn packet is only sent for GameObjects

This commit is contained in:
Aokromes
2017-04-02 07:57:21 +02:00
parent 2d54defdf0
commit 9b378447f8
8 changed files with 13 additions and 16 deletions

View File

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

View File

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

View File

@@ -707,7 +707,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);
@@ -758,7 +758,7 @@ void GameObject::Delete()
SetLootState(GO_NOT_READY);
RemoveFromOwner();
SendObjectDeSpawnAnim(GetGUID());
SendGameObjectDespawn();
SetGoState(GO_STATE_READY);
@@ -772,6 +772,14 @@ void GameObject::Delete()
AddObjectToRemoveList();
}
void GameObject::SendGameObjectDespawn()
{
WorldPacket data(SMSG_GAMEOBJECT_DESPAWN_ANIM, 8);
data << uint64(guid);
SendMessageToSet(&data, true);
}
void GameObject::getFishLoot(Loot* fishloot, Player* loot_owner)
{
fishloot->clear();

View File

@@ -773,6 +773,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

@@ -1975,13 +1975,6 @@ void WorldObject::SendMessageToSet(WorldPacket* data, Player const* skipped_rcvr
VisitNearbyWorldObject(GetVisibilityRange(), notifier);
}
void WorldObject::SendObjectDeSpawnAnim(ObjectGuid guid)
{
WorldPacket data(SMSG_GAMEOBJECT_DESPAWN_ANIM, 8);
data << uint64(guid);
SendMessageToSet(&data, true);
}
void WorldObject::SetMap(Map* map)
{
ASSERT(map);

View File

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

View File

@@ -49,7 +49,7 @@ public:
{ "zonexy", rbac::RBAC_PERM_COMMAND_GO_ZONEXY, false, &HandleGoZoneXYCommand, "" },
{ "xyz", rbac::RBAC_PERM_COMMAND_GO_XYZ, false, &HandleGoXYZCommand, "" },
{ "ticket", rbac::RBAC_PERM_COMMAND_GO_TICKET, false, &HandleGoTicketCommand, "" },
{ "offset", rbac::RBAC_PERM_COMMAND_GO_OFFSET, false, &HandleGoOffsetCommand,
{ "offset", rbac::RBAC_PERM_COMMAND_GO_OFFSET, false, &HandleGoOffsetCommand, "" },
};
static std::vector<ChatCommand> commandTable =
@@ -562,7 +562,6 @@ public:
ticket->TeleportTo(player);
return true;
}
};
static bool HandleGoOffsetCommand(ChatHandler* handler, char const* args)
{

View File

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