/// <summary> /// Deserializes the specified serialized data to this instance. /// </summary> /// <param name="serializedData">The serialized data.</param> /// <returns> /// The deserialization result. /// </returns> private SerializableSettings.DeserializationResult Deserialize(SerializableSettings.BinaryData serializedData) { if (serializedData == null || serializedData.Left == 0) { return(SerializableSettings.DeserializationResult.EndOfData); } serializedData.ResetLocalCheckSum(); ulong version = serializedData.GetVersion(); if (version > 0) { Log.Warning(this, "Deserialize", "Serialized data version too high!", version, 0); return(SerializableSettings.DeserializationResult.Error); } this.VehicleId = serializedData.GetUshort(); this.targetBuildingId = serializedData.GetUshort(); this.dispatcherType = serializedData.GetDispatcherType(); this.checkFlags = serializedData.GetVehicleFlags(); this.checkFlagPosition = serializedData.GetVector3(); this.checkFlagSinceFrame = serializedData.GetUint(); this.checkFlagSinceTime = serializedData.GetDouble(); this.confusedDeAssignedSinceFrame = serializedData.GetUint(); this.confusedSinceFrame = serializedData.GetUint(); this.confusedSinceTime = serializedData.GetDouble(); this.lostSinceFrame = serializedData.GetUint(); this.lostSinceTime = serializedData.GetDouble(); this.lostReason = serializedData.GetLostReason(); serializedData.CheckLocalCheckSum(); return(SerializableSettings.DeserializationResult.Success); }
/// <summary> /// Deserializes a hidden service settings block. /// </summary> /// <param name="serializedData">The serialized data.</param> /// <param name="settings">The settings.</param> /// <returns>The deserialization result.</returns> private static DeserializationResult DeserializeHiddenServiceSettings(BinaryData serializedData, Settings settings) { if (serializedData == null || serializedData.Left == 0) { return(DeserializationResult.EndOfData); } Log.DevDebug(typeof(BinarySettings), "DeserializeHiddenServiceSettings", applySettings); serializedData.ResetLocalCheckSum(); SettingsType settingsType = serializedData.GetSettingsType(); if (settingsType != SettingsType.HiddenService) { throw new InvalidOperationException("Not a hidden service settings block"); } ulong version = serializedData.GetVersion(); if (version > 0) { Log.Warning(typeof(BinarySettings), "DeserializeHiddenServiceSettings", "Serialized data version too high", version, 0); return(DeserializationResult.Error); } HiddenServiceSettings serviceSettings; HiddenServiceSettings serializedSettings; ServiceType service = serializedData.GetServiceType(); switch (service) { case ServiceType.WreckingCrews: serviceSettings = settings.WreckingCrews; break; case ServiceType.RecoveryCrews: serviceSettings = settings.RecoveryCrews; break; default: Log.Warning(typeof(BinarySettings), "Not a hidden service", service); serviceSettings = null; break; } serializedSettings = new HiddenServiceSettings(serviceSettings); // Settings. serializedSettings.DispatchVehicles = serializedData.GetBool(); serializedSettings.DelaySeconds = serializedData.GetDouble(); serializedData.CheckLocalCheckSum(); if (serviceSettings != null) { Log.Debug(typeof(BinarySettings), "DeserializeHiddenServiceSettings", applySettings, service, serializedSettings.DispatchVehicles, serializedSettings.DelaySeconds); if (applySettings) { serviceSettings.CopyFrom(serializedSettings); } } return(DeserializationResult.Success); }