Index: src/game/Corpse.cpp
===================================================================
--- src/game/Corpse.cpp (revision 4175)
+++ src/game/Corpse.cpp (working copy)
@@ -219,19 +219,17 @@
CorpsePtr bones = CorpsePtr(new Corpse(this));
bones->Create(GetGUIDLow());
- for (int i = 0; i < CORPSE_END; i++)
+ for (int i = 3; i < CORPSE_END; i++) // not overwrite guid and object type
{
bones->SetUInt32Value(i, GetUInt32Value(i));
}
bones->m_grid = m_grid;
- bones->m_time = m_time;
- bones->m_inWorld = m_inWorld;
+ // bones->m_time = m_time; // not overwrite time
+ // bones->m_inWorld = m_inWorld; // not overwrite world state
+ // bones->m_type = m_type; // not overwrite type
bones->Relocate(GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
bones->SetMapId(GetMapId());
- // update data to bone state
- bones->m_type = CORPSE_BONES;
-
uint32 flags = 0x05;
{
Player* player = ObjectAccessor::Instance().FindPlayer(GetOwnerGUID());
@@ -255,7 +253,7 @@
// add bones in grid store if grid loaded where corpse placed
if(!MapManager::Instance().GetMap(bones->GetMapId(), &*bones)->IsRemovalGrid(bones->GetPositionX(),bones->GetPositionY()))
{
- MapManager::Instance().GetMap(GetMapId(), &*bones)->Add(bones);
+ MapManager::Instance().GetMap(bones->GetMapId(), &*bones)->Add(bones);
}
// or prepare to delete at next tick if grid not loaded
else