diff options
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 35 |
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; |