/// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.VFT                  = reader.ReadUInt32();
            this.Unknown_4h           = reader.ReadUInt32();
            this.Unknown_8h           = reader.ReadUInt32();
            this.Unknown_Ch           = reader.ReadUInt32();
            this.Unknown_10h          = reader.ReadUInt32();
            this.Unknown_14h          = reader.ReadUInt32();
            this.Unknown_18h          = reader.ReadUInt32();
            this.Unknown_1Ch          = reader.ReadUInt32();
            this.Unknown_20h_Pointer  = reader.ReadUInt64();
            this.Unknown_28h_Pointer  = reader.ReadUInt64();
            this.Unknown_30h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_40h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_50h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_60h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_70h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_80h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_90h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_A0h          = reader.ReadBlock <RAGE_Vector4>();
            this.Unknown_B0h          = reader.ReadBlock <RAGE_Vector4>();
            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.ReadUInt32();
            this.Unknown_124h         = reader.ReadUInt32();
            this.Unknown_128h         = reader.ReadUInt32();
            this.Unknown_12Ch         = reader.ReadUInt32();

            // read reference data
            this.Unknown_20h_Data = reader.ReadBlockAt <Unknown_F_030>(
                this.Unknown_20h_Pointer // offset
                );
            this.Unknown_28h_Data = reader.ReadBlockAt <ResourceSimpleArray <uint_r> >(
                this.Unknown_28h_Pointer, // offset
                this.ChildrenCount
                );
            this.GroupNames = reader.ReadBlockAt <ResourcePointerArray64 <fragNameStruct_GTA5_pc> >(
                this.GroupNamesPointer, // offset
                this.GroupsCount
                );
            this.Groups = reader.ReadBlockAt <ResourcePointerArray64 <FragTypeGroup_GTA5_pc> >(
                this.GroupsPointer, // offset
                this.GroupsCount
                );
            this.Children = reader.ReadBlockAt <ResourcePointerArray64 <FragTypeChild_GTA5_pc> >(
                this.ChildrenPointer, // offset
                this.ChildrenCount
                );
            this.Archetype1 = reader.ReadBlockAt <Archetype_GTA5_pc>(
                this.Archetype1Pointer // offset
                );
            this.Archetype2 = reader.ReadBlockAt <Archetype_GTA5_pc>(
                this.Archetype2Pointer // offset
                );
            this.Bound = reader.ReadBlockAt <Bound_GTA5_pc>(
                this.BoundPointer // offset
                );
            this.Unknown_F0h_Data = reader.ReadBlockAt <ResourceSimpleArray <RAGE_Vector4> >(
                this.Unknown_F0h_Pointer, // offset
                this.ChildrenCount
                );
            this.Unknown_F8h_Data = reader.ReadBlockAt <ResourceSimpleArray <RAGE_Vector4> >(
                this.Unknown_F8h_Pointer, // offset
                this.ChildrenCount
                );
            this.Unknown_100h_Data = reader.ReadBlockAt <Unknown_F_002>(
                this.Unknown_100h_Pointer // offset
                );
            this.Unknown_108h_Data = reader.ReadBlockAt <ResourceSimpleArray <byte_r> >(
                this.Unknown_108h_Pointer, // offset
                this.Count1
                );
            this.Unknown_110h_Data = reader.ReadBlockAt <ResourceSimpleArray <byte_r> >(
                this.Unknown_110h_Pointer, // offset
                this.Count2
                );
        }
Example #2
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.ReadUInt32();
            this.Unknown_24h         = reader.ReadUInt32();
            this.Unknown_28h         = reader.ReadUInt32();
            this.Unknown_2Ch         = reader.ReadUInt32();
            this.DrawablePointer     = reader.ReadUInt64();
            this.Unknown_28h_Pointer = reader.ReadUInt64();
            this.Unknown_30h_Pointer = reader.ReadUInt64();
            this.Count0                 = reader.ReadUInt32();
            this.Unknown_4Ch            = reader.ReadUInt32();
            this.Unknown_50h            = reader.ReadUInt32();
            this.Unknown_54h            = reader.ReadUInt32();
            this.NamePointer            = reader.ReadUInt64();
            this.Clothes                = reader.ReadBlock <ResourcePointerList64 <EnvironmentCloth> >();
            this.Unknown_70h            = reader.ReadUInt32();
            this.Unknown_74h            = reader.ReadUInt32();
            this.Unknown_78h            = reader.ReadUInt32();
            this.Unknown_7Ch            = reader.ReadUInt32();
            this.Unknown_80h            = reader.ReadUInt32();
            this.Unknown_84h            = reader.ReadUInt32();
            this.Unknown_88h            = reader.ReadUInt32();
            this.Unknown_8Ch            = reader.ReadUInt32();
            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_Pointer    = reader.ReadUInt64();
            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.ReadByte();
            this.Count3                 = reader.ReadByte();
            this.Unknown_DAh            = reader.ReadUInt16();
            this.Unknown_DCh            = reader.ReadUInt32();
            this.Unknown_E0h_Pointer    = reader.ReadUInt64();
            this.Unknown_E8h            = reader.ReadUInt32();
            this.Unknown_ECh            = reader.ReadUInt32();
            this.PhysicsLODGroupPointer = reader.ReadUInt64();
            this.Unknown_F8h_Pointer    = reader.ReadUInt64();
            this.Unknown_100h           = reader.ReadUInt32();
            this.Unknown_104h           = reader.ReadUInt32();
            this.Unknown_108h           = reader.ReadUInt32();
            this.Unknown_10Ch           = reader.ReadUInt32();
            this.LightAttributes        = reader.ReadBlock <ResourceSimpleList64 <LightAttributes> >();
            this.Unknown_120h_Pointer   = reader.ReadUInt64();
            this.Unknown_128h           = reader.ReadUInt32();
            this.Unknown_12Ch           = reader.ReadUInt32();

            // read reference data
            this.Drawable = reader.ReadBlockAt <FragDrawable>(
                this.DrawablePointer // offset
                );
            this.Unknown_28h_Data = reader.ReadBlockAt <ResourcePointerArray64 <FragDrawable> >(
                this.Unknown_28h_Pointer, // offset
                this.Count0
                );
            this.Unknown_30h_Data = reader.ReadBlockAt <ResourcePointerArray64 <string_r> >(
                this.Unknown_30h_Pointer, // offset
                this.Count0
                );
            this.Name = reader.ReadBlockAt <string_r>(
                this.NamePointer // offset
                );
            this.Unknown_A8h_Data = reader.ReadBlockAt <Unknown_F_003>(
                this.Unknown_A8h_Pointer // offset
                );
            this.Unknown_E0h_Data = reader.ReadBlockAt <ResourcePointerArray64 <Unknown_F_004> >(
                this.Unknown_E0h_Pointer, // offset
                this.Count3
                );
            this.PhysicsLODGroup = reader.ReadBlockAt <FragPhysicsLODGroup>(
                this.PhysicsLODGroupPointer // offset
                );
            this.Unknown_F8h_Data = reader.ReadBlockAt <FragDrawable>(
                this.Unknown_F8h_Pointer // offset
                );
            this.Unknown_120h_Data = reader.ReadBlockAt <Unknown_F_002>(
                this.Unknown_120h_Pointer // offset
                );
        }
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.VFT = reader.ReadUInt32();
            this.Unknown_4h = reader.ReadUInt32();
            this.Unknown_8h = reader.ReadUInt32();
            this.Unknown_Ch = reader.ReadUInt32();
            this.Unknown_10h = reader.ReadUInt32();
            this.Unknown_14h = reader.ReadUInt32();
            this.Unknown_18h = reader.ReadUInt32();
            this.Unknown_1Ch = reader.ReadUInt32();
            this.Unknown_20h_Pointer = reader.ReadUInt64();
            this.Unknown_28h_Pointer = reader.ReadUInt64();
            this.Unknown_30h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_40h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_50h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_60h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_70h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_80h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_90h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_A0h = reader.ReadBlock<RAGE_Vector4>();
            this.Unknown_B0h = reader.ReadBlock<RAGE_Vector4>();
            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.ReadUInt32();
            this.Unknown_124h = reader.ReadUInt32();
            this.Unknown_128h = reader.ReadUInt32();
            this.Unknown_12Ch = reader.ReadUInt32();

            // read reference data
            this.Unknown_20h_Data = reader.ReadBlockAt<Unknown_F_030>(
                this.Unknown_20h_Pointer // offset
            );
            this.Unknown_28h_Data = reader.ReadBlockAt<ResourceSimpleArray<uint_r>>(
                this.Unknown_28h_Pointer, // offset
                this.ChildrenCount
            );
            this.GroupNames = reader.ReadBlockAt<ResourcePointerArray64<fragNameStruct_GTA5_pc>>(
                this.GroupNamesPointer, // offset
                this.GroupsCount
            );
            this.Groups = reader.ReadBlockAt<ResourcePointerArray64<FragTypeGroup_GTA5_pc>>(
                this.GroupsPointer, // offset
                this.GroupsCount
            );
            this.Children = reader.ReadBlockAt<ResourcePointerArray64<FragTypeChild_GTA5_pc>>(
                this.ChildrenPointer, // offset
                this.ChildrenCount
            );
            this.Archetype1 = reader.ReadBlockAt<Archetype_GTA5_pc>(
                this.Archetype1Pointer // offset
            );
            this.Archetype2 = reader.ReadBlockAt<Archetype_GTA5_pc>(
                this.Archetype2Pointer // offset
            );
            this.Bound = reader.ReadBlockAt<Bound_GTA5_pc>(
                this.BoundPointer // offset
            );
            this.Unknown_F0h_Data = reader.ReadBlockAt<ResourceSimpleArray<RAGE_Vector4>>(
                this.Unknown_F0h_Pointer, // offset
                this.ChildrenCount
            );
            this.Unknown_F8h_Data = reader.ReadBlockAt<ResourceSimpleArray<RAGE_Vector4>>(
                this.Unknown_F8h_Pointer, // offset
                this.ChildrenCount
            );
            this.Unknown_100h_Data = reader.ReadBlockAt<Unknown_F_002>(
                this.Unknown_100h_Pointer // offset
            );
            this.Unknown_108h_Data = reader.ReadBlockAt<ResourceSimpleArray<byte_r>>(
                this.Unknown_108h_Pointer, // offset
                this.Count1
            );
            this.Unknown_110h_Data = reader.ReadBlockAt<ResourceSimpleArray<byte_r>>(
                this.Unknown_110h_Pointer, // offset
                this.Count2
            );
        }