Input syncing between clients, inventory sync bugfix, structure sync bugfix, settings button highlight bugfix, spectating bugfixes, in-game chatbox not visible when joining a server when the round is running

This commit is contained in:
Regalis
2015-11-14 00:09:56 +02:00
parent 24ed95cd68
commit ab7c39071c
15 changed files with 105 additions and 101 deletions
+10 -11
View File
@@ -97,14 +97,13 @@ namespace Barotrauma.Networking.ReliableMessages
message.Write((byte)PacketTypes.ReliableMessage);
message.Write(messageID);
int bufferSize=100;
if (messageBuffer.Count>bufferSize)
if (messageBuffer.Count > NetConfig.ReliableMessageBufferSize)
{
int end = messageCount-bufferSize;
int start = end - (messageBuffer.Count - bufferSize);
if (start<=0)
int end = messageCount - NetConfig.ReliableMessageBufferSize;
int start = end - (messageBuffer.Count - NetConfig.ReliableMessageBufferSize);
if (start<0)
{
int wrappedStart = start + ushort.MaxValue;
if (wrappedStart==0) wrappedStart = ushort.MaxValue;
@@ -119,7 +118,7 @@ namespace Barotrauma.Networking.ReliableMessages
}
}
for (ushort i = (ushort)Math.Max(start,1); i <= (ushort)Math.Max(end,1); i++)
for (ushort i = (ushort)Math.Max(start,0); i <= (ushort)Math.Max(end,0); i++)
{
messageBuffer.Remove(i);
if (i == ushort.MaxValue) break;
@@ -219,12 +218,11 @@ namespace Barotrauma.Networking.ReliableMessages
{
foreach (var message in missingMessages.Where(m => m.Value.ResendRequestsSent > NetConfig.ResendAttempts).ToList())
{
Debug.WriteLine("Max rerequest attempts reached on message "+message.Value.ID);
missingMessages.Remove(message.Key);
}
int bufferSize = 20;
while (missingMessageIds.Count>bufferSize)
while (missingMessageIds.Count>NetConfig.ReliableMessageBufferSize)
{
ushort id = missingMessageIds.Dequeue();
@@ -245,7 +243,8 @@ namespace Barotrauma.Networking.ReliableMessages
resendRequest.Write((byte)PacketTypes.ResendRequest);
resendRequest.Write(missingMessage.ID);
receiver.SendMessage(resendRequest, recipient, NetDeliveryMethod.Unreliable);
receiver.SendMessage(resendRequest, recipient,
missingMessage.ResendRequestsSent==0 ? NetDeliveryMethod.ReliableUnordered : NetDeliveryMethod.Unreliable);
missingMessage.ResendTimer = Math.Max(recipient.AverageRoundtripTime, NetConfig.RerequestInterval);