示例#1
0
        public static void WriteBlock(this GenericWriter writer, Action <GenericWriter> onSerialize)
        {
            /*using (var ms = new MemoryStream())
             * {
             *      GenericWriter w = ms.GetBinaryWriter();
             *
             *      VitaNexCore.TryCatch(onSerialize, w);
             *
             *      w.Close();
             *
             *      WriteLongBytes(writer, ms.ToArray());
             * }*/

            long start = writer.Seek(0, SeekOrigin.Current);

            writer.Write(start);

            VitaNexCore.TryCatch(onSerialize, writer);

            long end = writer.Seek(0, SeekOrigin.Current);

            writer.Seek(start, SeekOrigin.Begin);
            writer.Write(end - start);
            writer.Seek(end, SeekOrigin.Begin);
        }
示例#2
0
        /// <summary>
        ///     DO NOT USE IN ITEM, MOBILE OR GUILD SERIALIZATION
        /// </summary>
        public static void WriteBlock(this GenericWriter writer, Action <GenericWriter> onSerialize)
        {
            long start = writer.Seek(0, SeekOrigin.Current);

            writer.Write(start);

            VitaNexCore.TryCatch(() => onSerialize(writer), VitaNexCore.ToConsole);

            long end = writer.Seek(0, SeekOrigin.Current);

            writer.Seek(start, SeekOrigin.Begin);
            writer.Write(end - start);
            writer.Seek(end, SeekOrigin.Begin);
        }
示例#3
0
        /// <summary>
        ///     DO NOT USE IN ITEM, MOBILE OR GUILD SERIALIZATION
        /// </summary>
        public static void WriteBytes(this GenericWriter writer, byte[] buffer, int offset, int count, out int length)
        {
            var start = (int)writer.Seek(0, SeekOrigin.Current);

            writer.Write(count);

            for (int i = offset; i >= 0 && i < (offset + count) && i < buffer.Length; i++)
            {
                writer.Write(buffer[i]);
            }

            var end = (int)writer.Seek(0, SeekOrigin.Current);

            length = (end - start);
            writer.Seek(start, SeekOrigin.Begin);
            writer.Write(length);
            writer.Seek(end, SeekOrigin.Begin);
        }
示例#4
0
		private static void WriteLength(GenericWriter idx, bool reset, long length, int count)
		{
			var index = idx.Seek(0, SeekOrigin.Current);

			idx.Seek(4, SeekOrigin.Begin);

			idx.Write(length);
			idx.Write(count);

			if (reset)
			{
				idx.Seek(index, SeekOrigin.Begin);
			}
		}