internal override void ReadData(AwesomeReader ar) { TrackPaths.Clear(); InstrumentType = ar.ReadUInt64(); Difficulty = ar.ReadUInt64(); ar.BaseStream.Position += 8; // Should be zero'd // Reads tuning info Tuning = InstrumentTuning.ReadData(ar); // Reads track paths int count = ar.ReadInt32(); ar.BaseStream.Position += 4; // Offset - Should be 4 for (int i = 0; i < count; i++) { TrackPaths.Add(ar.ReadUInt64()); } }
internal override void ReadData(AwesomeReader ar) { Entries.Clear(); int entryCount = ar.ReadInt32(); ar.BaseStream.Position += 4; // Should be 4 while (entryCount > 0) { Catalog2Entry entry = new Catalog2Entry(); // 280 bytes entry.Identifier = ar.ReadUInt64(); entry.SongType = ar.ReadInt32(); ar.BaseStream.Position += 4; // Should be 0 entry.Title = ar.ReadUInt64(); entry.Artist = ar.ReadUInt64(); entry.Album = ar.ReadUInt64(); entry.Description = ar.ReadUInt64(); entry.LegendTag = ar.ReadUInt64(); entry.SongLength = ar.ReadSingle(); entry.GuitarIntensity = ar.ReadSingle(); entry.BassIntensity = ar.ReadSingle(); entry.VoxIntensity = ar.ReadSingle(); entry.EraTag = ar.ReadUInt64(); entry.Year = ar.ReadInt32(); ar.BaseStream.Position += 4; // Should be 0 entry.LeadGuitarTuning = InstrumentTuning.ReadData(ar); entry.RhythmGuitarTuning = InstrumentTuning.ReadData(ar); entry.BassTuning = InstrumentTuning.ReadData(ar); // Reads labels int count = ar.ReadInt32(); int offset = ar.ReadInt32(); long previousPosition = ar.BaseStream.Position; ar.BaseStream.Position += offset - 4; for (int i = 0; i < count; i++) { entry.Labels.Add(ar.ReadUInt64()); } ar.BaseStream.Position = previousPosition; entry.SongPath = ar.ReadUInt64(); entry.TexturePath = ar.ReadUInt64(); entry.PreviewPath = ar.ReadUInt64(); // Reads metadata tags count = ar.ReadInt32(); offset = ar.ReadInt32(); previousPosition = ar.BaseStream.Position; ar.BaseStream.Position += offset - 4; for (int i = 0; i < count; i++) { entry.MetadataTags.Add(ar.ReadUInt64()); } ar.BaseStream.Position = previousPosition; // Reads genre tags count = ar.ReadInt32(); offset = ar.ReadInt32(); previousPosition = ar.BaseStream.Position; ar.BaseStream.Position += offset - 4; for (int i = 0; i < count; i++) { entry.GenreTags.Add(ar.ReadUInt64()); } ar.BaseStream.Position = previousPosition; int unknown = ar.ReadInt32(); entry.Unknown1 = (byte)((unknown & 0xFF000000) >> 24); entry.Unknown2 = (byte)((unknown & 0x00FF0000) >> 16); entry.Unknown3 = ar.ReadInt32(); entry.Unknown4 = ar.ReadInt32(); entry.Unknown5 = ar.ReadInt32(); ar.BaseStream.Position += 8; // Should be 0 Entries.Add(entry); entryCount--; } }
internal override void ReadData(AwesomeReader ar) { ar.BaseStream.Position += 8; // Skips zeros InstrumentTuning = InstrumentTuning.ReadData(ar); }