예제 #1
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.Unknown_0h      = reader.ReadVector4();
            this.Unknown_10h     = reader.ReadVector4();
            this.Unknown_20h     = reader.ReadUInt32();
            this.Unknown_24h     = reader.ReadUInt32();
            this.Unknown_28h     = reader.ReadUInt32();
            this.DataPointer     = reader.ReadUInt64();
            this.SubTree1Pointer = reader.ReadUInt64();
            this.SubTree2Pointer = reader.ReadUInt64();
            this.SubTree3Pointer = reader.ReadUInt64();
            this.SubTree4Pointer = reader.ReadUInt64();
            this.Unknown_54h     = reader.ReadUInt32();
            this.Unknown_58h     = reader.ReadUInt32();
            this.Unknown_5Ch     = reader.ReadUInt32();

            // read reference data
            this.Data = reader.ReadBlockAt <SectorData>(
                this.DataPointer // offset
                );
            this.SubTree1 = reader.ReadBlockAt <Sector>(
                this.SubTree1Pointer // offset
                );
            this.SubTree2 = reader.ReadBlockAt <Sector>(
                this.SubTree2Pointer // offset
                );
            this.SubTree3 = reader.ReadBlockAt <Sector>(
                this.SubTree3Pointer // offset
                );
            this.SubTree4 = reader.ReadBlockAt <Sector>(
                this.SubTree4Pointer // offset
                );
        }
예제 #2
0
 /// <summary>
 /// Reads the data-block from a stream.
 /// </summary>
 public override void Read(ResourceDataReader reader, params object[] parameters)
 {
     // read structure data
     Row1 = reader.ReadVector4();
     Row2 = reader.ReadVector4();
     Row3 = reader.ReadVector4();
 }
예제 #3
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.BoundingCenter        = reader.ReadVector3();
            this.BoundingSphereRadius  = reader.ReadSingle();
            this.BoundingBoxMin        = reader.ReadVector4();
            this.BoundingBoxMax        = reader.ReadVector4();
            this.LodHighPointer        = reader.ReadUInt64();
            this.LodMediumPointer      = reader.ReadUInt64();
            this.LodLowPointer         = reader.ReadUInt64();
            this.LodVeryLowPointer     = reader.ReadUInt64();
            this.LodDistanceHigh       = reader.ReadSingle();
            this.LodDistanceMedium     = reader.ReadSingle();
            this.LodDistanceLow        = reader.ReadSingle();
            this.LodDistanceVeryLow    = reader.ReadSingle();
            this.DrawBucketMaskHigh    = reader.ReadUInt32();
            this.DrawBucketMaskMedium  = reader.ReadUInt32();
            this.DrawBucketMaskLow     = reader.ReadUInt32();
            this.DrawBucketMaskVeryLow = reader.ReadUInt32();

            // read reference data
            this.LodHigh    = reader.ReadBlockAt <Lod>(this.LodHighPointer);
            this.LodMedium  = reader.ReadBlockAt <Lod>(this.LodMediumPointer);
            this.LodLow     = reader.ReadBlockAt <Lod>(this.LodLowPointer);
            this.LodVeryLow = reader.ReadBlockAt <Lod>(this.LodVeryLowPointer);
        }
예제 #4
0
 /// <summary>
 /// Reads the data-block from a stream.
 /// </summary>
 public override void Read(ResourceDataReader reader, params object[] parameters)
 {
     // read structure data
     this.Nodes             = reader.ReadBlock <SimpleList64_32 <BVHNode> >();
     this.Unknown_10h       = reader.ReadUInt32();
     this.Unknown_14h       = reader.ReadUInt32();
     this.Unknown_18h       = reader.ReadUInt32();
     this.Unknown_1Ch       = reader.ReadUInt32();
     this.BoundingBoxMin    = reader.ReadVector4();
     this.BoundingBoxMax    = reader.ReadVector4();
     this.BoundingBoxCenter = reader.ReadVector4();
     this.QuantumInverse    = reader.ReadVector4();
     this.Quantum           = reader.ReadVector4();
     this.Trees             = reader.ReadBlock <SimpleList64 <BVHTreeInfo> >();
 }
예제 #5
0
 /// <summary>
 /// Reads the data-block from a stream.
 /// </summary>
 public override void Read(ResourceDataReader reader, params object[] parameters)
 {
     // read structure data
     this.Unknown_0h        = reader.ReadVector4();
     this.Unknown_10h       = reader.ReadVector4();
     this.Unknown_20h       = reader.ReadVector4();
     this.Unknown_30h       = reader.ReadVector2();
     this.Unknown_38h       = reader.ReadVector2();
     this.VertexDeclaration = reader.ReadBlock <VertexDeclaration>();
     this.Unknown_50h       = reader.ReadSingle();
     this.Unknown_54h       = reader.ReadUInt16();
     this.Unknown_56h       = reader.ReadUInt16();
     this.Unknown_58h       = reader.ReadVector2();
     this.Unknown_60h       = reader.ReadVector4();
 }
예제 #6
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_10h   = reader.ReadUInt32();
            this.Unknown_14h   = reader.ReadUInt32();
            this.Unknown_18h   = reader.ReadSingle();
            this.Unknown_1Ch   = reader.ReadUInt32();
            this.NamePointer   = reader.ReadUInt64();
            this.Unknown_28h   = reader.ReadUInt64();
            this.VFTx2         = reader.ReadUInt64();
            this.EventEmitters = reader.ReadBlock <ResourcePointerList64 <EventEmitter> >();
            this.p4            = reader.ReadUInt64();
            this.Unknown_50h   = reader.ReadUInt32();
            this.Unknown_54h   = reader.ReadUInt32();
            this.Unknown_58h   = reader.ReadUInt32();
            this.Unknown_5Ch   = reader.ReadUInt32();
            this.Unknown_60h   = reader.ReadVector4();
            this.Unknown_70h   = reader.ReadVector4();
            this.Unknown_80h   = reader.ReadSingle();
            this.Unknown_84h   = reader.ReadSingle();
            this.Unknown_88h   = reader.ReadUInt32();
            this.Unknown_8Ch   = reader.ReadUInt32();
            this.Unknown_90h   = reader.ReadVector4();
            this.Unknown_A0h   = reader.ReadVector4();
            this.Unknown_B0h   = reader.ReadVector4();
            this.KeyframeProp0 = reader.ReadBlock <KeyframeProp>();
            this.KeyframeProp1 = reader.ReadBlock <KeyframeProp>();
            this.KeyframeProp2 = reader.ReadBlock <KeyframeProp>();
            this.KeyframeProp3 = reader.ReadBlock <KeyframeProp>();
            this.KeyframeProp4 = reader.ReadBlock <KeyframeProp>();
            this.KeyframeProps = reader.ReadBlock <ResourcePointerList64 <KeyframeProp> >();
            this.Unknown_3A0h  = reader.ReadUInt32();
            this.Unknown_3A4h  = reader.ReadUInt32();
            this.Unknown_3A8h  = reader.ReadSingle();
            this.Unknown_3ACh  = reader.ReadUInt32();
            this.Unknown_3B0h  = reader.ReadUInt64();
            this.Unknown_3B8h  = reader.ReadUInt64();

            // read reference data
            this.Name = reader.ReadBlockAt <string_r>(
                this.NamePointer // offset
                );
            this.p4data = reader.ReadBlockAt <EvolutionParameters>(
                this.p4 // offset
                );
        }
예제 #7
0
 /// <summary>
 /// Reads the data-block from a stream.
 /// </summary>
 public override void Read(ResourceDataReader reader, params object[] parameters)
 {
     // read structure data
     this.Weights     = reader.ReadVector4();
     this.BlendIndex0 = reader.ReadUInt32();
     this.BlendIndex1 = reader.ReadUInt32();
     this.BlendIndex2 = reader.ReadUInt32();
     this.BlendIndex4 = reader.ReadUInt32();
 }
예제 #8
0
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.ShaderGroupPointer           = reader.ReadUInt64();
            this.Unknown_18h                  = reader.ReadUInt64();
            this.BoundingCenter               = reader.ReadVector3();
            this.BoundingSphereRadius         = reader.ReadSingle();
            this.BoundingBoxMin               = reader.ReadVector4();
            this.BoundingBoxMax               = reader.ReadVector4();
            this.DrawableModelsHighPointer    = reader.ReadUInt64();
            this.DrawableModelsMediumPointer  = reader.ReadUInt64();
            this.DrawableModelsLowPointer     = reader.ReadUInt64();
            this.DrawableModelsVeryLowPointer = reader.ReadUInt64();
            this.LodDistanceHigh              = reader.ReadSingle();
            this.LodDistanceMedium            = reader.ReadSingle();
            this.LodDistanceLow               = reader.ReadSingle();
            this.LodDistanceVeryLow           = reader.ReadSingle();
            this.DrawBucketMaskHigh           = reader.ReadUInt32();
            this.DrawBucketMaskMedium         = reader.ReadUInt32();
            this.DrawBucketMaskLow            = reader.ReadUInt32();
            this.DrawBucketMaskVeryLow        = reader.ReadUInt32();
            this.Unknown_40h                  = reader.ReadUInt64();
            this.Unknown_48h                  = reader.ReadUInt64();
            this.Unknown_50h                  = reader.ReadUInt64();
            this.NamePointer                  = reader.ReadUInt64();
            this.Unknown_60h                  = reader.ReadUInt64();
            this.BoundPointer                 = reader.ReadUInt64();
            this.Unknown_70h_Pointer          = reader.ReadUInt64();
            this.Unknown_78h                  = reader.ReadUInt64();

            // read reference data
            this.ShaderGroup           = reader.ReadBlockAt <ShaderGroup>(this.ShaderGroupPointer);
            this.DrawableModelsHigh    = reader.ReadBlockAt <ResourcePointerList64 <DrawableModel> >(this.DrawableModelsHighPointer);
            this.DrawableModelsMedium  = reader.ReadBlockAt <ResourcePointerList64 <DrawableModel> >(this.DrawableModelsMediumPointer);
            this.DrawableModelsLow     = reader.ReadBlockAt <ResourcePointerList64 <DrawableModel> >(this.DrawableModelsLowPointer);
            this.DrawableModelsVeryLow = reader.ReadBlockAt <ResourcePointerList64 <DrawableModel> >(this.DrawableModelsVeryLowPointer);
            this.Name  = reader.ReadBlockAt <string_r>(NamePointer);
            this.Bound = reader.ReadBlockAt <Bound>(BoundPointer);
        }
예제 #9
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_18h = reader.ReadUInt32();
            this.Unknown_1Ch = reader.ReadUInt32();
            this.Unknown_20h = reader.ReadUInt32();
            this.Unknown_24h = reader.ReadUInt32();
            this.Unknown_28h = reader.ReadUInt32();
            this.Unknown_2Ch = reader.ReadUInt32();
            this.Unknown_30h = reader.ReadVector4();
        }
예제 #10
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_20h = reader.ReadVector4();
            this.Unknown_30h = reader.ReadVector4();
            this.Unknown_40h = reader.ReadVector4();
            this.Unknown_50h = reader.ReadVector4();
            this.Unknown_60h = reader.ReadVector4();
            this.Unknown_70h = reader.ReadVector4();
            this.Unknown_80h = reader.ReadVector4();
            this.Unknown_90h = reader.ReadVector4();
            this.Unknown_A0h = reader.ReadVector2();
            this.Unknown_A8h = reader.ReadVector2();
        }
예제 #11
0
        public byte Unknown_3Eh; // 0x00000000

        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.RotationRate      = reader.ReadSingle();
            this.AngleThreshold    = reader.ReadSingle();
            this.Unknown_18h       = reader.ReadUInt64();
            this.ExtraForce        = reader.ReadVector4();
            this.Flags             = (ClothTuneFlags)reader.ReadUInt32();
            this.Weight            = reader.ReadSingle();
            this.DistanceThreshold = reader.ReadSingle();
            this.PinVert           = reader.ReadByte();
            this.NonPinVert0       = reader.ReadByte();
            this.NonPinVert1       = reader.ReadByte();
            this.Unknown_3Eh       = reader.ReadByte();
        }
예제 #12
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.Unknown_0h = reader.ReadVector4();
            this.NamePointer = reader.ReadUInt64();
            this.DrawablePointer = reader.ReadUInt64();
            this.NameHash = reader.ReadUInt32();
            this.Unknown_24h = reader.ReadUInt32();
            this.Unknown_28h = reader.ReadUInt64();

            // read reference data
            this.Name = reader.ReadBlockAt<string_r>(
                this.NamePointer // offset
            );
            this.Drawable = reader.ReadBlockAt<Drawable>(
                this.DrawablePointer // offset
            );
        }
예제 #13
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_10h   = reader.ReadUInt32();
            this.Unknown_14h   = reader.ReadUInt32();
            this.NamePointer   = reader.ReadUInt64();
            this.BoundPointer  = reader.ReadUInt64();
            this.TypeFlags     = reader.ReadUInt32();
            this.IncludeFlags  = reader.ReadUInt32();
            this.PropertyFlags = reader.ReadUInt32();
            this.Unknown_34h   = reader.ReadUInt32();
            this.Unknown_38h   = reader.ReadUInt32();
            this.Unknown_3Ch   = reader.ReadUInt32();
            this.Mass          = reader.ReadSingle();
            this.InvMass       = reader.ReadSingle();
            this.Unknown_48h   = reader.ReadSingle();
            this.MaxSpeed      = reader.ReadSingle();
            this.MaxAngSpeed   = reader.ReadSingle();
            this.Unknown_54h   = reader.ReadSingle();
            this.Unknown_58h   = reader.ReadUInt32();
            this.Unknown_5Ch   = reader.ReadUInt32();
            this.AngInertia    = reader.ReadVector4();
            this.InvAngInertia = reader.ReadVector4();
            this.Unknown_80h   = reader.ReadVector4();
            this.Unknown_90h   = reader.ReadVector4();
            this.Unknown_A0h   = reader.ReadVector4();
            this.Unknown_B0h   = reader.ReadVector4();
            this.Unknown_C0h   = reader.ReadVector4();
            this.Unknown_D0h   = reader.ReadVector4();

            // read reference data
            this.Name = reader.ReadBlockAt <string_r>(
                this.NamePointer // offset
                );
            this.Bound = reader.ReadBlockAt <Bound>(
                this.BoundPointer // offset
                );
        }
예제 #14
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Type                 = reader.ReadByte();
            this.Unknown_11h          = reader.ReadByte();
            this.Unknown_12h          = reader.ReadUInt16();
            this.RadiusAroundCentroid = reader.ReadSingle();
            this.Unknown_18h          = reader.ReadUInt32();
            this.Unknown_1Ch          = reader.ReadUInt32();
            this.BoundingBoxMax       = reader.ReadVector3();
            this.Margin               = reader.ReadSingle();
            this.BoundingBoxMin       = reader.ReadVector3();
            this.RefCount             = reader.ReadUInt32();
            this.CentroidOffset       = reader.ReadVector3();
            this.MaterialId0          = reader.ReadUInt32();
            this.CGOffset             = reader.ReadVector3();
            this.MaterialId1          = reader.ReadUInt32();
            this.VolumeDistribution   = reader.ReadVector4();
        }
예제 #15
0
        public ulong Unknown_68h; // 0x0000000000000000

        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_10h = reader.ReadUInt64();
            this.Unknown_18h = reader.ReadUInt64();
            this.Unknown_20h = reader.ReadUInt64();
            this.Unknown_28h = reader.ReadUInt64();
            this.Unknown_30h = reader.ReadVector4();
            this.Unknown_40h = reader.ReadUInt32();
            this.Unknown_44h = reader.ReadSingle();
            this.Unknown_48h = reader.ReadSingle();
            this.Unknown_4Ch = reader.ReadSingle();
            this.Unknown_50h = reader.ReadUInt32();
            this.Unknown_54h = reader.ReadSingle();
            this.Unknown_58h = reader.ReadSingle();
            this.Unknown_5Ch = reader.ReadUInt32();
            this.Unknown_60h = reader.ReadUInt32();
            this.Unknown_64h = reader.ReadUInt32();
            this.Unknown_68h = reader.ReadUInt64();
        }
예제 #16
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_10h = reader.ReadUInt32();
            this.Unknown_14h = reader.ReadUInt32();
            this.Unknown_18h = reader.ReadUInt32();
            this.Unknown_1Ch = reader.ReadUInt32();
            this.ArticulatedBodyTypePointer = reader.ReadUInt64();
            this.Unknown_28h_Pointer        = reader.ReadUInt64();
            this.Unknown_30h          = reader.ReadVector4();
            this.Unknown_40h          = reader.ReadVector4();
            this.Unknown_50h          = reader.ReadVector4();
            this.DampingLinearC       = reader.ReadVector4();
            this.DampingLinearV       = reader.ReadVector4();
            this.DampingLinearV2      = reader.ReadVector4();
            this.DampingAngularC      = reader.ReadVector4();
            this.DampingAngularV      = reader.ReadVector4();
            this.DampingAngularV2     = reader.ReadVector4();
            this.GroupNamesPointer    = reader.ReadUInt64();
            this.GroupsPointer        = reader.ReadUInt64();
            this.ChildrenPointer      = reader.ReadUInt64();
            this.Archetype1Pointer    = reader.ReadUInt64();
            this.Archetype2Pointer    = reader.ReadUInt64();
            this.BoundPointer         = reader.ReadUInt64();
            this.Unknown_F0h_Pointer  = reader.ReadUInt64();
            this.Unknown_F8h_Pointer  = reader.ReadUInt64();
            this.Unknown_100h_Pointer = reader.ReadUInt64();
            this.Unknown_108h_Pointer = reader.ReadUInt64();
            this.Unknown_110h_Pointer = reader.ReadUInt64();
            this.Count1        = reader.ReadByte();
            this.Count2        = reader.ReadByte();
            this.GroupsCount   = reader.ReadByte();
            this.Unknown_11Bh  = reader.ReadByte();
            this.Unknown_11Ch  = reader.ReadByte();
            this.ChildrenCount = reader.ReadByte();
            this.Count3        = reader.ReadByte();
            this.Unknown_11Fh  = reader.ReadByte();
            this.Unknown_120h  = reader.ReadUInt64();
            this.Unknown_128h  = reader.ReadUInt64();

            // read reference data
            this.ArticulatedBodyType = reader.ReadBlockAt <ArticulatedBodyType>(
                this.ArticulatedBodyTypePointer // offset
                );
            this.Unknown_28h_Data = reader.ReadBlockAt <SimpleArray <uint> >(
                this.Unknown_28h_Pointer, // offset
                this.ChildrenCount
                );
            this.GroupNames = reader.ReadBlockAt <FragTypeGroupNames>(
                this.GroupNamesPointer, // offset
                this.GroupsCount
                );
            this.Groups = reader.ReadBlockAt <ResourcePointerArray64 <FragTypeGroup> >(
                this.GroupsPointer, // offset
                this.GroupsCount
                );
            this.Children = reader.ReadBlockAt <ResourcePointerArray64 <FragTypeChild> >(
                this.ChildrenPointer, // offset
                this.ChildrenCount
                );
            this.Archetype1 = reader.ReadBlockAt <Archetype>(
                this.Archetype1Pointer // offset
                );
            this.Archetype2 = reader.ReadBlockAt <Archetype>(
                this.Archetype2Pointer // offset
                );
            this.Bound = reader.ReadBlockAt <Bound>(
                this.BoundPointer // offset
                );
            this.Unknown_F0h_Data = reader.ReadBlockAt <SimpleArray <Vector4> >(
                this.Unknown_F0h_Pointer, // offset
                this.ChildrenCount
                );
            this.Unknown_F8h_Data = reader.ReadBlockAt <SimpleArray <Vector4> >(
                this.Unknown_F8h_Pointer, // offset
                this.ChildrenCount
                );
            this.Unknown_100h_Data = reader.ReadBlockAt <Unknown_F_001>(
                this.Unknown_100h_Pointer // offset
                );
            this.Unknown_108h_Data = reader.ReadBlockAt <SimpleArray <byte> >(
                this.Unknown_108h_Pointer, // offset
                this.Count1
                );
            this.Unknown_110h_Data = reader.ReadBlockAt <SimpleArray <byte> >(
                this.Unknown_110h_Pointer, // offset
                this.Count2
                );
        }
예제 #17
0
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Unknown_10h       = reader.ReadUInt32();
            this.Unknown_14h       = reader.ReadUInt32();
            this.Unknown_18h       = reader.ReadUInt32();
            this.Unknown_1Ch       = reader.ReadUInt32();
            this.Unknown_20h       = reader.ReadMatrix4x4();
            this.Unknown_60h       = reader.ReadVector4();
            this.VerticesPointer   = reader.ReadUInt64();
            this.Unknown_78h       = reader.ReadUInt32();
            this.Unknown_7Ch       = reader.ReadUInt32();
            this.IndicesPointer    = reader.ReadUInt64();
            this.AdjPolysPointer   = reader.ReadUInt64();
            this.Unknown_90h       = reader.ReadUInt32();
            this.Unknown_94h       = reader.ReadUInt32();
            this.Unknown_98h       = reader.ReadUInt32();
            this.Unknown_9Ch       = reader.ReadUInt32();
            this.Unknown_A0h       = reader.ReadUInt32();
            this.Unknown_A4h       = reader.ReadUInt32();
            this.Unknown_A8h       = reader.ReadUInt32();
            this.Unknown_ACh       = reader.ReadUInt32();
            this.Unknown_B0h       = reader.ReadUInt32();
            this.Unknown_B4h       = reader.ReadUInt32();
            this.Unknown_B8h       = reader.ReadUInt32();
            this.Unknown_BCh       = reader.ReadUInt32();
            this.Unknown_C0h       = reader.ReadUInt32();
            this.Unknown_C4h       = reader.ReadUInt32();
            this.Unknown_C8h       = reader.ReadUInt32();
            this.Unknown_CCh       = reader.ReadUInt32();
            this.Unknown_D0h       = reader.ReadUInt32();
            this.Unknown_D4h       = reader.ReadUInt32();
            this.Unknown_D8h       = reader.ReadUInt32();
            this.Unknown_DCh       = reader.ReadUInt32();
            this.Unknown_E0h       = reader.ReadUInt32();
            this.Unknown_E4h       = reader.ReadUInt32();
            this.Unknown_E8h       = reader.ReadUInt32();
            this.Unknown_ECh       = reader.ReadUInt32();
            this.Unknown_F0h       = reader.ReadUInt32();
            this.Unknown_F4h       = reader.ReadUInt32();
            this.Unknown_F8h       = reader.ReadUInt32();
            this.Unknown_FCh       = reader.ReadUInt32();
            this.Unknown_100h      = reader.ReadUInt32();
            this.Unknown_104h      = reader.ReadUInt32();
            this.Unknown_108h      = reader.ReadUInt32();
            this.Unknown_10Ch      = reader.ReadUInt32();
            this.Unknown_110h      = reader.ReadUInt32();
            this.Unknown_114h      = reader.ReadUInt32();
            this.PolysPointer      = reader.ReadUInt64();
            this.SectorTreePointer = reader.ReadUInt64();
            this.PortalsPointer    = reader.ReadUInt64();
            this.p8           = reader.ReadUInt64();
            this.Unknown_138h = reader.ReadUInt32();
            this.Unknown_13Ch = reader.ReadUInt32();
            this.Unknown_140h = reader.ReadUInt32();
            this.Unknown_144h = reader.ReadUInt32();
            this.Unknown_148h = reader.ReadUInt32();
            this.PortalsCount = reader.ReadUInt32();
            this.c1           = reader.ReadUInt32();
            this.Unknown_154h = reader.ReadUInt32();
            this.Unknown_158h = reader.ReadUInt32();
            this.Unknown_15Ch = reader.ReadUInt32();
            this.Unknown_160h = reader.ReadUInt32();
            this.Unknown_164h = reader.ReadUInt32();
            this.Unknown_168h = reader.ReadUInt32();
            this.Unknown_16Ch = reader.ReadUInt32();

            // read reference data
            this.Vertices = reader.ReadBlockAt <SimpleSplitArray <CompressedVertex> >(
                this.VerticesPointer // offset
                );
            this.Indices = reader.ReadBlockAt <SimpleSplitArray <ushort> >(
                this.IndicesPointer // offset
                );
            this.AdjPolys = reader.ReadBlockAt <SimpleSplitArray <AdjPoly> >(
                this.AdjPolysPointer // offset
                );
            this.Polys = reader.ReadBlockAt <SimpleSplitArray <Poly> >(
                this.PolysPointer // offset
                );
            this.SectorTree = reader.ReadBlockAt <Sector>(
                this.SectorTreePointer // offset
                );
            this.Portals = reader.ReadBlockAt <SimpleArray <Portal> >(
                this.PortalsPointer, // offset
                this.PortalsCount
                );
            this.p8data = reader.ReadBlockAt <SimpleArray <ushort> >(
                this.p8, // offset
                this.c1
                );
        }