Example #1
0
        public DataStream Write(object data, bool swaped, FieldType type)
        {
            switch (type)
            {
            case FieldType.AString: return(WriteAString((string)data));

            case FieldType.CUInt32: return(WriteCUInt32((uint)data));

            case FieldType.DwordAString: return(WriteAString((string)data, true));

            case FieldType.DwordUString: return(WriteUString((string)data, true));
            }

            if (data is DataStream)
            {
                return(WriteDataStream((DataStream)data));
            }
            if (data is string)
            {
                return(WriteUString((string)data));
            }
            if (data is uint)
            {
                return(WriteDword((uint)data, swaped));
            }
            if (data is ushort)
            {
                return(WriteWord((ushort)data, swaped));
            }
            if (data is int)
            {
                return(WriteInt32((int)data, swaped));
            }
            if (data is short)
            {
                return(WriteInt16((short)data, swaped));
            }
            if (data is float)
            {
                return(WriteFloat((float)data, swaped));
            }
            if (data is UnixTime)
            {
                return(WriteTime((UnixTime)data, swaped));
            }
            if (data is Point3F)
            {
                return(WritePoint((Point3F)data, swaped));
            }
            if (data is byte[])
            {
                return(WriteBytes((byte[])data, swaped));
            }
            if (data is byte)
            {
                return(WriteByte((byte)data));
            }
            if (data is bool)
            {
                return(WriteBoolean((bool)data));
            }

            DataStreamSerializer.Serialize(data, this);

            return(this);
        }