private NetworkedGameState GetNetworkedGameStateRelativeTo(uint sequenceNumberRelativeTo) { var indexOfGameStateRelativeTo = cachedReceivedGameStates .FindIndex(ngs => ngs.SequenceNumber == sequenceNumberRelativeTo); Assert.IsTrue((indexOfGameStateRelativeTo >= 0) || (sequenceNumberRelativeTo == 0)); return((indexOfGameStateRelativeTo >= 0) ? cachedReceivedGameStates[indexOfGameStateRelativeTo] : NetLib.GetEmptyNetworkedGameStateForDiffing()); }
public NetworkedGameState GetNetworkedGameStateToDiffAgainst(uint playerId) { var playersLatestAcknowledgedGameStateSequenceNumber = latestAcknowledgedGameStateSequenceNumberByPlayerId.GetValueOrDefault(playerId); var indexOfPlayersLatestAcknowledgedGameState = cachedSentGameStates .FindIndex(ngs => ngs.SequenceNumber == playersLatestAcknowledgedGameStateSequenceNumber); var playersLatestAcknowledgedGameState = (indexOfPlayersLatestAcknowledgedGameState >= 0) ? cachedSentGameStates[indexOfPlayersLatestAcknowledgedGameState] : NetLib.GetEmptyNetworkedGameStateForDiffing(); return(playersLatestAcknowledgedGameState); }