All pastes #635881 Raw Edit

Miscellany

public text v1 · immutable
#635881 ·published 2007-07-27 13:21 UTC
rendered paste body
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