Fixed occasional invalid object header errors when attempting to send a status NetworkEvent for a character (easy way to reproduce was to kill multiple characters during the same frame with an explosion).
This commit is contained in:
@@ -197,8 +197,12 @@ namespace Barotrauma
|
||||
IsRemotePlayer = ownerID > 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
ReadStatus(msg);
|
||||
break;
|
||||
|
||||
}
|
||||
msg.ReadPadBits();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1045,7 +1045,6 @@ namespace Barotrauma.Networking
|
||||
fl.Close();
|
||||
|
||||
throw new Exception("Error while reading update from server: please send us \"crashreport_object.bin\"!");
|
||||
break;
|
||||
}
|
||||
prevObjHeader = objHeader;
|
||||
prevBitPos = inc.Position;
|
||||
|
||||
@@ -379,8 +379,7 @@ namespace Barotrauma
|
||||
if (GameMain.Server == null) return;
|
||||
|
||||
if (extraData != null)
|
||||
{
|
||||
|
||||
{
|
||||
switch ((NetEntityEvent.Type)extraData[0])
|
||||
{
|
||||
case NetEntityEvent.Type.InventoryState:
|
||||
@@ -392,6 +391,13 @@ namespace Barotrauma
|
||||
Client owner = ((Client)extraData[1]);
|
||||
msg.Write(owner == null ? (byte)0 : owner.ID);
|
||||
break;
|
||||
case NetEntityEvent.Type.Status:
|
||||
msg.WriteRangedInteger(0, 2, 2);
|
||||
WriteStatus(msg);
|
||||
break;
|
||||
default:
|
||||
DebugConsole.ThrowError("Invalid NetworkEvent type for entity " + ToString() + " (" + (NetEntityEvent.Type)extraData[0] + ")");
|
||||
break;
|
||||
}
|
||||
msg.WritePadBits();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user