internal static DxfClassesSection ClassesSectionFromBuffer(DxfCodePairBufferReader buffer, DxfAcadVersion version)
        {
            var section = new DxfClassesSection();

            section.Clear();
            while (buffer.ItemsRemain)
            {
                var pair = buffer.Peek();
                if (DxfCodePair.IsSectionEnd(pair))
                {
                    // done reading classes
                    buffer.Advance(); // swallow (0, ENDSEC)
                    break;
                }

                if (pair.Code != 0)
                {
                    throw new DxfReadException("Expected new class.", pair);
                }

                var cls = DxfClass.FromBuffer(buffer, version);
                if (cls != null)
                {
                    section.Classes.Add(cls);
                }
            }

            return(section);
        }
Esempio n. 2
0
        private DxfClass readClass()
        {
            DxfClass curr = new DxfClass();

            Debug.Assert(m_reader.LastValueAsString == DxfFileToken.ClassEntry);

            m_reader.ReadNext();
            //Loop until the next class or the end of the section
            while (m_reader.LastDxfCode != DxfCode.Start)
            {
                switch (m_reader.LastCode)
                {
                //Class DXF record name; always unique
                case 1:
                    curr.DxfName = m_reader.LastValueAsString;
                    break;

                //C++ class name. Used to bind with software that defines object class behavior; always unique
                case 2:
                    curr.CppClassName = m_reader.LastValueAsString;
                    break;

                //Application name. Posted in Alert box when a class definition listed in this section is not currently loaded
                case 3:
                    curr.ApplicationName = m_reader.LastValueAsString;
                    break;

                //Proxy capabilities flag.
                case 90:
                    curr.ProxyFlags = (ProxyFlags)m_reader.LastValueAsShort;
                    break;

                //Instance count for a custom class
                case 91:
                    curr.InstanceCount = m_reader.LastValueAsInt;
                    break;

                //Was-a-proxy flag. Set to 1 if class was not loaded when this DXF file was created, and 0 otherwise
                case 280:
                    curr.WasAProxy = m_reader.LastValueAsBool;
                    break;

                //Is - an - entity flag.
                case 281:
                    curr.IsAnEntity = m_reader.LastValueAsBool;
                    break;

                default:
                    break;
                }

                m_reader.ReadNext();
            }

            return(curr);
        }
Esempio n. 3
0
        internal override void Read(Class434 or, Class259 objectBuilder)
        {
            base.Read(or, objectBuilder);
            Interface30 objectBitStream = or.ObjectBitStream;
            int         num1;

            if (or.Builder.Version > DxfVersion.Dxf14)
            {
                num1 = objectBitStream.imethod_11();
                if (or.Builder.Version > DxfVersion.Dxf15)
                {
                    objectBitStream.ReadString();
                }
                int num2 = objectBitStream.imethod_11();
                this.dwgVersion_0 = (DwgVersion)(num2 & (int)ushort.MaxValue);
                this.short_1      = (short)(num2 >> 16);
                this.bool_2       = objectBitStream.imethod_6();
                if (this.bool_2)
                {
                    objectBitStream.imethod_11();
                    objectBitStream.imethod_11();
                }
            }
            else
            {
                num1 = objectBitStream.imethod_11();
                objectBitStream.imethod_11();
            }
            this.dxfClass_0 = or.Builder.Model.Classes.GetClassWithClassNumber((short)num1);
            Class1048 class1048 = (Class1048)objectBitStream;

            this.stream_0 = (Stream) new PagedMemoryStream(1024L, 1024);
            this.long_0   = (long)class1048.MainReader.imethod_21((PagedMemoryStream)this.stream_0);
            Class444.Create(or.Builder.Version, this.stream_0);
            if (class1048.StringReader != class1048.MainReader)
            {
                this.stream_1 = (Stream) new PagedMemoryStream(1024L, 1024);
                this.uint_0   = class1048.StringReader.imethod_21((PagedMemoryStream)this.stream_1);
            }
            else
            {
                this.method_13(or.Builder.Version);
            }
            while (class1048.HandleReader.Stream.Position < class1048.HandleReader.Stream.Length)
            {
                ReferenceType           referenceType;
                ulong                   handle = class1048.HandleReader.imethod_34(0UL, true, out referenceType);
                DxfTypedObjectReference typedObjectReference = new DxfTypedObjectReference(referenceType);
                this.list_0.Add(typedObjectReference);
                objectBuilder.ChildBuilders.Add((Interface10)typedObjectReference.method_0(handle));
            }
        }
Esempio n. 4
0
        public override void CopyFrom(DxfHandledObject from, CloneContext cloneContext)
        {
            base.CopyFrom(from, cloneContext);
            DxfProxyEntity dxfProxyEntity = (DxfProxyEntity)from;

            this.dxfClass_0 = dxfProxyEntity.dxfClass_0 != null?Class906.smethod_9(cloneContext, dxfProxyEntity.dxfClass_0) : (DxfClass)null;

            this.proxyGraphics_0 = dxfProxyEntity.proxyGraphics_0 != null ? (ProxyGraphics)dxfProxyEntity.proxyGraphics_0.Clone(cloneContext) : (ProxyGraphics)null;
            this.dwgVersion_0    = dxfProxyEntity.dwgVersion_0;
            this.short_1         = dxfProxyEntity.short_1;
            this.bool_2          = dxfProxyEntity.bool_2;
            this.long_0          = dxfProxyEntity.long_0;
            if (dxfProxyEntity.stream_0 == null)
            {
                this.stream_0 = (Stream)null;
            }
            else
            {
                long position = dxfProxyEntity.stream_0.Position;
                dxfProxyEntity.stream_0.Position = 0L;
                this.stream_0 = (Stream) new PagedMemoryStream(dxfProxyEntity.stream_0, (long)(int)dxfProxyEntity.stream_0.Length);
                dxfProxyEntity.stream_0.Position = position;
            }
            this.uint_0 = dxfProxyEntity.uint_0;
            if (dxfProxyEntity.stream_1 == null)
            {
                this.stream_1 = (Stream)null;
            }
            else
            {
                long position = dxfProxyEntity.stream_1.Position;
                dxfProxyEntity.stream_1.Position = 0L;
                this.stream_1 = (Stream) new PagedMemoryStream(dxfProxyEntity.stream_1, (long)(int)dxfProxyEntity.stream_1.Length);
                dxfProxyEntity.stream_1.Position = position;
            }
            this.list_0.Clear();
            foreach (DxfTypedObjectReference typedObjectReference in dxfProxyEntity.list_0)
            {
                if (typedObjectReference.ObjectReference.Value == null)
                {
                    this.list_0.Add(new DxfTypedObjectReference(typedObjectReference.ReferenceType, DxfObjectReference.Null));
                }
                else
                {
                    this.list_0.Add(new DxfTypedObjectReference(typedObjectReference.ReferenceType, cloneContext.CloneReference((DxfHandledObject)typedObjectReference.ObjectReference.Value).Reference));
                }
            }
        }
Esempio n. 5
0
        internal static DxfClass smethod_9(CloneContext cloneContext, DxfClass from)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            Class906.Class907 class907 = new Class906.Class907();
            // ISSUE: reference to a compiler-generated field
            class907.dxfClass_0 = from;
            // ISSUE: reference to a compiler-generated field
            if (class907.dxfClass_0 == null)
            {
                return((DxfClass)null);
            }
            // ISSUE: reference to a compiler-generated field
            if (class907.dxfClass_0.CPlusPlusClassName == null)
            {
                throw new Exception("Table record name is null.");
            }
            if (cloneContext.SourceModel == cloneContext.TargetModel)
            {
                // ISSUE: reference to a compiler-generated field
                return(class907.dxfClass_0);
            }
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated method
            DxfClass dxfClass = (DxfClass)cloneContext.GetExistingClone((IGraphCloneable)class907.dxfClass_0) ?? cloneContext.TargetModel.Classes.FirstOrDefault <DxfClass>(new Func <DxfClass, bool>(class907.method_0));

            if (dxfClass == null)
            {
                switch (cloneContext.ReferenceResolutionType)
                {
                case ReferenceResolutionType.CloneMissing:
                    // ISSUE: reference to a compiler-generated field
                    dxfClass = (DxfClass)class907.dxfClass_0.Clone(cloneContext);
                    if (!cloneContext.CloneExact)
                    {
                        cloneContext.TargetModel.Classes.Add(dxfClass);
                        break;
                    }
                    break;

                case ReferenceResolutionType.FailOnMissing:
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    throw new DxfException(string.Format("Could not resolve reference to CLASS with application/name {0}/{1}", (object)class907.dxfClass_0.ApplicationName, (object)class907.dxfClass_0.CPlusPlusClassName));
                }
            }
            return(dxfClass);
        }
Esempio n. 6
0
        public Class1030(DxfModel model)
        {
            DxfVersion acadVersion = model.Header.AcadVersion;

            if (acadVersion < DxfVersion.Dxf15)
            {
                this.short_4 = DxfHatch.smethod_2(model.Classes).ClassNumber;
                this.short_3 = DxfLwPolyline.smethod_2(model.Classes).ClassNumber;
                this.short_9 = DxfClass.smethod_19(model.Classes).ClassNumber;
            }
            if (acadVersion < DxfVersion.Dxf18)
            {
                this.short_8 = DxfClass.smethod_15(model.Classes).ClassNumber;
                this.short_7 = DxfClass.smethod_16(model.Classes).ClassNumber;
            }
            this.dxfClass_0  = DxfClass.smethod_0(model.Classes);
            this.dxfClass_1  = DxfDataTable.smethod_2(model.Classes);
            this.dxfClass_5  = DxfClass.smethod_1(model.Classes);
            this.short_0     = DxfClass.smethod_20(model.Classes).ClassNumber;
            this.short_1     = DxfClass.smethod_21(model.Classes).ClassNumber;
            this.dxfClass_6  = DxfClass.smethod_5(model.Classes);
            this.dxfClass_14 = DxfClass.smethod_2(model.Classes);
            this.dxfClass_10 = DxfClass.smethod_6(model.Classes);
            this.dxfClass_22 = DxfVisualStyle.smethod_2(model.Classes);
            this.dxfClass_23 = DxfWipeoutVariables.smethod_2(model.Classes);
            this.dxfClass_11 = DxfClass.smethod_7(model.Classes);
            this.short_6     = this.dxfClass_11.ClassNumber;
            this.short_2     = this.dxfClass_6.ClassNumber;
            this.dxfClass_7  = DxfMLeader.smethod_2(model.Classes);
            this.dxfClass_8  = DxfMLeaderStyle.smethod_3(model.Classes);
            this.dxfClass_9  = DxfMLeaderObjectContextData.smethod_16(model.Classes);
            this.short_5     = this.dxfClass_10.ClassNumber;
            this.dxfClass_12 = DxfClass.smethod_3(model.Classes);
            this.dxfClass_16 = DxfClass.smethod_10(model.Classes);
            this.dxfClass_17 = DxfClass.smethod_11(model.Classes);
            this.dxfClass_18 = DxfClass.smethod_14(model.Classes);
            this.dxfClass_15 = DxfClass.smethod_12(model.Classes);
            this.dxfClass_19 = DxfClass.smethod_17(model.Classes);
            this.dxfClass_20 = DxfClass.smethod_18(model.Classes);
            this.dxfClass_21 = DxfTableContent.smethod_2(model.Classes);
            this.dxfClass_2  = DxfField.smethod_2(model.Classes);
            this.dxfClass_3  = DxfFieldList.smethod_2(model.Classes);
            this.dxfClass_4  = DxfGeoData.smethod_2(model.Classes);
            this.dxfClass_13 = DxfPlotSettings.smethod_2(model.Classes);
            this.class1032_0 = new Class1030.Class1032(model);
            this.class1031_0 = new Class1030.Class1031(model);
        }
Esempio n. 7
0
        internal static DxfClass smethod_16(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "ACDB_MLEADEROBJECTCONTEXTDATA_CLASS");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ObjectDBX Classes";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1021;
                dxfClass.MaintenanceVersion = (short)0;
                dxfClass.ProxyFlags         = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog;
                dxfClass.CPlusPlusClassName = "AcDbMLeaderObjectContextData";
                dxfClass.DxfName            = "ACDB_MLEADEROBJECTCONTEXTDATA_CLASS";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 8
0
        internal static DxfClass smethod_2(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "ACAD_PROXY_ENTITY");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ObjectDBX Classes";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg0;
                dxfClass.MaintenanceVersion = (short)0;
                dxfClass.ProxyFlags         = ProxyFlags.None;
                dxfClass.CPlusPlusClassName = "AcDbProxyEntity";
                dxfClass.DxfName            = "ACAD_PROXY_ENTITY";
                dxfClass.ItemClassId        = (short)498;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 9
0
        internal static DxfClass smethod_3(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "MLEADERSTYLE");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ACDB_MLEADERSTYLE_CLASS";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1021;
                dxfClass.MaintenanceVersion = (short)25;
                dxfClass.ProxyFlags         = (ProxyFlags)4095;
                dxfClass.CPlusPlusClassName = "AcDbMLeaderStyle";
                dxfClass.DxfName            = "MLEADERSTYLE";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 10
0
        internal static DxfClass smethod_2(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "WIPEOUTVARIABLES");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ISM";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1015;
                dxfClass.MaintenanceVersion = (short)0;
                dxfClass.ProxyFlags         = ProxyFlags.R13FormatProxy;
                dxfClass.CPlusPlusClassName = "AcDbWipeoutVariables";
                dxfClass.DxfName            = "WIPEOUTVARIABLES";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 11
0
        internal static DxfClass smethod_2(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "PLOTSETTINGS");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ObjectDBX Classes";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1021;
                dxfClass.MaintenanceVersion = (short)45;
                dxfClass.ProxyFlags         = (ProxyFlags)4095;
                dxfClass.CPlusPlusClassName = "AcDbGeoData";
                dxfClass.DxfName            = "GEODATA";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 12
0
        internal static DxfClass smethod_2(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "FIELD");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ObjectDBX Classes";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1018;
                dxfClass.MaintenanceVersion = (short)0;
                dxfClass.ProxyFlags         = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog;
                dxfClass.CPlusPlusClassName = "AcDbField";
                dxfClass.DxfName            = "FIELD";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 13
0
 public Class1032(DxfModel model)
 {
     this.dxfClass_0  = DxfClass.smethod_61(model.Classes);
     this.dxfClass_1  = DxfClass.smethod_22(model.Classes);
     this.dxfClass_2  = DxfClass.smethod_50(model.Classes);
     this.dxfClass_3  = DxfClass.smethod_51(model.Classes);
     this.dxfClass_4  = DxfClass.smethod_52(model.Classes);
     this.dxfClass_5  = DxfClass.smethod_60(model.Classes);
     this.dxfClass_6  = DxfClass.smethod_36(model.Classes);
     this.dxfClass_7  = DxfClass.smethod_37(model.Classes);
     this.dxfClass_8  = DxfClass.smethod_47(model.Classes);
     this.dxfClass_9  = DxfClass.smethod_46(model.Classes);
     this.dxfClass_10 = DxfClass.smethod_48(model.Classes);
     this.dxfClass_11 = DxfClass.smethod_49(model.Classes);
     this.dxfClass_12 = DxfClass.smethod_45(model.Classes);
     this.dxfClass_13 = DxfClass.smethod_38(model.Classes);
     this.dxfClass_14 = DxfClass.smethod_40(model.Classes);
     this.dxfClass_15 = DxfClass.smethod_44(model.Classes);
     this.dxfClass_16 = DxfClass.smethod_39(model.Classes);
     this.dxfClass_17 = DxfClass.smethod_43(model.Classes);
     this.dxfClass_18 = DxfClass.smethod_41(model.Classes);
     this.dxfClass_19 = DxfClass.smethod_42(model.Classes);
     this.dxfClass_20 = DxfClass.smethod_23(model.Classes);
     this.dxfClass_21 = DxfClass.smethod_24(model.Classes);
     this.dxfClass_22 = DxfClass.smethod_25(model.Classes);
     this.dxfClass_23 = DxfClass.smethod_26(model.Classes);
     this.dxfClass_24 = DxfClass.smethod_27(model.Classes);
     this.dxfClass_25 = DxfClass.smethod_28(model.Classes);
     this.dxfClass_26 = DxfClass.smethod_29(model.Classes);
     this.dxfClass_27 = DxfClass.smethod_30(model.Classes);
     this.dxfClass_28 = DxfClass.smethod_31(model.Classes);
     this.dxfClass_29 = DxfClass.smethod_32(model.Classes);
     this.dxfClass_30 = DxfClass.smethod_33(model.Classes);
     this.dxfClass_31 = DxfClass.smethod_34(model.Classes);
     this.dxfClass_32 = DxfClass.smethod_35(model.Classes);
     this.dxfClass_33 = DxfClass.smethod_53(model.Classes);
     this.dxfClass_34 = DxfClass.smethod_54(model.Classes);
     this.dxfClass_35 = DxfClass.smethod_55(model.Classes);
     this.dxfClass_36 = DxfClass.smethod_56(model.Classes);
     this.dxfClass_37 = DxfClass.smethod_57(model.Classes);
     this.dxfClass_38 = DxfClass.smethod_58(model.Classes);
     this.dxfClass_39 = DxfClass.smethod_59(model.Classes);
 }
Esempio n. 14
0
        internal static DxfClass smethod_2(DxfClassCollection classes)
        {
            DxfClass dxfClass = DxfClass.GetClassWithDxfName(classes, "DATATABLE");

            if (dxfClass == null)
            {
                dxfClass = new DxfClass();
                dxfClass.ApplicationName    = "ObjectDBX Classes";
                dxfClass.ClassNumber        = (short)(500 + classes.Count);
                dxfClass.DwgVersion         = DwgVersion.Dwg1015;
                dxfClass.MaintenanceVersion = (short)20;
                dxfClass.ProxyFlags         = ProxyFlags.None;
                dxfClass.CPlusPlusClassName = "AcDbDataTable";
                dxfClass.DxfName            = "DATATABLE";
                dxfClass.ItemClassId        = (short)499;
                classes.Add(dxfClass);
            }
            return(dxfClass);
        }
Esempio n. 15
0
 public Class1031(DxfModel model)
 {
     this.dxfClass_0  = DxfClass.smethod_63(model.Classes);
     this.dxfClass_1  = DxfClass.smethod_64(model.Classes);
     this.dxfClass_2  = DxfClass.smethod_65(model.Classes);
     this.dxfClass_3  = DxfClass.smethod_66(model.Classes);
     this.dxfClass_4  = DxfClass.smethod_67(model.Classes);
     this.dxfClass_5  = DxfClass.smethod_68(model.Classes);
     this.dxfClass_6  = DxfClass.smethod_69(model.Classes);
     this.dxfClass_7  = DxfClass.smethod_70(model.Classes);
     this.dxfClass_8  = DxfClass.smethod_71(model.Classes);
     this.dxfClass_9  = DxfClass.smethod_72(model.Classes);
     this.dxfClass_10 = DxfClass.smethod_73(model.Classes);
     this.dxfClass_11 = DxfClass.smethod_74(model.Classes);
     this.dxfClass_12 = DxfClass.smethod_75(model.Classes);
     this.dxfClass_13 = DxfClass.smethod_76(model.Classes);
     this.dxfClass_14 = DxfClass.smethod_77(model.Classes);
     this.dxfClass_15 = DxfClass.smethod_78(model.Classes);
     this.dxfClass_16 = DxfClass.smethod_79(model.Classes);
 }
Esempio n. 16
0
        private bool method_17(
            DxfReader r,
            Class285 objectBuilder,
            ref long graphicsDataSizeInBytes,
            ref PagedMemoryStream graphicsData,
            ref Stream currentStream)
        {
            switch (r.CurrentGroup.Code)
            {
            case 1:
                string cPlusPlusClassName = (string)r.CurrentGroup.Value;
                this.dxfClass_0 = r.Model.Classes.GetClassWithCPlusPlusName(cPlusPlusClassName);
                break;

            case 70:
                this.bool_2 = (short)r.CurrentGroup.Value != (short)0;
                break;

            case 90:
                int num1 = (int)r.CurrentGroup.Value;
                break;

            case 91:
                int num2 = (int)r.CurrentGroup.Value;
                this.dxfClass_0 = r.Model.Classes.GetClassWithClassNumber((short)num2);
                break;

            case 92:
                graphicsDataSizeInBytes = (long)(int)r.CurrentGroup.Value;
                if (graphicsData == null)
                {
                    graphicsData = new PagedMemoryStream((long)(int)graphicsDataSizeInBytes, System.Math.Min((int)graphicsDataSizeInBytes, 65536));
                }
                else
                {
                    graphicsData.SetLength(graphicsDataSizeInBytes);
                }
                currentStream = (Stream)graphicsData;
                break;

            case 93:
                this.long_0 = (long)(int)r.CurrentGroup.Value;
                if (this.long_0 != 0L)
                {
                    int val1 = (int)this.long_0 + 7 >> 3;
                    if (this.stream_0 == null)
                    {
                        this.stream_0 = (Stream) new PagedMemoryStream((long)val1, System.Math.Min(val1, 65536));
                    }
                    else
                    {
                        this.stream_0.SetLength((long)val1);
                    }
                }
                currentStream = this.stream_0;
                break;

            case 94:
                int num3 = (int)r.CurrentGroup.Value;
                break;

            case 95:
                int num4 = (int)r.CurrentGroup.Value;
                this.dwgVersion_0 = (DwgVersion)(num4 & (int)ushort.MaxValue);
                this.short_1      = (short)(num4 >> 16);
                break;

            case 96:
                this.uint_0 = (uint)(int)r.CurrentGroup.Value;
                if (this.uint_0 != 0U)
                {
                    int val1 = (int)(this.uint_0 + 7U >> 3);
                    if (this.stream_1 == null)
                    {
                        this.stream_1 = (Stream) new PagedMemoryStream((long)val1, System.Math.Min(val1, 65536));
                    }
                    else
                    {
                        this.stream_1.SetLength((long)val1);
                    }
                }
                currentStream = this.stream_1;
                break;

            case 160:
                graphicsDataSizeInBytes = (long)r.CurrentGroup.Value;
                if (graphicsData == null)
                {
                    graphicsData = new PagedMemoryStream((long)(int)graphicsDataSizeInBytes, System.Math.Min((int)graphicsDataSizeInBytes, 65536));
                }
                else
                {
                    graphicsData.SetLength(graphicsDataSizeInBytes);
                }
                currentStream = (Stream)graphicsData;
                break;

            case 161:
                this.long_0 = (long)r.CurrentGroup.Value;
                if (this.long_0 != 0L)
                {
                    int val1 = (int)this.long_0 + 7 >> 3;
                    if (this.stream_0 == null)
                    {
                        this.stream_0 = (Stream) new PagedMemoryStream((long)val1, System.Math.Min(val1, 65536));
                    }
                    else
                    {
                        this.stream_0.SetLength((long)val1);
                    }
                }
                currentStream = this.stream_0;
                break;

            case 162:
                this.uint_0 = (uint)(long)r.CurrentGroup.Value;
                if (this.uint_0 != 0U)
                {
                    int val1 = (int)this.uint_0 + 7 >> 3;
                    if (this.stream_1 == null)
                    {
                        this.stream_1 = (Stream) new PagedMemoryStream((long)val1, System.Math.Min(val1, 65536));
                    }
                    else
                    {
                        this.stream_1.SetLength((long)val1);
                    }
                }
                currentStream = this.stream_1;
                break;

            case 310:
                if (currentStream == null)
                {
                    throw new Exception("No stream size specified.");
                }
                byte[] buffer1 = (byte[])r.CurrentGroup.Value;
                currentStream.Write(buffer1, 0, buffer1.Length);
                break;

            case 311:
                if (currentStream == null)
                {
                    throw new Exception("No stream size specified.");
                }
                if (currentStream != this.stream_1)
                {
                    throw new Exception("Wrong stream");
                }
                byte[] buffer2 = (byte[])r.CurrentGroup.Value;
                currentStream.Write(buffer2, 0, buffer2.Length);
                break;

            case 330:
                this.method_19(r, (Class259)objectBuilder, ReferenceType.SoftPointerReference);
                break;

            case 340:
                this.method_19(r, (Class259)objectBuilder, ReferenceType.HardPointerReference);
                break;

            case 350:
                this.method_19(r, (Class259)objectBuilder, ReferenceType.SoftOwnershipReference);
                break;

            case 360:
                this.method_19(r, (Class259)objectBuilder, ReferenceType.HardOwnershipReference);
                break;

            default:
                return(this.method_9(r, objectBuilder));
            }
            r.method_85();
            return(true);
        }