private void UpdateTeams()
{
ClearTeams();
List<String> names = new List<String>();
lock (fAllPlayers) {
foreach (String name in fAllPlayers) {
if (!fKnownPlayers.ContainsKey(name)) {
ConsoleDebug("UpdateTeams: " + name + " not in fKnownPlayers");
continue;
}
names.Add(name);
}
}
lock (fKnownPlayers) {
foreach (String dude in names) {
PlayerModel player = null;
if (fKnownPlayers.TryGetValue(dude, out player) && player != null) {
if (fGameVersion != GameVersion.BF3 && player.Role != ROLE_PLAYER) continue; // account for role
List<PlayerModel> t = GetTeam(player.Team);
if (t != null) t.Add(player);
// Also update move timer
double mins = DateTime.Now.Subtract(player.MovedByMBTimestamp).TotalMinutes;
if (player.MovedByMBTimestamp != DateTime.MinValue && mins >= MinutesAfterBeingMoved) {
player.MovedByMBTimestamp = DateTime.MinValue;
}
}
}
}
}