public void Encode(Stream stream) { using (SerializationWriter sw = new SerializationWriter(stream)) { sw.Write((byte)(score.ScoreInfo.Ruleset.OnlineID)); sw.Write(LATEST_VERSION); sw.Write(score.ScoreInfo.BeatmapInfo.MD5Hash); sw.Write(score.ScoreInfo.User.Username); sw.Write(FormattableString.Invariant($"lazer-{score.ScoreInfo.User.Username}-{score.ScoreInfo.Date}").ComputeMD5Hash()); sw.Write((ushort)(score.ScoreInfo.GetCount300() ?? 0)); sw.Write((ushort)(score.ScoreInfo.GetCount100() ?? 0)); sw.Write((ushort)(score.ScoreInfo.GetCount50() ?? 0)); sw.Write((ushort)(score.ScoreInfo.GetCountGeki() ?? 0)); sw.Write((ushort)(score.ScoreInfo.GetCountKatu() ?? 0)); sw.Write((ushort)(score.ScoreInfo.GetCountMiss() ?? 0)); sw.Write((int)(score.ScoreInfo.TotalScore)); sw.Write((ushort)score.ScoreInfo.MaxCombo); sw.Write(score.ScoreInfo.Combo == score.ScoreInfo.MaxCombo); sw.Write((int)score.ScoreInfo.Ruleset.CreateInstance().ConvertToLegacyMods(score.ScoreInfo.Mods)); sw.Write(getHpGraphFormatted()); sw.Write(score.ScoreInfo.Date.DateTime); sw.WriteByteArray(createReplayData()); sw.Write((long)0); writeModSpecificData(score.ScoreInfo, sw); } }
public void GetObjectData(SerializationInfo info, StreamingContext context) { SerializationWriter sw = SerializationWriter.GetWriter(); sw.Write(fileChecksum); sw.Write(playerName); sw.Write(offlineScoreChecksum); sw.Write(count300); sw.Write(count100); sw.Write(count50); sw.Write(countGeki); sw.Write(countKatu); sw.Write(countMiss); sw.Write(totalScore); sw.Write(maxCombo); sw.Write(perfect); sw.Write((int)enabledMods); sw.Write(GetGraphFormatted()); if (rawReplayCompressed == null) { rawReplayCompressed = new byte[0]; } sw.WriteByteArray(rawReplayCompressed); sw.Write(date); sw.AddToInfo(info); }
public void WriteToStream(SerializationWriter sw) { sw.Write(Filename); sw.Write(Length); sw.Write(Offset); sw.WriteByteArray(Hash); sw.WriteObject(CreationTime); sw.WriteObject(ModifiedTime); }
public void WriteToStream(SerializationWriter sw) { Pass = true; sw.Write((byte)PlayMode); //Note that this is written out but not read back in. ScoreFactory needs it. sw.Write(General.VERSION); sw.Write(FileChecksum); sw.Write(PlayerName); sw.Write(LocalScoreChecksum); sw.Write(Count300); sw.Write(Count100); sw.Write(Count50); sw.Write(CountGeki); sw.Write(CountKatu); sw.Write(CountMiss); sw.Write(TotalScore); sw.Write((ushort)MaxCombo); sw.Write(Perfect); sw.Write((int)(Mods)EnabledMods); sw.Write(GetGraphFormatted()); sw.Write(Date); sw.WriteByteArray(ReplayCompressed); sw.Write(OnlineId); WriteModSpecificData(sw); }