It 'looks' that the condition I would have added is already accounted for..
Code:
bool Mob::RemoveFromHateList(Mob* mob)
{
SetRunAnimSpeed(0);
bool bFound = false;
if(IsEngaged())
{
bFound = hate_list.RemoveEntFromHateList(mob);
if(hate_list.IsHateListEmpty())
{
AI_Event_NoLongerEngaged();
zone->DelAggroMob();
if (IsNPC() && !RuleB(Aggro, AllowTickPulling))
ResetAssistCap();
}
}
if(GetTarget() == mob)
{
SetTarget(hate_list.GetEntWithMostHateOnList(this));
}
return bFound;
}
I guess I'll have to check for direct manipulations of 'Mob::hate_list' to see if a GetTarget() check is made in those cases...