public async Task Discover() { try { const string source = "portal2_cm_coop.dem"; var parser = new SourceParser(); var demo = await parser.ParseFromFileAsync(Paths.Demos + source); Console.WriteLine("Before: " + demo.PlaybackTicks); // Load automatically from assembly #if !DISCOVER_2 await Adjustments.DiscoverAsync(); #else await Adjustments.DiscoverAsync(System.Reflection.Assembly.GetEntryAssembly()); #endif await demo.AdjustAsync(); Console.WriteLine("After: " + demo.PlaybackTicks); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public async Task <string> ParseCommandAsync(string command) { switch (command.ToLower()) { case "header": return($"HeaderId\t{_demo.HeaderId}\n" + $"Protocol\t{_demo.Protocol}\n" + $"NetworkProtocol\t{_demo.NetworkProtocol}\n" + $"GameDirectory\t{_demo.GameDirectory}\n" + $"MapName\t{_demo.MapName}\n" + $"ServerName\t{_demo.ServerName}\n" + $"ClientName\t{_demo.ClientName}\n" + $"PlaybackTime\t{_demo.PlaybackTime.ToString("N3")}\n" + $"PlaybackTicks\t{_demo.PlaybackTicks}\n" + $"PlaybackFrames\t{_demo.PlaybackFrames}\n" + $"SignOnLength\t{_demo.SignOnLength}"); case "header-id": return($"HeaderId\t{_demo.HeaderId}"); case "protocol": return($"Protocol\t{_demo.Protocol}"); case "netproc": case "net-protocol": return($"NetworkProtocol\t{_demo.NetworkProtocol}"); case "dir": case "game-dir": return($"GameDirectory\t{_demo.GameDirectory}"); case "map": case "map-name": return($"MapName\t{_demo.MapName}"); case "server": case "server-name": return($"ServerName\t{_demo.ServerName}"); case "client": case "client-name": return($"ClientName\t{_demo.ClientName}"); case "time": return($"PlaybackTime\t{_demo.PlaybackTime.ToString("N3")}"); case "ticks": return($"PlaybackTicks\t{_demo.PlaybackTicks}"); case "frames": return($"FrameCount\t{_demo.PlaybackFrames}"); case "signon": case "signonlength": return($"SignOnLength\t{_demo.SignOnLength}"); // Data case "tickrate": return($"Tickrate\t{_demo.GetTickrate()}"); case "ipt": case "interval-per-tick": return($"IntervalPerTick\t{_demo.GetIntervalPerTick().ToString("N3")}"); // Returns nothing case "time-exact": await _demo.TimeExact(); break; case "time-sf": case "time-flag": await _demo.TimeFlagAsync(); break; case "speedrun": if (!_discovered) { await Adjustments.DiscoverAsync(); _discovered = true; } await _demo.AdjustAsync(); break; } return(default);