mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 06:21:28 +00:00
Fix for crash in EntityList::MobInZone(Mob *who) when a dangling pointer is passed to the function. Which used to work without crashing but was changed at some point which can be triggered by quests in some situations.
This commit is contained in:
parent
bb541eeb60
commit
d1ecb32652
@ -3415,9 +3415,14 @@ void EntityList::ReloadAllClientsTaskState(int TaskID)
|
||||
|
||||
bool EntityList::IsMobInZone(Mob *who)
|
||||
{
|
||||
auto it = mob_list.find(who->GetID());
|
||||
if (it != mob_list.end())
|
||||
return who == it->second;
|
||||
//We don't use mob_list.find(who) because this code needs to be able to handle dangling pointers for the quest code.
|
||||
auto it = mob_list.begin();
|
||||
while(it != mob_list.end()) {
|
||||
if(it->second == who) {
|
||||
return true;
|
||||
}
|
||||
++it;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user