Fix ReloadQuest on Shutdown crash related to encounters

Basically, EntityList::RemoveAllEncounters is called before ReloadQuests
resulting in stale pointers in the lua_encounters map.

We just have to remove the entry from the map.
This commit is contained in:
Michael Cook (mackal)
2021-02-24 01:03:38 -05:00
parent 66d24ff419
commit 43fade82e5
6 changed files with 24 additions and 0 deletions
+8
View File
@@ -89,6 +89,14 @@ void QuestParserCollection::ReloadQuests(bool reset_timers) {
}
}
void QuestParserCollection::RemoveEncounter(const std::string name) {
auto iter = _load_precedence.begin();
while(iter != _load_precedence.end()) {
(*iter)->RemoveEncounter(name);
++iter;
}
}
bool QuestParserCollection::HasQuestSub(uint32 npcid, QuestEventID evt) {
return HasQuestSubLocal(npcid, evt) || HasQuestSubGlobal(evt);
}