[Bug Fix] Fix issue with IsEntOnHateList (#4097)

# Notes
- We were not validating pointer in `IsEntOnHateList()`.
This commit is contained in:
Alex King 2024-02-19 02:52:19 -05:00 committed by GitHub
parent 767846f7e5
commit 6ec63969bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 7 deletions

View File

@ -73,20 +73,18 @@ void HateList::WipeHateList(bool npc_only) {
} }
} }
bool HateList::IsEntOnHateList(Mob *mob) bool HateList::IsEntOnHateList(Mob* m)
{ {
if (Find(mob)) return m ? Find(m) != nullptr : false;
return true;
return false;
} }
struct_HateList* HateList::Find(Mob* m) struct_HateList* HateList::Find(Mob* m)
{ {
if (!m) { if (!m || list.empty()) {
return nullptr; return nullptr;
} }
for (auto* e : list) { for (auto e : list) {
if (e->entity_on_hatelist && e->entity_on_hatelist == m) { if (e->entity_on_hatelist && e->entity_on_hatelist == m) {
return e; return e;
} }

View File

@ -48,7 +48,7 @@ public:
Mob *GetMobWithMostHateOnList(bool skip_mezzed = false); Mob *GetMobWithMostHateOnList(bool skip_mezzed = false);
Mob *GetEscapingMobOnHateList(Mob *center, float range = 0.0f, bool first = false); Mob *GetEscapingMobOnHateList(Mob *center, float range = 0.0f, bool first = false);
bool IsEntOnHateList(Mob *mob); bool IsEntOnHateList(Mob* m);
bool IsHateListEmpty(); bool IsHateListEmpty();
bool RemoveEntFromHateList(Mob *ent); bool RemoveEntFromHateList(Mob *ent);