protected override void WriteObjectData(AwesomeWriter aw) { aw.Write((ulong)InstrumentType); aw.Write((ulong)Difficulty); aw.BaseStream.Position += 8; // Should be zero'd InstrumentTuning.WriteData(aw, Tuning); aw.Write((int)TrackPaths.Count); aw.Write((int)4); foreach (HKey path in TrackPaths) { aw.Write((ulong)path); } }
protected override void WriteObjectData(AwesomeWriter aw) { // Combines all the tags together List <FString> tags = new List <FString>(); aw.Write((int)Entries.Count); aw.Write((int)4); long tagOffset = aw.BaseStream.Position + (Entries.Count * 280); // Writes entries foreach (Catalog2Entry entry in Entries) { aw.Write((ulong)entry.Identifier); aw.Write((int)entry.SongType); aw.Write((int)0); aw.Write((ulong)entry.Title); aw.Write((ulong)entry.Artist); aw.Write((ulong)entry.Album); aw.Write((ulong)entry.Description); aw.Write((ulong)entry.LegendTag); aw.Write((float)entry.SongLength); aw.Write((float)entry.GuitarIntensity); aw.Write((float)entry.BassIntensity); aw.Write((float)entry.VoxIntensity); aw.Write((ulong)entry.EraTag); aw.Write((int)entry.Year); aw.Write((int)0); // Tunings InstrumentTuning.WriteData(aw, entry.LeadGuitarTuning); InstrumentTuning.WriteData(aw, entry.RhythmGuitarTuning); InstrumentTuning.WriteData(aw, entry.BassTuning); // Labels aw.Write((int)entry.Labels.Count); aw.Write((int)(tagOffset - aw.BaseStream.Position)); tagOffset += entry.Labels.Count * 8; tags.AddRange(entry.Labels); aw.Write((ulong)entry.SongPath); aw.Write((ulong)entry.TexturePath); aw.Write((ulong)entry.PreviewPath); // Metadata tags aw.Write((int)entry.MetadataTags.Count); aw.Write((int)(tagOffset - aw.BaseStream.Position)); tagOffset += entry.MetadataTags.Count * 8; tags.AddRange(entry.MetadataTags); // Genre tags aw.Write((int)entry.GenreTags.Count); aw.Write((int)(tagOffset - aw.BaseStream.Position)); tagOffset += entry.GenreTags.Count * 8; tags.AddRange(entry.GenreTags); aw.Write((int)(entry.Unknown1 << 24 | entry.Unknown2 << 16)); aw.Write((int)entry.Unknown3); aw.Write((int)entry.Unknown4); aw.Write((int)entry.Unknown5); aw.BaseStream.Position += 8; } // Writes tags foreach (FString tag in tags) { aw.Write((ulong)tag); } }
protected override void WriteObjectData(AwesomeWriter aw) { aw.BaseStream.Position += 8; InstrumentTuning.WriteData(aw, InstrumentTuning); }