private void OnPeerClientAuthority(NetworkMessage netMsg)
{
PeerAuthorityMessage message = netMsg.ReadMessage<PeerAuthorityMessage>();
if (LogFilter.logDebug)
{
Debug.Log("OnPeerClientAuthority for netId:" + message.netId);
}
if (this.m_Peers != null)
{
for (int i = 0; i < this.m_Peers.Length; i++)
{
PeerInfoMessage message2 = this.m_Peers[i];
if (message2.connectionId == message.connectionId)
{
if (message2.playerIds == null)
{
message2.playerIds = new PeerInfoPlayer[0];
}
if (message.authorityState)
{
for (int j = 0; j < message2.playerIds.Length; j++)
{
if (message2.playerIds[j].netId == message.netId)
{
return;
}
}
PeerInfoPlayer player = new PeerInfoPlayer {
netId = message.netId,
playerControllerId = -1
};
message2.playerIds = new List<PeerInfoPlayer>(message2.playerIds) { player }.ToArray();
}
else
{
for (int k = 0; k < message2.playerIds.Length; k++)
{
if (message2.playerIds[k].netId == message.netId)
{
List<PeerInfoPlayer> list2 = new List<PeerInfoPlayer>(message2.playerIds);
list2.RemoveAt(k);
message2.playerIds = list2.ToArray();
break;
}
}
}
}
}
GameObject go = ClientScene.FindLocalObject(message.netId);
this.OnAuthorityUpdated(go, message.connectionId, message.authorityState);
}
}