Beispiel #1
0
        /// <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);
        }