Пример #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)
        {
            int offset = 0;

            offset += writer.XFERPTR(StructMemberExpression);
            offset += ExpressionSerializer.WriteExpression(StructExpression, writer);
            return(offset);
        }
Пример #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)
        {
            int offset = 0;

            offset += ExpressionSerializer.WriteExpression(Delegate, writer);
            offset += ExpressionSerializer.WriteExpression(DelegateToAdd, writer);
            return(offset);
        }
        /// <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 += writer.XFER_PROP_POINTER(DestinationProperty);
            offset += ExpressionSerializer.WriteExpression(AssignmentExpression, writer);
            return(offset);
        }
Пример #4
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 += writer.XFER_OBJECT_POINTER(ClassPtr);
            offset += ExpressionSerializer.WriteExpression(TargetExpression, writer);
            return(offset);
        }
Пример #5
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(VariableExpression, writer);
            offset += ExpressionSerializer.WriteExpression(AssignmentExpression, writer);
            return(offset);
        }
Пример #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((byte)ConversionType); offset += sizeof(byte);
            offset += ExpressionSerializer.WriteExpression(Target, writer);
            return(offset);
        }
Пример #7
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(ArrayVariable, writer);
            offset += ExpressionSerializer.WriteExpression(ArrayIndex, writer);
            return(offset);
        }
Пример #8
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);
        }
Пример #9
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 += writer.XFER_FUNC_NAME(FunctionName);
            offset += ExpressionSerializer.WriteExpression(Delegate, writer);
            offset += ExpressionSerializer.WriteExpression(ObjectTerm, writer);
            return(offset);
        }
Пример #10
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);
        }
Пример #11
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);
        }
Пример #12
0
        public override void Write(AssetBinaryWriter writer)
        {
            base.Write(writer);

            writer.Write(SuperStruct.Index);

            writer.Write(Children.Length);
            for (int i = 0; i < Children.Length; i++)
            {
                writer.Write(Children[i].Index);
            }

            if (Asset.GetCustomVersion <FCoreObjectVersion>() >= FCoreObjectVersion.FProperties)
            {
                writer.Write(LoadedProperties.Length);
                for (int i = 0; i < LoadedProperties.Length; i++)
                {
                    MainSerializer.WriteFProperty(LoadedProperties[i], writer);
                }
            }

            if (ScriptBytecode == null)
            {
                writer.Write(ScriptBytecodeSize);
                writer.Write(ScriptBytecodeRaw.Length);
                writer.Write(ScriptBytecodeRaw);
            }
            else
            {
                long lengthOffset1 = writer.BaseStream.Position;
                writer.Write((int)0); // total iCode offset; to be filled out after serialization
                long lengthOffset2 = writer.BaseStream.Position;
                writer.Write((int)0); // size on disk; to be filled out after serialization

                int  totalICodeOffset = 0;
                long startMetric      = writer.BaseStream.Position;
                for (int i = 0; i < ScriptBytecode.Length; i++)
                {
                    totalICodeOffset += ExpressionSerializer.WriteExpression(ScriptBytecode[i], writer);
                }
                long endMetric = writer.BaseStream.Position;

                // Write out total size in bytes
                long totalLength = endMetric - startMetric;
                long here        = writer.BaseStream.Position;
                writer.Seek((int)lengthOffset1, SeekOrigin.Begin);
                writer.Write(totalICodeOffset);
                writer.Seek((int)lengthOffset2, SeekOrigin.Begin);
                writer.Write((int)totalLength);
                writer.Seek((int)here, SeekOrigin.Begin);
            }
        }
Пример #13
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 += writer.XFER_FUNC_NAME(VirtualFunctionName);

            for (int i = 0; i < Parameters.Length; i++)
            {
                offset += ExpressionSerializer.WriteExpression(Parameters[i], writer);
            }
            offset += ExpressionSerializer.WriteExpression(new EX_EndFunctionParms(), writer);
            return(offset);
        }
Пример #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)
        {
            int offset = 0;

            offset += ExpressionSerializer.WriteExpression(MapProperty, writer);
            writer.Write(Elements.Length); offset += sizeof(int);
            for (int i = 0; i < Elements.Length; i++)
            {
                offset += ExpressionSerializer.WriteExpression(Elements[i], writer);
            }
            offset += ExpressionSerializer.WriteExpression(new EX_EndMap(), writer);
            return(offset);
        }
Пример #15
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 += writer.XFERPTR(Struct);
            writer.Write(StructSize); offset += sizeof(int);

            for (int i = 0; i < Value.Length; i++)
            {
                offset += ExpressionSerializer.WriteExpression(Value[i], writer);
            }

            // Write end expression
            offset += ExpressionSerializer.WriteExpression(new EX_EndStructConst(), writer);
            return(offset);
        }
Пример #16
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);
        }
Пример #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;

            if (writer.Asset.EngineVersion >= UE4Version.VER_UE4_CHANGE_SETARRAY_BYTECODE)
            {
                offset += ExpressionSerializer.WriteExpression(AssigningProperty, writer);
            }
            else
            {
                offset += writer.XFERPTR(ArrayInnerProp);
            }

            for (int i = 0; i < Elements.Length; i++)
            {
                offset += ExpressionSerializer.WriteExpression(Elements[i], writer);
            }
            offset += ExpressionSerializer.WriteExpression(new EX_EndArray(), writer);
            return(offset);
        }
Пример #18
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)
 {
     return(ExpressionSerializer.WriteExpression(DelegateToClear, writer));
 }
Пример #19
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)
 {
     return(ExpressionSerializer.WriteExpression(InterfaceValue, writer));
 }
Пример #20
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)
 {
     return(ExpressionSerializer.WriteExpression(ReturnExpression, writer));
 }