private static void LogNewConnection(int connId, int originFrameId, int frameCount, out ConnectionTickOffsets offsets) { int currentFrame = NetMaster.CurrentFrameId; /// Apply default followOffset from current local frame int startingFrameId = currentFrame + (TickEngineSettings.targetBufferSize /*+ 1*/); while (startingFrameId >= frameCount) { startingFrameId -= frameCount; } int originToLocal = startingFrameId - originFrameId; if (originToLocal < 0) { originToLocal += frameCount; } int localToOrigin = frameCount - originToLocal; if (localToOrigin < 0) { localToOrigin += frameCount; } /// Currently local and origin are the same. /// TODO: Pool these offsets = new ConnectionTickOffsets(connId, originToLocal, localToOrigin); AddConnection(connId, offsets); }
private static void AddConnection(int connId, ConnectionTickOffsets offsets = null) { #if PUN_2_OR_NEWER /// We don't treat own own connection as a thing if (PhotonNetwork.LocalPlayer.ActorNumber == connId) { return; } #endif if (!connections.Contains(connId)) { perConnOffsets.Add(connId, offsets); connections.Add(connId); /// Add this connection to the NetSends list of targets for a reliable update. NetMsgSends.newPlayers.Add(connId); needToSendInitialForNewConn = true; } else { perConnOffsets[connId] = offsets; } }