Пример #1
0
        internal static FloatValue Read(IFieldReader reader)
        {
            var value1 = reader.ReadValueF32();
            var value2 = reader.ReadValueF32();

            return(new FloatValue(value1, value2));
        }
Пример #2
0
        internal static Property Read(IFieldReader reader)
        {
            var valueType = (ValueType)reader.ReadValueU8(); // & 7

            reader.SkipBytes(3);
            var function = (FunctionType)reader.ReadValueU8(); // & 3

            reader.SkipBytes(3);
            var index = reader.ReadValueU16(); // & 0x7FF

            reader.SkipBytes(2);
            var value  = ReadValue(valueType, reader);
            var factor = reader.Version >= 88 ? reader.ReadValueF32() : 0;

            return(new Property(index, function, value, factor));
        }
Пример #3
0
        internal override void ReadField(uint type, IFieldReader reader)
        {
            var size = reader.Size;

            switch ((FieldType)type)
            {
            case FieldType.EDID:
            {
                this.MarkField(0);
                this._EditorId = reader.ReadString(size);
                break;
            }

            case FieldType.FULL:
            {
                this.MarkField(1);
                this._FullName = reader.ReadLocalizedString();
                break;
            }

            case FieldType.DESC:
            {
                this.MarkField(2);
                this._Description = reader.ReadLocalizedString();
                break;
            }

            case FieldType.OBND:
            {
                this.MarkField(3);
                Debug.Assert(size == 12);
                break;
            }

            case FieldType.MODL:
            {
                this.MarkField(4);
                this._Model = reader.ReadString(0);
                break;
            }

            case FieldType.MODT:
            {
                this.MarkField(5);
                break;
            }

            case FieldType.DNAM:
            {
                this.MarkField(6);
                Debug.Assert((reader.Version >= 107 && size == 16) || (reader.Version < 107 && size == 8));

                var value1 = reader.ReadValueF32();
                var value2 = reader.ReadValueU32();
                if (reader.Version >= 107)
                {
                    var value3 = reader.ReadValueF32();
                    var value4 = reader.ReadValueF32();
                }
                else
                {
                }

                break;
            }

            case FieldType.MNAM:
            {
                this.MarkField(7);
                Debug.Assert(size == 1040);
                break;
            }

            case FieldType.PRPS:
            {
                this.MarkField(8);
                //Assert(size == 8);
                break;
            }

            case FieldType.PTRN:
            {
                this.MarkField(9);
                Debug.Assert(size == 4);
                break;
            }

            case FieldType.MODS:
            {
                this.MarkField(10);
                Debug.Assert(size == 4);
                break;
            }

            case FieldType.NVNM:
            {
                this.MarkField(11);
                //Assert(size == 720);
                break;
            }

            case FieldType.MODC:
            {
                this.MarkField(12);
                Debug.Assert(size == 4);
                break;
            }

            case FieldType.VMAD:
            {
                this.MarkField(13);
                Debug.Assert(size == 36);
                break;
            }

            case FieldType.FTYP:
            {
                this.MarkField(14);
                Debug.Assert(size == 4);
                break;
            }

            default:
            {
                throw new NotSupportedException();
            }
            }
        }
Пример #4
0
 internal override void Read(IFieldReader reader)
 {
     this.Version      = reader.ReadValueF32();
     this.RecordCount  = reader.ReadValueS32();
     this.NextRecordId = reader.ReadValueU32();
 }