Make the AI stopping a little less silly on zone shutdown

This commit is contained in:
Michael Cook (mackal) 2015-01-10 02:34:06 -05:00
parent 00ba6e761e
commit 5b78acc45e
3 changed files with 10 additions and 9 deletions

View File

@ -4668,3 +4668,10 @@ Mob *EntityList::GetTargetForVirus(Mob *spreader, int range)
return TargetsInRange[zone->random.Int(0, TargetsInRange.size() - 1)];
}
void EntityList::StopMobAI()
{
for (auto &mob : mob_list) {
mob.second->AI_Stop();
mob.second->AI_ShutDown();
}
}

View File

@ -268,6 +268,8 @@ public:
Entity *GetEntityMob(const char *name);
Entity *GetEntityCorpse(const char *name);
void StopMobAI();
void DescribeAggro(Client *towho, NPC *from_who, float dist, bool verbose);
void Message(uint32 to_guilddbid, uint32 type, const char* message, ...);

View File

@ -662,15 +662,7 @@ void Zone::Shutdown(bool quite)
if (!ZoneLoaded)
return;
std::list<Mob*> mob_list;
entity_list.GetMobList(mob_list);
std::list<Mob*>::iterator mob_itr = mob_list.begin();
while (mob_itr != mob_list.end()) {
Mob* mob_inst = *mob_itr;
mob_inst->AI_Stop();
mob_inst->AI_ShutDown();
++mob_itr;
}
entity_list.StopMobAI();
std::map<uint32,NPCType *>::iterator itr;
while(zone->npctable.size()) {