Ejemplo n.º 1
0
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.Width       = reader.ReadUInt16();
            this.Height      = reader.ReadUInt16();
            this.Depth       = reader.ReadUInt16();
            this.Stride      = reader.ReadUInt16();
            this.Format      = (TextureFormat)reader.ReadUInt32();
            this.Unknown_5Ch = reader.ReadByte();
            this.Levels      = reader.ReadByte();
            this.Unknown_5Eh = reader.ReadUInt16();
            this.Unknown_60h = reader.ReadUInt32();
            this.Unknown_64h = reader.ReadUInt32();
            this.Unknown_68h = reader.ReadUInt32();
            this.Unknown_6Ch = reader.ReadUInt32();
            this.DataPointer = reader.ReadUInt64();
            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();

            // read reference data
            this.Data = reader.ReadBlockAt <TextureData>(this.DataPointer, this.Format, this.Width, this.Height, this.Levels, this.Stride);
        }
Ejemplo n.º 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.ReadInt32();
            this.Unknown_14h           = reader.ReadInt16();
            this.HasUselessData        = reader.ReadByte();
            this.Unknown_17h           = reader.ReadByte();
            this.Unknown_18h           = reader.ReadInt32();
            this.RootBlockIndex        = reader.ReadInt32();
            this.StructureInfosPointer = reader.ReadInt64();
            this.EnumInfosPointer      = reader.ReadInt64();
            this.DataBlocksPointer     = reader.ReadInt64();
            this.NamePointer           = reader.ReadInt64();
            this.UselessPointer        = reader.ReadInt64();
            this.StructureInfosCount   = reader.ReadInt16();
            this.EnumInfosCount        = reader.ReadInt16();
            this.DataBlocksCount       = reader.ReadInt16();
            this.Unknown_4Eh           = reader.ReadInt16();
            this.Unknown_50h           = reader.ReadUInt32();
            this.Unknown_54h           = reader.ReadUInt32();
            this.Unknown_58h           = reader.ReadUInt32();
            this.Unknown_5Ch           = reader.ReadUInt32();
            this.Unknown_60h           = reader.ReadUInt32();
            this.Unknown_64h           = reader.ReadUInt32();
            this.Unknown_68h           = reader.ReadUInt32();
            this.Unknown_6Ch           = reader.ReadUInt32();

            // read reference data
            this.StructureInfos = reader.ReadBlockAt <ResourceSimpleArray <MetaStructureInfo> >(
                (ulong)this.StructureInfosPointer, // offset
                this.StructureInfosCount
                );

            this.EnumInfos = reader.ReadBlockAt <ResourceSimpleArray <MetaEnumInfo> >(
                (ulong)this.EnumInfosPointer, // offset
                this.EnumInfosCount
                );

            this.DataBlocks = reader.ReadBlockAt <ResourceSimpleArray <MetaDataBlock> >(
                (ulong)this.DataBlocksPointer, // offset
                this.DataBlocksCount
                );

            this.Name = reader.ReadStringAt( //BlockAt<string_r>(
                (ulong)this.NamePointer      // offset
                );

            if (!string.IsNullOrEmpty(Name))
            {
            }

            //Strings = MetaTypes.GetStrings(this);
        }
Ejemplo n.º 3
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.ReadUInt32();
     this.Unknown_4h         = reader.ReadUInt32();
     this.SystemPagesCount   = reader.ReadByte();
     this.GraphicsPagesCount = reader.ReadByte();
     this.Unknown_Ah         = reader.ReadUInt16();
     this.Unknown_Ch         = reader.ReadUInt32();
     this.Unknown_10h        = reader.ReadUInt32();
 }
Ejemplo n.º 4
0
 public override void Read(ResourceDataReader reader, params object[] parameters)
 {
     // read structure data
     this.Time            = reader.ReadUInt32();
     this.VelocityX       = reader.ReadInt16();
     this.VelocityY       = reader.ReadInt16();
     this.VelocityZ       = reader.ReadInt16();
     this.RightX          = (sbyte)reader.ReadByte();
     this.RightY          = (sbyte)reader.ReadByte();
     this.RightZ          = (sbyte)reader.ReadByte();
     this.ForwardX        = (sbyte)reader.ReadByte();
     this.ForwardY        = (sbyte)reader.ReadByte();
     this.ForwardZ        = (sbyte)reader.ReadByte();
     this.SteeringAngle   = (sbyte)reader.ReadByte();
     this.GasPedalPower   = (sbyte)reader.ReadByte();
     this.BrakePedalPower = (sbyte)reader.ReadByte();
     this.HandbrakeUsed   = reader.ReadByte();
     this.Position        = reader.ReadVector3();
 }
Ejemplo n.º 5
0
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.UsageData   = reader.ReadUInt32();
            this.Unknown_44h = reader.ReadUInt32();
            this.ExtraFlags  = reader.ReadUInt32();
            this.Unknown_4Ch = reader.ReadUInt32();
            this.Width       = reader.ReadUInt16();
            this.Height      = reader.ReadUInt16();
            this.Depth       = reader.ReadUInt16();
            this.Stride      = reader.ReadUInt16();
            this.Format      = (TextureFormat)reader.ReadUInt32();
            this.Unknown_5Ch = reader.ReadByte();
            this.Levels      = reader.ReadByte();
            this.Unknown_5Eh = reader.ReadUInt16();
            this.Unknown_60h = reader.ReadUInt32();
            this.Unknown_64h = reader.ReadUInt32();
            this.Unknown_68h = reader.ReadUInt32();
            this.Unknown_6Ch = reader.ReadUInt32();
            this.DataPointer = reader.ReadUInt64();
            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();

            // read reference data
            this.Data = reader.ReadBlockAt <TextureData>(this.DataPointer, this.Format, this.Width, this.Height, this.Levels, this.Stride);


            switch (Usage)
            {
            case TextureUsage.UNKNOWN:            // = 0,
            case TextureUsage.DEFAULT:            // = 1,
            case TextureUsage.TERRAIN:            // = 2,
            case TextureUsage.CLOUDDENSITY:       // = 3,
            case TextureUsage.CLOUDNORMAL:        // = 4,
            case TextureUsage.CABLE:              // = 5,
            case TextureUsage.FENCE:              // = 6,
            case TextureUsage.SCRIPT:             // = 8,
            case TextureUsage.WATERFLOW:          // = 9,
            case TextureUsage.WATERFOAM:          // = 10,
            case TextureUsage.WATERFOG:           // = 11,
            case TextureUsage.WATEROCEAN:         // = 12,
            case TextureUsage.FOAMOPACITY:        // = 14,
            case TextureUsage.DIFFUSEMIPSHARPEN:  // = 16,
            case TextureUsage.DIFFUSEDARK:        // = 18,
            case TextureUsage.DIFFUSEALPHAOPAQUE: // = 19,
            case TextureUsage.DIFFUSE:            // = 20,
            case TextureUsage.DETAIL:             // = 21,
            case TextureUsage.NORMAL:             // = 22,
            case TextureUsage.SPECULAR:           // = 23,
            case TextureUsage.EMISSIVE:           // = 24,
            case TextureUsage.TINTPALETTE:        // = 25,
            case TextureUsage.SKIPPROCESSING:     // = 26,
                break;

            case TextureUsage.ENVEFF:        // = 7, //unused by V
            case TextureUsage.WATER:         // = 13, //unused by V
            case TextureUsage.FOAM:          // = 15,  //unused by V
            case TextureUsage.DIFFUSEDETAIL: // = 17, //unused by V
            case TextureUsage.DONOTOPTIMIZE: // = 27, //unused by V
            case TextureUsage.TEST:          // = 28,  //unused by V
            case TextureUsage.COUNT:         // = 29, //unused by V
                break;

            default:
                break;
            }

            var uf = UsageFlags;

            if ((uf & TextureUsageFlags.EMBEDDEDSCRIPTRT) > 0) // .ydr embedded script_rt textures, only 3 uses
            {
            }
            if ((uf & TextureUsageFlags.UNK19) > 0)
            {
            }
            if ((uf & TextureUsageFlags.UNK20) > 0)
            {
            }
            if ((uf & TextureUsageFlags.UNK21) > 0)
            {
            }
            if ((uf & TextureUsageFlags.UNK24) == 0)//wtf isthis? only 0 on special resident(?) textures and some reused ones
            {
            }
        }