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); }
public override void Read(ResourceDataReader reader, params object[] parameters) { base.Read(reader, parameters); ContentFlags = (NavMeshFlags)reader.ReadUInt32(); VersionUnk1 = reader.ReadUInt32(); Unused_018h = reader.ReadUInt32(); Unused_01Ch = reader.ReadUInt32(); Transform = reader.ReadMatrix(); AABBSize = reader.ReadVector3(); AABBUnk = reader.ReadSingle(); VerticesPointer = reader.ReadUInt64(); Unused_078h = reader.ReadUInt32(); Unused_07Ch = reader.ReadUInt32(); IndicesPointer = reader.ReadUInt64(); AdjPolysPointer = reader.ReadUInt64(); AdjPolysIndicesCount = reader.ReadUInt32(); AdjAreaIDs = reader.ReadStruct <NavMeshUintArray>(); PolysPointer = reader.ReadUInt64(); SectorTreePointer = reader.ReadUInt64(); PortalsPointer = reader.ReadUInt64(); PortalLinksPointer = reader.ReadUInt64(); VerticesCount = reader.ReadUInt32(); PolysCount = reader.ReadUInt32(); AreaID = reader.ReadUInt32(); TotalBytes = reader.ReadUInt32(); SectorUnkCount = reader.ReadUInt32(); PortalsCount = reader.ReadUInt32(); PortalLinksCount = reader.ReadUInt32(); Unused_154h = reader.ReadUInt32(); Unused_158h = reader.ReadUInt32(); Unused_15Ch = reader.ReadUInt32(); VersionUnk2 = reader.ReadUInt32(); Unused_164h = reader.ReadUInt32(); Unused_168h = reader.ReadUInt32(); Unused_16Ch = reader.ReadUInt32(); Vertices = reader.ReadBlockAt <NavMeshList <NavMeshVertex> >(VerticesPointer); Indices = reader.ReadBlockAt <NavMeshList <ushort> >(IndicesPointer); AdjPolys = reader.ReadBlockAt <NavMeshList <NavMeshAdjPoly> >(AdjPolysPointer); Polys = reader.ReadBlockAt <NavMeshList <NavMeshPoly> >(PolysPointer); SectorTree = reader.ReadBlockAt <NavMeshSector>(SectorTreePointer); Portals = reader.ReadStructsAt <NavMeshPortal>(PortalsPointer, PortalsCount); PortalLinks = reader.ReadUshortsAt(PortalLinksPointer, PortalLinksCount); }
public override void Read(ResourceDataReader reader, params object[] parameters) { AABBMin = reader.ReadVector4(); AABBMax = reader.ReadVector4(); CellAABB = reader.ReadStruct <NavMeshAABB>(); DataPointer = reader.ReadUInt64(); SubTree1Pointer = reader.ReadUInt64(); SubTree2Pointer = reader.ReadUInt64(); SubTree3Pointer = reader.ReadUInt64(); SubTree4Pointer = reader.ReadUInt64(); Unused_54h = reader.ReadUInt32(); Unused_58h = reader.ReadUInt32(); Unused_5Ch = reader.ReadUInt32(); Data = reader.ReadBlockAt <NavMeshSectorData>(DataPointer); SubTree1 = reader.ReadBlockAt <NavMeshSector>(SubTree1Pointer); SubTree2 = reader.ReadBlockAt <NavMeshSector>(SubTree2Pointer); SubTree3 = reader.ReadBlockAt <NavMeshSector>(SubTree3Pointer); SubTree4 = reader.ReadBlockAt <NavMeshSector>(SubTree4Pointer); }
/// <summary> /// Reads the data-block from a stream. /// </summary> public override void Read(ResourceDataReader reader, params object[] parameters) { // read structure data this.FileVFT = reader.ReadUInt32(); this.FileUnknown = reader.ReadUInt32(); this.FilePagesInfoPointer = reader.ReadUInt64(); // read reference data this.FilePagesInfo = reader.ReadBlockAt <ResourcePagesInfo>( this.FilePagesInfoPointer // offset ); }
public override void Read(ResourceDataReader reader, params object[] parameters) { VFT = reader.ReadUInt32(); Unknown_04h = reader.ReadUInt32(); ItemCount = reader.ReadUInt32(); Unknown_0Ch = reader.ReadUInt32(); ListPartsPointer = reader.ReadUInt64(); ListOffsetsPointer = reader.ReadUInt64(); ListPartsCount = reader.ReadUInt32(); Unknown_24h = reader.ReadUInt32(); Unknown_28h = reader.ReadUInt32(); Unknown_2Ch = reader.ReadUInt32(); ListParts = reader.ReadBlockAt <ResourceSimpleArray <NavMeshListPart <T> > >(ListPartsPointer, ListPartsCount); ListOffsets = reader.ReadUintsAt(ListOffsetsPointer, ListPartsCount); }
public override void Read(ResourceDataReader reader, params object[] parameters) { base.Read(reader, parameters); this.Unknown_10h = reader.ReadUInt32(); this.Unknown_14h = reader.ReadUInt32(); this.EntriesPointer = reader.ReadUInt64(); this.EntriesCount = reader.ReadUInt32(); this.Unknown_24h = reader.ReadUInt32(); this.Unknown_28h = reader.ReadUInt32(); this.Unknown_2Ch = reader.ReadUInt32(); this.Entries = reader.ReadBlockAt <ResourceSimpleArray <WaypointRecordEntry> >( this.EntriesPointer, // offset this.EntriesCount ); }
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]); } }
public override void Read(ResourceDataReader reader, params object[] parameters) { int numElements = Convert.ToInt32(parameters[0]); // read structure data //data_pointers = new List<ulong>(); //for (int i = 0; i < numElements; i++) //{ // data_pointers.Add(reader.ReadUInt64()); //} data_pointers = reader.ReadUlongsAt((ulong)reader.Position, (uint)numElements); //foreach (var dp in data_pointers) //{ // if (dp == 0) // { // } //} // read reference data //data_items = new List<T>(); //for (int i = 0; i < numElements; i++) //{ // data_items.Add( // reader.ReadBlockAt<T>(data_pointers[i]) // ); //} data_items = new T[numElements]; for (int i = 0; i < numElements; i++) { data_items[i] = reader.ReadBlockAt <T>(data_pointers[i]); } }
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.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 }
public override void Read(ResourceDataReader reader, params object[] parameters) { base.Read(reader, parameters); ContentFlags = (NavMeshFlags)reader.ReadUInt32(); VersionUnk1 = reader.ReadUInt32(); Unused_018h = reader.ReadUInt32(); Unused_01Ch = reader.ReadUInt32(); Transform = reader.ReadMatrix(); AABBSize = reader.ReadVector3(); AABBUnk = reader.ReadUInt32(); VerticesPointer = reader.ReadUInt64(); Unused_078h = reader.ReadUInt32(); Unused_07Ch = reader.ReadUInt32(); IndicesPointer = reader.ReadUInt64(); EdgesPointer = reader.ReadUInt64(); EdgesIndicesCount = reader.ReadUInt32(); AdjAreaIDs = reader.ReadStruct <NavMeshUintArray>(); PolysPointer = reader.ReadUInt64(); SectorTreePointer = reader.ReadUInt64(); PortalsPointer = reader.ReadUInt64(); PortalLinksPointer = reader.ReadUInt64(); VerticesCount = reader.ReadUInt32(); PolysCount = reader.ReadUInt32(); AreaID = reader.ReadUInt32(); TotalBytes = reader.ReadUInt32(); PointsCount = reader.ReadUInt32(); PortalsCount = reader.ReadUInt32(); PortalLinksCount = reader.ReadUInt32(); Unused_154h = reader.ReadUInt32(); Unused_158h = reader.ReadUInt32(); Unused_15Ch = reader.ReadUInt32(); VersionUnk2 = reader.ReadUInt32(); Unused_164h = reader.ReadUInt32(); Unused_168h = reader.ReadUInt32(); Unused_16Ch = reader.ReadUInt32(); Vertices = reader.ReadBlockAt <NavMeshList <NavMeshVertex> >(VerticesPointer); Indices = reader.ReadBlockAt <NavMeshList <ushort> >(IndicesPointer); Edges = reader.ReadBlockAt <NavMeshList <NavMeshEdge> >(EdgesPointer); Polys = reader.ReadBlockAt <NavMeshList <NavMeshPoly> >(PolysPointer); SectorTree = reader.ReadBlockAt <NavMeshSector>(SectorTreePointer); Portals = reader.ReadStructsAt <NavMeshPortal>(PortalsPointer, PortalsCount); PortalLinks = reader.ReadUshortsAt(PortalLinksPointer, PortalLinksCount); ////testing! //if (VersionUnk1 != 0x00010011) //{ } //if (Unused_018h != 0) //{ } //if (Unused_01Ch != 0) //{ } //if (AABBUnk != 0x7F800001) //{ } //if (Unused_078h != 0) //{ } //if (Unused_07Ch != 0) //{ } //if (Unused_154h != 0) //{ } //if (Unused_158h != 0) //{ } //if (Unused_15Ch != 0) //{ } //if (Unused_164h != 0) //{ } //if (Unused_168h != 0) //{ } //if (Unused_16Ch != 0) //{ } //switch (VersionUnk2.Hash) //{ // case 0: //vehicle // break; // case 0x85CB3561: //grid // break; // default: // break; //} //UpdateCounts(); }
/// <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.HasEncryptedStrings = 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.EncryptedStringsPointer = 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); #if DEBUG EncryptedStrings = reader.ReadBlockAt <MetaEncryptedStringsBlock>((ulong)EncryptedStringsPointer); Analyzer = new ResourceAnalyzer(reader); #endif }