aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 58d7541b5bc..899782ae2d3 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -2261,17 +2261,16 @@ void Creature::AllLootRemovedFromCorpse()
float decayRate;
CreatureInfo const *cinfo = GetCreatureInfo();
- // corpse was not skinnable -> apply corpse looted timer
- if (!cinfo || !cinfo->SkinLootId)
- decayRate = sWorld.getRate(RATE_CORPSE_DECAY_LOOTED);
- // corpse skinnable, but without skinning flag, and then skinned, corpse will despawn next update
- else
- decayRate = 0.0f;
-
+ decayRate = sWorld.getRate(RATE_CORPSE_DECAY_LOOTED);
uint32 diff = uint32((m_corpseRemoveTime - now) * decayRate);
- m_corpseRemoveTime -= diff;
m_respawnTime -= diff;
+
+ // corpse skinnable, but without skinning flag, and then skinned, corpse will despawn next update
+ if (cinfo && cinfo->SkinLootId)
+ m_corpseRemoveTime = time(NULL);
+ else
+ m_corpseRemoveTime -= diff;
}
}