void ComponentPluginManager::UnloadAllPlugins(EntityManager& em) { for(PluginFactoryMap::iterator i = mFactories.begin(); i != mFactories.end(); ++i) { ComponentType ctype = i->first; if(em.HasEntitySystem(ctype)) { dtEntity::EntitySystem* es = em.GetEntitySystem(ctype); if(es == NULL || !em.RemoveEntitySystem(*es)) { LOG_ERROR("Could not cleanly remove entity system " << GetStringFromSID(ctype)); } else { delete es; } } } }