private void ParseGeneric(int version, ReplayReader reader) { AllowToOverrideTime = false; if (version >= 14) { reader.Skip(8); WeatherId = reader.ReadString(); /*if (!string.IsNullOrWhiteSpace(WeatherId)) { * ErrorIf(WeatherManager.Instance.GetWrapperById(WeatherId) == null, * AcErrorType.Replay_WeatherIsMissing, WeatherId); * }*/ TrackId = reader.ReadString(); TrackConfiguration = reader.ReadString(); } else { TrackId = reader.ReadString(); } CarId = reader.TryToReadNextString(); try { DriverName = reader.ReadString(); reader.ReadInt64(); CarSkinId = reader.ReadString(); } catch (Exception) { // ignored } }
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); }