public static ReplayFile ReadFile(string filePath) { ReplayFile replayFile = new ReplayFile(); using (_reader = new ReplayReader(File.Open(filePath, FileMode.Open))) { replayFile.Passed = true; replayFile.Mode = _reader.ReadByte(); replayFile.Version = _reader.ReadInt32(); replayFile.BeatmapHash = _reader.ReadString(); replayFile.PlayerName = _reader.ReadString(); replayFile.ReplayHash = _reader.ReadString(); replayFile.Count300 = _reader.ReadUInt16(); replayFile.Count100 = _reader.ReadUInt16(); replayFile.Count50 = _reader.ReadUInt16(); replayFile.CountGeki = _reader.ReadUInt16(); replayFile.CountKatu = _reader.ReadUInt16(); replayFile.CountMiss = _reader.ReadUInt16(); replayFile.Score = _reader.ReadInt32(); replayFile.MaxCombo = _reader.ReadUInt16(); replayFile.FullCombo = _reader.ReadBoolean(); replayFile.UsedMods = _reader.ReadInt32(); replayFile.PerformanceGraphData = _reader.ReadString(); replayFile.ReplayDate = _reader.ReadDateTime(); replayFile.Replay = _reader.ReadByteArray(); if (replayFile.Version >= 20140721) { replayFile.Long0 = _reader.ReadInt64(); } } return(replayFile); }