private void UpdatePlayerEntry() { if (_playerCar != _playerEntry?.Car) { if (_playerEntry != null) { NonfilteredList.Remove(_playerEntry); _playerEntry = null; } if (Mode != BuiltInGridMode.Custom || IgnoreStartingPosition) { return; } _playerEntry = _playerCar == null ? null : new RaceGridPlayerEntry(_playerCar); } if (_playerEntry == null) { return; } if (Mode == BuiltInGridMode.Custom) { var index = NonfilteredList.IndexOf(_playerEntry); var pos = StartingPosition - 1; if (index == -1) { if (pos > NonfilteredList.Count) { NonfilteredList.Add(_playerEntry); } else if (pos >= 0) { NonfilteredList.Insert(pos, _playerEntry); } } else { if (pos < 0) { NonfilteredList.RemoveAt(index); } else if (pos != index) { NonfilteredList.Move(index, pos); } } } else if (NonfilteredList.Contains(_playerEntry)) { NonfilteredList.Remove(_playerEntry); _playerEntry = null; } }
private void UpdatePlayerEntry() { if (_playerCar != _playerEntry?.Car) { if (_playerEntry != null) { NonfilteredList.Remove(_playerEntry); _playerEntry = null; } if (Mode != BuiltInGridMode.Custom || IgnoreStartingPosition) return; _playerEntry = _playerCar == null ? null : new RaceGridPlayerEntry(_playerCar); } if (_playerEntry == null) return; if (Mode == BuiltInGridMode.Custom) { var index = NonfilteredList.IndexOf(_playerEntry); var pos = StartingPosition - 1; if (index == -1) { if (pos > NonfilteredList.Count) { NonfilteredList.Add(_playerEntry); } else if (pos >= 0) { NonfilteredList.Insert(pos, _playerEntry); } } else { if (pos < 0) { NonfilteredList.RemoveAt(index); } else if (pos != index) { NonfilteredList.Move(index, pos); } } } else if (NonfilteredList.Contains(_playerEntry)) { NonfilteredList.Remove(_playerEntry); _playerEntry = null; } }