public static RhsFile Deserialize(BinaryReader reader) { var file = new RhsFile(); file.version = reader.ReadByte(); RhsEntryType type; while ((type = (RhsEntryType)reader.ReadByte()) != RhsEntryType.EndOfEntry) { switch (type) { case RhsEntryType.Rhs: file.rhsGuid = reader.ReadRhGuid(); break; case RhsEntryType.Internal: file.internalGuid = reader.ReadRhGuid(); break; case RhsEntryType.Ogg: file.oggGuid = reader.ReadRhGuid(); break; case RhsEntryType.SongTitle: file.songTitle = reader.ReadShortPrefixedString(); break; case RhsEntryType.TimingData: file.timingData = TimingData.Deserialize(reader); break; case RhsEntryType.PreviewStart: file.previewStart = reader.ReadSingle(); break; case RhsEntryType.PreviewLength: file.previewLength = reader.ReadSingle(); break; case RhsEntryType.SongLengthOverride: file.songLengthOverride = reader.ReadSingle(); break; case RhsEntryType.Png: file.pngGuid = reader.ReadRhGuid(); break; case RhsEntryType.Artists: file.artists.Add(Artist.Deserialize(reader)); break; default: throw new Exception("Unknown song entry type: " + type); } } return(file); }
public static RhprojFile Deserialize(BinaryReader reader) { var file = new RhprojFile(); file.version = reader.ReadByte(); file.unknown1 = reader.ReadByte(); // Always 0? file.rhcFile = RhcFile.Deserialize(reader); file.unknown2 = reader.ReadBytes(8); file.rhsFile = RhsFile.Deserialize(reader); file.unknown3 = reader.ReadBytes(16); return(file); }
public RhsSynchronizer(CacheFile cacheFile, RhsFile rhsFile) : base(cacheFile) { this.rhsFile = rhsFile; }