private static void CleanDeadMaps() { for (int i = 0; i < AssignManager.activePolicies.Count; i++) { MapActivePolicy map = AssignManager.activePolicies[i]; if (!Find.Maps.Any(x => x.uniqueID == map.mapId)) { AssignManager.DeleteLinksInMap(map.mapId); AssignManager.DeleteMap(map); } } }
internal static void CleanDeadMaps() { for (int i = 0; i < AssignManager.activePolicies.Count; i++) { MapActivePolicy map = AssignManager.activePolicies[i]; if (!Find.Maps.Any(x => x.uniqueID == map.mapId)) { if (Find.Maps.Count == 1 && !AssignManager.ActivePoliciesContainsValidMap()) { //this means the player was on the move without any base //and just re-settled. So, let's move the settings to //the new map int mapid = Find.CurrentMap.uniqueID; AssignManager.MoveLinksToMap(mapid); map.mapId = mapid; } else { AssignManager.DeleteLinksInMap(map.mapId); AssignManager.DeleteMap(map); } } } }