"ReliableMessages", networkevents aren't sent if FillNetworkEvent fails

This commit is contained in:
Regalis
2015-10-19 22:49:38 +03:00
parent c3d1b971dd
commit 5f07d4b0c9
22 changed files with 604 additions and 76 deletions

View File

@@ -64,7 +64,10 @@ namespace Barotrauma
dictionary.Add(id, this);
}
public virtual void FillNetworkData(NetworkEventType type, NetOutgoingMessage message, object data) { }
public virtual bool FillNetworkData(NetworkEventType type, NetOutgoingMessage message, object data)
{
return false;
}
public virtual void ReadNetworkData(NetworkEventType type, NetIncomingMessage message) { }
/// <summary>

View File

@@ -471,9 +471,11 @@ namespace Barotrauma
h.ID = int.Parse(element.Attribute("ID").Value);
}
public override void FillNetworkData(Networking.NetworkEventType type, Lidgren.Network.NetOutgoingMessage message, object data)
public override bool FillNetworkData(Networking.NetworkEventType type, Lidgren.Network.NetOutgoingMessage message, object data)
{
message.Write(volume);
return true;
}
public override void ReadNetworkData(Networking.NetworkEventType type, Lidgren.Network.NetIncomingMessage message)

View File

@@ -636,7 +636,7 @@ namespace Barotrauma
}
public override void FillNetworkData(NetworkEventType type, NetOutgoingMessage message, object data)
public override bool FillNetworkData(NetworkEventType type, NetOutgoingMessage message, object data)
{
int sectionIndex = 0;
byte byteIndex = 0;
@@ -648,12 +648,14 @@ namespace Barotrauma
}
catch
{
return;
return false;
}
message.Write((float)NetTime.Now);
message.Write(byteIndex);
message.Write(sections[sectionIndex].damage);
return true;
}
public override void ReadNetworkData(NetworkEventType type, NetIncomingMessage message)

View File

@@ -149,7 +149,7 @@ namespace Barotrauma
}
base.Remove();
ID = -1;
ID = -5;
}
//drawing ----------------------------------------------------
@@ -378,14 +378,18 @@ namespace Barotrauma
Level.Loaded.Move(-amount);
}
public override void FillNetworkData(Networking.NetworkEventType type, NetOutgoingMessage message, object data)
public override bool FillNetworkData(Networking.NetworkEventType type, NetOutgoingMessage message, object data)
{
if (subBody == null) return false;
message.Write((float)NetTime.Now);
message.Write(Position.X);
message.Write(Position.Y);
message.Write(Speed.X);
message.Write(Speed.Y);
return true;
}
public override void ReadNetworkData(Networking.NetworkEventType type, NetIncomingMessage message)