Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
 protected override void WriteObjectData(AwesomeWriter aw)
 {
     aw.BaseStream.Position += 8;
     InstrumentTuning.WriteData(aw, InstrumentTuning);
 }