From be53cfe1044d7e913c4c11a7245e2d2846826363 Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 17 Feb 2009 21:50:18 -0600 Subject: *Fix some bugs of map/grid. Hope this can fix some crashes (without introducing new crash) --HG-- branch : trunk --- src/game/Unit.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src/game/Unit.cpp') diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index cc6d1f7aa94..40d051fa19a 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4830,7 +4830,7 @@ void Unit::RemoveDynObject(uint32 spellid) for (DynObjectGUIDs::iterator i = m_dynObjGUIDs.begin(); i != m_dynObjGUIDs.end();) { DynamicObject* dynObj = ObjectAccessor::GetDynamicObject(*this, *i); - if(!dynObj) + if(!dynObj) // may happen if a dynobj is removed when grid unload { i = m_dynObjGUIDs.erase(i); } @@ -8473,20 +8473,11 @@ void Unit::RemovePlayerFromVision(Player* plr) void Unit::RemoveBindSightAuras() { - /*while (!m_sharedVision.empty()) - { - Player* plr = *m_sharedVision.begin(); - m_sharedVision.erase(m_sharedVision.begin()); - plr->ClearFarsight(); - }*/ RemoveSpellsCausingAura(SPELL_AURA_BIND_SIGHT); } void Unit::RemoveCharmAuras() { - if (!GetCharmer()) - return; - RemoveSpellsCausingAura(SPELL_AURA_MOD_CHARM); RemoveSpellsCausingAura(SPELL_AURA_MOD_POSSESS_PET); RemoveSpellsCausingAura(SPELL_AURA_MOD_POSSESS); @@ -11132,6 +11123,8 @@ void Unit::RemoveFromWorld() // cleanup if(IsInWorld()) { + RemoveCharmAuras(); + RemoveBindSightAuras(); RemoveNotOwnSingleTargetAuras(); } -- cgit v1.2.3