/// <summary> /// Deserializes a service range settings block. /// </summary> /// <param name="serializedData">The serialized data.</param> /// <param name="settings">The settings.</param> /// <returns>The deserialization result.</returns> private static DeserializationResult DeserializeRangeSettings(BinaryData serializedData, Settings settings) { if (serializedData == null || serializedData.Left == 0) { return(DeserializationResult.EndOfData); } Log.DevDebug(typeof(BinarySettings), "DeserializeRangeSettings", applySettings); serializedData.ResetLocalCheckSum(); SettingsType settingsType = serializedData.GetSettingsType(); if (settingsType != SettingsType.ServiceRanges) { throw new InvalidOperationException("Not a service range settings block"); } ulong version = serializedData.GetVersion(); if (version > 0) { Log.Warning(typeof(BinarySettings), "DeserializeRangeSettings", "Serialized data version too high", version, 0); return(DeserializationResult.Error); } // Settings. bool rangeLimit = serializedData.GetBool(); float rangeMaximum = serializedData.GetFloat(); float rangeMinimum = serializedData.GetFloat(); float rangeModifier = serializedData.GetFloat(); serializedData.CheckLocalCheckSum(); Log.Debug(typeof(BinarySettings), "DeserializeRangeSettings", applySettings, rangeLimit, rangeMaximum, rangeMinimum, rangeModifier); if (applySettings) { settings.RangeLimit = rangeLimit; settings.RangeMaximum = rangeMaximum; settings.RangeMinimum = rangeMinimum; settings.RangeModifier = rangeModifier; } return(DeserializationResult.Success); }