Example #1
0
        public DataStream Read(out object data, Type type, FieldType fieldType, bool swaped)
        {
            switch (fieldType)
            {
            case FieldType.AString: data = ReadAString();          return(this);

            case FieldType.CUInt32: data = ReadCUInt32();          return(this);

            case FieldType.DwordAString: data = ReadAString(true); return(this);

            case FieldType.DwordUString: data = ReadUString(true); return(this);
            }
            switch (type.Name)
            {
            case "DataStream": data = ReadDataStream();  return(this);

            case "String":     data = ReadUString();     return(this);

            case "Single":     data = ReadFloat(swaped); return(this);

            case "Int32":      data = ReadInt32(swaped); return(this);

            case "Int16":      data = ReadInt16(swaped); return(this);

            case "UInt32":     data = ReadDword(swaped); return(this);

            case "UInt16":     data = ReadWord(swaped);  return(this);

            case "Byte":       data = ReadByte();        return(this);

            case "Boolean":    data = ReadBoolean();     return(this);

            default:           data = DataStreamSerializer.Deserialize(this, swaped, type); return(this);
            }
        }
Example #2
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);
        }