private static string FormatDemoTaker(udtParseDataGameState info) { var name = SafeGetString(info.DemoTakerName, "N/A"); return string.Format("{0} (player index {1})", name, info.DemoTakerPlayerIndex); }
private static void AddMatches(DemoInfo info, udtParseDataGameState data, string space) { var matchCount = data.MatchCount; if(matchCount == 0) { return; } info.Generic.Add(Tuple.Create(space + "Matches", data.MatchCount.ToString())); for(uint i = 0; i < matchCount; ++i) { var matchAddress = new IntPtr(data.Matches.ToInt64() + i * sizeof(udtMatchInfo)); var matchData = (udtMatchInfo)Marshal.PtrToStructure(matchAddress, typeof(udtMatchInfo)); var desc = space + "Match #" + (i + 1).ToString(); var start = FormatMinutesSecondsFromMs(matchData.MatchStartTimeMs); var end = FormatMinutesSecondsFromMs(matchData.MatchEndTimeMs); var val = start + " - " + end; info.Generic.Add(Tuple.Create(desc, val)); } }
private static void AddPlayers(DemoInfo info, udtParseDataGameState data, string space) { for(uint i = 0; i < data.PlayerCount; ++i) { var address = new IntPtr(data.Players.ToInt64() + i * sizeof(udtGameStatePlayerInfo)); var player = (udtGameStatePlayerInfo)Marshal.PtrToStructure(address, typeof(udtGameStatePlayerInfo)); var desc = space + "Client Number " + player.Index.ToString(); var startTime = FormatMinutesSecondsFromMs(player.FirstSnapshotTimeMs); var endTime = FormatMinutesSecondsFromMs(player.LastSnapshotTimeMs); var time = startTime + " - " + endTime; var name = SafeGetString(player.FirstName, "N/A"); var value = string.Format("{0}, {1}, team {2}", name, time, GetTeamName(player.FirstTeam)); info.Generic.Add(Tuple.Create(desc, value)); } }
private static void AddKeyValuePairs(DemoInfo info, udtParseDataGameState data, string space) { for(uint i = 0; i < data.KeyValuePairCount; ++i) { var address = new IntPtr(data.KeyValuePairs.ToInt64() + i * sizeof(udtGameStateKeyValuePair)); var kvPair = (udtGameStateKeyValuePair)Marshal.PtrToStructure(address, typeof(udtGameStateKeyValuePair)); var key = SafeGetString(kvPair.Name, "N/A"); var value = SafeGetString(kvPair.Value, "N/A"); info.Generic.Add(Tuple.Create(space + key, value)); } }