public void SetLocationCompletion(Location location, int iWave) { bool bFound = false; foreach (LocationCompletion data in locationsCompleted) { if (data.location == location) { bFound = true; if (iWave > data.iNumWaves) { data.iNumWaves = iWave; } } } if (!bFound) { LocationCompletion data = new LocationCompletion(); data.location = location; data.iNumWaves = iWave; locationsCompleted.Add(data); } MapNode.RefreshAllNodes(); CheckForAchievements(); }
public void ReadFrom(SerializationInfo data, string prefix) { locationsCompleted.Clear(); int count = data.GetInt32(prefix + "NumComplete"); for (int i = 0; i < count; i++) { LocationCompletion completionData = new LocationCompletion(); int hashCode = data.GetInt32(prefix + "Complete" + i + ".Hash"); foreach (Location location in locations) { if (location.GetHashCode() == hashCode) { completionData.location = location; break; } } completionData.iNumWaves = data.GetByte(prefix + "Complete" + i + ".NumWaves"); if (completionData.iNumWaves > completionData.location.numWaves) { completionData.iNumWaves = -1; } locationsCompleted.Add(completionData); } MapNode.RefreshAllNodes(); CheckForAchievements(); }