示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
 public void WriteToStream(SerializationWriter sw)
 {
     sw.Write(Filename);
     sw.Write(Length);
     sw.Write(Offset);
     sw.WriteByteArray(Hash);
     sw.WriteObject(CreationTime);
     sw.WriteObject(ModifiedTime);
 }
示例#4
0
 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);
 }