It's never ogre with these hatelist crashes..

This commit is contained in:
SecretsOTheP
2014-04-21 22:19:12 -04:00
parent fe542deb89
commit dffee38dc6
5 changed files with 50 additions and 9 deletions
+13 -7
View File
@@ -60,14 +60,16 @@ void HateList::Wipe()
while(iterator != list.end())
{
Mob* m = (*iterator)->ent;
parse->EventNPC(EVENT_HATE_LIST, owner->CastToNPC(), m, "0", 0);
//iterator
if(m)
{
parse->EventNPC(EVENT_HATE_LIST, owner->CastToNPC(), m, "0", 0);
if(m->IsClient())
m->CastToClient()->DecrementAggroCount();
}
delete (*iterator);
iterator = list.erase(iterator);
if(m->IsClient())
m->CastToClient()->DecrementAggroCount();
}
}
@@ -203,6 +205,9 @@ void HateList::Add(Mob *ent, int32 in_hate, int32 in_dam, bool bFrenzy, bool iAd
bool HateList::RemoveEnt(Mob *ent)
{
if (!ent)
return NULL;
bool found = false;
auto iterator = list.begin();
@@ -211,14 +216,15 @@ bool HateList::RemoveEnt(Mob *ent)
if((*iterator)->ent == ent)
{
parse->EventNPC(EVENT_HATE_LIST, owner->CastToNPC(), ent, "0", 0);
delete (*iterator);
iterator = list.erase(iterator);
found = true;
if(ent->IsClient())
ent->CastToClient()->DecrementAggroCount();
}
delete (*iterator);
iterator = list.erase(iterator);
}
else
++iterator;
}