aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r--src/game/Creature.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index 4b31668db62..9b4332a579f 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -485,7 +485,22 @@ void Creature::Update(uint32 diff)
if (m_isDeadByDefault)
break;
- if( m_deathTimer <= diff )
+ if (m_groupLootTimer && lootingGroupLeaderGUID)
+ {
+ // for delayed spells
+ m_Events.Update(diff);
+
+ if (m_groupLootTimer <= diff)
+ {
+ Group* group = objmgr.GetGroupByLeader(lootingGroupLeaderGUID);
+ if (group)
+ group->EndRoll(&loot);
+ m_groupLootTimer = 0;
+ lootingGroupLeaderGUID = 0;
+ }
+ else m_groupLootTimer -= diff;
+ }
+ else if (m_deathTimer <= diff)
{
RemoveCorpse();
DEBUG_LOG("Removing corpse... %u ", GetUInt32Value(OBJECT_FIELD_ENTRY));
@@ -493,24 +508,8 @@ void Creature::Update(uint32 diff)
else
{
// for delayed spells
- m_Events.Update( diff );
-
+ m_Events.Update(diff);
m_deathTimer -= diff;
- if (m_groupLootTimer && lootingGroupLeaderGUID)
- {
- if(diff <= m_groupLootTimer)
- {
- m_groupLootTimer -= diff;
- }
- else
- {
- Group* group = objmgr.GetGroupByLeader(lootingGroupLeaderGUID);
- if (group)
- group->EndRoll();
- m_groupLootTimer = 0;
- lootingGroupLeaderGUID = 0;
- }
- }
}
break;