Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }