void CZoneInstance::ZoneServer(time_point tick) { auto it = instanceList.begin(); while (it != instanceList.end()) { CInstance* instance = *it; instance->ZoneServer(tick); instance->CheckTime(tick); if ((instance->Failed() || instance->Completed()) && instance->CharListEmpty()) { it = instanceList.erase(it); delete instance; continue; } it++; } }