public override void Read(ResourceDataReader reader, params object[] parameters) { UnkOffset = reader.ReadUInt32(); Unused_04h = reader.ReadUInt32(); PolyIDsPointer = reader.ReadUInt64(); UnkDataPointer = reader.ReadUInt64(); PolyIDsCount = reader.ReadUInt16(); UnkDataCount = reader.ReadUInt16(); Unused_1Ch = reader.ReadUInt32(); PolyIDs = reader.ReadUshortsAt(PolyIDsPointer, PolyIDsCount); UnkData = reader.ReadStructsAt <NavMeshSectorDataUnk>(UnkDataPointer, UnkDataCount); }
public override void Read(ResourceDataReader reader, params object[] parameters) { PointsStartID = reader.ReadUInt32(); Unused_04h = reader.ReadUInt32(); PolyIDsPointer = reader.ReadUInt64(); PointsPointer = reader.ReadUInt64(); PolyIDsCount = reader.ReadUInt16(); PointsCount = reader.ReadUInt16(); Unused_1Ch = reader.ReadUInt32(); PolyIDs = reader.ReadUshortsAt(PolyIDsPointer, PolyIDsCount); Points = reader.ReadStructsAt <NavMeshPoint>(PointsPointer, PointsCount); }
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 = reader.ReadUInt32(); this.Unknown_24h = reader.ReadUInt32(); this.NamePointer = reader.ReadUInt64(); this.Unknown_30h = reader.ReadUInt16(); this.Unknown_32h = reader.ReadUInt16(); this.Unknown_34h = reader.ReadUInt32(); this.Unknown_38h = reader.ReadUInt32(); this.Unknown_3Ch = reader.ReadUInt32(); // read reference data this.Name = reader.ReadStringAt( //BlockAt<string_r>( this.NamePointer // offset ); if (!string.IsNullOrEmpty(Name)) { NameHash = JenkHash.GenHash(Name.ToLowerInvariant()); } switch (Unknown_32h) { case 0x20: case 0x28: case 0x30: case 0x38: case 0x40: case 0x48: case 0x80: case 0x90: case 0x2: //embedded break; default: break; } }
public override void Read(ResourceDataReader reader, params object[] parameters) { this.EntriesPointer = reader.ReadUInt64(); this.EntriesCount = reader.ReadUInt16(); this.EntriesCapacity = reader.ReadUInt16(); reader.Position += 4; //this.Entries = reader.ReadBlockAt<ResourcePointerArray64<T>>( // this.EntriesPointer, // offset // this.EntriesCount //); data_pointers = reader.ReadUlongsAt(EntriesPointer, EntriesCount); data_items = new T[EntriesCount]; for (int i = 0; i < EntriesCount; i++) { data_items[i] = reader.ReadBlockAt <T>(data_pointers[i]); } }
/// <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(); }
/// <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_40h = reader.ReadUInt32(); this.Unknown_44h = reader.ReadUInt32(); this.Unknown_48h = reader.ReadUInt32(); this.Unknown_4Ch = reader.ReadUInt32(); this.Width = reader.ReadUInt16(); this.Height = reader.ReadUInt16(); this.Unknown_54h = 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, // offset this.Format, this.Width, this.Height, this.Levels, this.Stride ); }
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 = reader.ReadUInt32(); this.Unknown_24h = reader.ReadUInt32(); this.NamePointer = reader.ReadUInt64(); this.Unknown_30h = reader.ReadUInt16(); this.Unknown_32h = reader.ReadUInt16(); this.Unknown_34h = reader.ReadUInt32(); this.Unknown_38h = reader.ReadUInt32(); this.Unknown_3Ch = reader.ReadUInt32(); this.UsageData = reader.ReadUInt32(); this.Unknown_44h = reader.ReadUInt32(); this.ExtraFlags = reader.ReadUInt32(); this.Unknown_4Ch = reader.ReadUInt32(); // read reference data this.Name = reader.ReadStringAt( //BlockAt<string_r>( this.NamePointer // offset ); if (!string.IsNullOrEmpty(Name)) { NameHash = JenkHash.GenHash(Name.ToLowerInvariant()); } //switch (Unknown_32h) //{ // case 0x20: // case 0x28: // case 0x30: // case 0x38: // case 0x40: // case 0x48: // case 0x80: // case 0x90: // case 0x2://base/shaderparam // break; // default: // break;//no hit //} //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;//no hit // default: // break;//no hit //} //var uf = UsageFlags; //if ((uf & TextureUsageFlags.EMBEDDEDSCRIPTRT) > 0) // .ydr embedded script_rt textures, only 3 uses //{ } //if ((uf & TextureUsageFlags.UNK19) > 0) //{ }//no hit //if ((uf & TextureUsageFlags.UNK20) > 0) //{ }//no hit //if ((uf & TextureUsageFlags.UNK21) > 0) //{ }//no hit //if ((uf & TextureUsageFlags.UNK24) == 0)//wtf isthis? only 0 on special resident(?) textures and some reused ones //{ } //if (!(this is Texture)) //{ // if (Unknown_32h != 0x2)//base/shaderparam // { }//no hit // if (UsageData != 0) // { }//no hit // if (Unknown_44h != 0) // { }//no hit // if (ExtraFlags != 0) // { }//no hit // if (Unknown_4Ch != 0) // { }//no hit //} }
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 { } }
public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data this.Unknown_0h = reader.ReadUInt32(); this.Data1Length = reader.ReadUInt32(); this.Data2Length = reader.ReadUInt32(); this.Data3Length = reader.ReadUInt16(); this.Unknown_Eh = reader.ReadUInt16(); this.Data1 = reader.ReadBytes((int)Data1Length); this.Data2 = reader.ReadBytes((int)Data2Length); this.Data3 = reader.ReadBytes((int)Data3Length); var treereader = new ExpressionTreeReader(Data1, Data2, Data3); Items = treereader.ReadItems(); Roots = treereader.ReadTree(); #region testing //switch (Unknown_Eh) //{ // case 2: // case 8: // case 4: // case 6: // case 59: // case 5: // case 12: // case 58: // case 20: // case 10: // case 9: // case 1: // case 50: // case 14: // case 19: // case 7: // case 25: // case 15: // case 13: // case 28: // case 17: // case 22: // case 26: // case 18: // case 21: // case 23: // case 11: // case 24: // case 27: // case 30: // case 16: // case 377: // case 31: // case 125: // case 32: // case 34: // case 52: // case 51: // case 345: // case 399: // break; // default: // break;//no hit //} #endregion }
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 = reader.ReadBlock <ResourcePointerList64 <ExpressionUnk1> >(); this.BoneTracks = reader.ReadBlock <ResourceSimpleList64_s <ExpressionBoneTrack> >(); this.Unknown_40h = reader.ReadBlock <ResourceSimpleList64 <ExpressionUnk2> >(); this.Unknown_50h = reader.ReadBlock <ResourceSimpleList64_s <MetaHash> >(); this.NamePointer = reader.ReadUInt64(); this.NameLength = reader.ReadUInt16(); this.NameCapacity = reader.ReadUInt16(); this.Unknown_6Ch = reader.ReadUInt32(); this.Unknown_70h = reader.ReadUInt32(); this.Unknown_74h = reader.ReadUInt32(); this.Unk1ItemLength = reader.ReadUInt16(); this.Unknown_7Ah = reader.ReadUInt16(); 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.Name = reader.ReadBlockAt <string_r>( this.NamePointer // offset ); //if (Unknown_50h?.data_items?.Length > 0) //{ } // faceinit.expr, independent_mover.expr BuildBoneTracksDict(); #region testing //long tlen = 0; //if (Unknown_20h?.data_items != null) foreach (var item in Unknown_20h.data_items) tlen = Math.Max(tlen, item.BlockLength); //if (Unk1ItemLength != tlen) //{ }//no hit //if (Unknown_4h != 1) //{ }//no hit //if (Unknown_8h != 0) //{ }//no hit //if (Unknown_Ch != 0) //{ }//no hit //if (Unknown_10h != 0) //{ }//no hit //if (Unknown_14h != 0) //{ }//no hit //if (Unknown_18h != 0) //{ }//no hit //if (Unknown_1Ch != 0) //{ }//no hit //if (NameLength != (Name?.Value?.Length ?? 0)) //{ }//no hit //if (NameCapacity != (NameLength + 1)) //{ }//no hit //if (Unknown_6Ch != 0) //{ }//no hit //if (Unknown_70h != 1) //{ }//no hit //switch (Unknown_74h) //{ // default: // break; //} //if (Unknown_7Ah != 0) //{ }//no hit //switch (Unknown_7Ch) //{ // case 3: // case 2: // break; // default: // break;//no hit //} //if (Unknown_80h != 0) //{ }//no hit //if (Unknown_84h != 0) //{ }//no hit //if (Unknown_88h != 0) //{ }//no hit //if (Unknown_8Ch != 0) //{ }//no hit #endregion }