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); }
/// <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); }
/// <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(); }
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(); }
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 { } }