Ejemplo n.º 1
0
 /// <summary>
 /// Writes the expression to a BinaryWriter.
 /// </summary>
 /// <param name="writer">The BinaryWriter to write from.</param>
 /// <returns>The iCode offset of the data that was written.</returns>
 public override int Write(AssetBinaryWriter writer)
 {
     writer.Write(Pitch);
     writer.Write(Yaw);
     writer.Write(Roll);
     return(sizeof(int) * 3);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Writes the expression to a BinaryWriter.
 /// </summary>
 /// <param name="writer">The BinaryWriter to write from.</param>
 /// <returns>The iCode offset of the data that was written.</returns>
 public override int Write(AssetBinaryWriter writer)
 {
     writer.Write(Value.X);
     writer.Write(Value.Y);
     writer.Write(Value.Z);
     return(sizeof(float) * 3);
 }
Ejemplo n.º 3
0
        public override void Write(AssetBinaryWriter writer)
        {
            base.Write(writer);

            writer.Write(Enum.Index);
            writer.Write(UnderlyingProp.Index);
        }
Ejemplo n.º 4
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.Write(StructType);
                if (writer.Asset.EngineVersion >= UE4Version.VER_UE4_STRUCT_GUID_IN_PROPERTY_TAG)
                {
                    writer.Write(StructGUID.ToByteArray());
                }
                writer.WritePropertyGuid(PropertyGuid);
            }

            MainSerializer.PropertyTypeRegistry.TryGetValue(StructType.Value.Value, out RegistryEntry targetEntry);
            bool hasCustomStructSerialization = targetEntry != null && targetEntry.HasCustomStructSerialization;

            if (StructType.Value.Value == "RichCurveKey" && writer.Asset.EngineVersion < UE4Version.VER_UE4_SERIALIZE_RICH_CURVE_KEY)
            {
                hasCustomStructSerialization = false;
            }

            if (targetEntry != null && hasCustomStructSerialization)
            {
                return(WriteOnce(writer));
            }
            if (Value.Count == 0 && !SerializeNone)
            {
                return(0);
            }
            return(WriteNTPL(writer));
        }
Ejemplo n.º 5
0
 protected int WriteExpressionInput(AssetBinaryWriter writer, bool includeHeader)
 {
     writer.Write(OutputIndex);
     writer.Write(InputName);
     writer.Write(Extras); // always 0s
     writer.Write(ExpressionName);
     return((sizeof(int) * 2) * 2 + sizeof(int) + 20);
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Writes the expression to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public override int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            writer.Write(LineNumber); offset += sizeof(ushort);
            writer.Write(DebugMode); offset  += sizeof(bool);
            offset += ExpressionSerializer.WriteExpression(AssertExpression, writer);
            return(offset);
        }
Ejemplo n.º 7
0
 public override int Write(AssetBinaryWriter writer, bool includeHeader)
 {
     if (includeHeader)
     {
         writer.Write(EnumType);
         writer.WritePropertyGuid(PropertyGuid);
     }
     writer.Write(Value);
     return(sizeof(int) * 2);
 }
Ejemplo n.º 8
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(X);
            writer.Write(Y);
            return(sizeof(float) * 2);
        }
Ejemplo n.º 9
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.Pitch);
            writer.Write(Value.Yaw);
            writer.Write(Value.Roll);
            return(sizeof(float) * 3);
        }
Ejemplo n.º 10
0
        public override void Write(AssetBinaryWriter writer)
        {
            base.Write(writer);
            writer.Write((int)ArrayDim);
            writer.Write((ulong)PropertyFlags);
            writer.Write(RepNotifyFunc);

            if (writer.Asset.GetCustomVersion <FReleaseObjectVersion>() >= FReleaseObjectVersion.PropertiesSerializeRepCondition)
            {
                writer.Write((byte)BlueprintReplicationCondition);
            }
        }
Ejemplo n.º 11
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            int expLength = WriteExpressionInput(writer, false);

            writer.Write((int)0);
            writer.Write(Value);
            return(expLength + sizeof(uint) + sizeof(int));
        }
Ejemplo n.º 12
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.R);
            writer.Write(Value.G);
            writer.Write(Value.B);
            writer.Write(Value.A);
            return(sizeof(float) * 4);
        }
Ejemplo n.º 13
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(BlendTime);
            writer.Write((byte)BlendFunction);
            writer.Write(BlendExp);
            writer.Write(bLockOutgoing ? 1 : 0);
            return(sizeof(float) * 2 + sizeof(byte) + sizeof(int));
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Writes the expression to a BinaryWriter.
 /// </summary>
 /// <param name="writer">The BinaryWriter to write from.</param>
 /// <returns>The iCode offset of the data that was written.</returns>
 public override int Write(AssetBinaryWriter writer)
 {
     writer.Write(Value.Rotation.X);
     writer.Write(Value.Rotation.Y);
     writer.Write(Value.Rotation.Z);
     writer.Write(Value.Rotation.W);
     writer.Write(Value.Translation.X);
     writer.Write(Value.Translation.Y);
     writer.Write(Value.Translation.Z);
     writer.Write(Value.Scale3D.X);
     writer.Write(Value.Scale3D.Y);
     writer.Write(Value.Scale3D.Z);
     return(sizeof(float) * 10);
 }
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.Length);
            for (int i = 0; i < Value.Length; i++)
            {
                writer.Write(Value[i]);
            }
            return(sizeof(int) + sizeof(bool) * Value.Length);
        }
Ejemplo n.º 16
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            this.ShouldSerializeStructsDifferently = false;

            if (Value.Length > 0)
            {
                ArrayType = Value[0].PropertyType;
            }

            if (includeHeader)
            {
                writer.Write(ArrayType);
                writer.WritePropertyGuid(PropertyGuid);
            }

            var removedItemsDummy = new ArrayPropertyData(new FName("ElementsToRemove"));

            removedItemsDummy.ShouldSerializeStructsDifferently = false;
            removedItemsDummy.ArrayType = ArrayType;
            removedItemsDummy.Value     = ElementsToRemove;

            int leng1 = removedItemsDummy.Write(writer, false);

            return(leng1 + base.Write(writer, false));
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Writes the expression to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public override int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            writer.Write((ushort)Cases.Length); offset += sizeof(ushort);
            writer.Write(EndGotoOffset); offset        += sizeof(uint);
            offset += ExpressionSerializer.WriteExpression(IndexTerm, writer);
            for (int i = 0; i < Cases.Length; i++)
            {
                offset += ExpressionSerializer.WriteExpression(Cases[i].CaseIndexValueTerm, writer);
                writer.Write(Cases[i].NextOffset); offset += sizeof(uint);
                offset += ExpressionSerializer.WriteExpression(Cases[i].CaseTerm, writer);
            }
            offset += ExpressionSerializer.WriteExpression(DefaultTerm, writer);
            return(offset);
        }
Ejemplo n.º 18
0
 public virtual void Write(AssetBinaryWriter writer)
 {
     if (writer.Asset.GetCustomVersion <FFrameworkObjectVersion>() < FFrameworkObjectVersion.RemoveUField_Next)
     {
         writer.Write(Next.Index);
     }
 }
Ejemplo n.º 19
0
        /// <summary>
        /// Writes an FBlueprintText to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public virtual int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            writer.Write((byte)TextLiteralType); offset += sizeof(byte);
            switch (TextLiteralType)
            {
            case EBlueprintTextLiteralType.Empty:
                break;

            case EBlueprintTextLiteralType.LocalizedText:
                offset += ExpressionSerializer.WriteExpression(LocalizedSource, writer);
                offset += ExpressionSerializer.WriteExpression(LocalizedKey, writer);
                offset += ExpressionSerializer.WriteExpression(LocalizedNamespace, writer);
                break;

            case EBlueprintTextLiteralType.InvariantText:     // IsCultureInvariant
                offset += ExpressionSerializer.WriteExpression(InvariantLiteralString, writer);
                break;

            case EBlueprintTextLiteralType.LiteralString:
                offset += ExpressionSerializer.WriteExpression(LiteralString, writer);
                break;

            case EBlueprintTextLiteralType.StringTableEntry:
                offset += writer.XFER_OBJECT_POINTER(StringTableAsset);
                offset += ExpressionSerializer.WriteExpression(StringTableId, writer);
                offset += ExpressionSerializer.WriteExpression(StringTableKey, writer);
                break;

            default:
                throw new NotImplementedException("Unimplemented blueprint text literal type " + TextLiteralType);
            }
            return(offset);
        }
Ejemplo n.º 20
0
        public override void Write(AssetBinaryWriter writer)
        {
            base.Write(writer);

            writer.Write(Enum.Index);
            MainSerializer.WriteFProperty(UnderlyingProp, writer);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Writes the expression to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public override int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            writer.Write(CodeOffset); offset += sizeof(uint);
            offset += ExpressionSerializer.WriteExpression(BooleanExpression, writer);
            return(offset);
        }
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.Length);
            int totalSize = sizeof(int);

            for (int i = 0; i < Value.Length; i++)
            {
                writer.Write(Value[i]);
                totalSize += sizeof(int) * 2;
            }
            return(totalSize);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Writes the expression to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public override int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            writer.Write((byte)ConversionType); offset += sizeof(byte);
            offset += ExpressionSerializer.WriteExpression(Target, writer);
            return(offset);
        }
Ejemplo n.º 24
0
 public override int Write(AssetBinaryWriter writer, bool includeHeader)
 {
     writer.Write(Value);
     if (includeHeader)
     {
         writer.WritePropertyGuid(PropertyGuid);
     }
     return(0);
 }
Ejemplo n.º 25
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.ToByteArray());
            return(16);
        }
Ejemplo n.º 26
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            writer.Write(Value.ToArgb());
            return(sizeof(int));
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Writes the expression to a BinaryWriter.
        /// </summary>
        /// <param name="writer">The BinaryWriter to write from.</param>
        /// <returns>The iCode offset of the data that was written.</returns>
        public override int Write(AssetBinaryWriter writer)
        {
            int offset = 0;

            offset += ExpressionSerializer.WriteExpression(ObjectExpression, writer);
            writer.Write(Offset); offset += sizeof(uint);
            offset += writer.XFER_PROP_POINTER(RValuePointer);
            offset += ExpressionSerializer.WriteExpression(ContextExpression, writer);
            return(offset);
        }
Ejemplo n.º 28
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            int here = (int)writer.BaseStream.Position;

            writer.Write(Value);
            return((int)writer.BaseStream.Position - here);
        }
Ejemplo n.º 29
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            int here = (int)writer.BaseStream.Position;

            if (writer.Asset.EngineVersion < UE4Version.VER_UE4_ADDED_SOFT_OBJECT_PATH)
            {
                writer.Write(Path);
            }
            else
            {
                writer.Write(AssetPathName);
                writer.Write(SubPathString);
            }

            return((int)writer.BaseStream.Position - here);
        }
Ejemplo n.º 30
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            if (includeHeader)
            {
                writer.WritePropertyGuid(PropertyGuid);
            }

            long here = writer.BaseStream.Position;

            writer.Write(DisplayName);
            if (writer.Asset.GetCustomVersion <FAnimPhysObjectVersion>() < FAnimPhysObjectVersion.RemoveUIDFromSmartNameSerialize)
            {
                writer.Write(SmartNameID);
            }
            if (writer.Asset.GetCustomVersion <FAnimPhysObjectVersion>() < FAnimPhysObjectVersion.SmartNameRefactorForDeterministicCooking)
            {
                writer.Write(TempGUID.ToByteArray());
            }

            return((int)(writer.BaseStream.Position - here));
        }