Protocol: add defeat state bitfields to Sync packets

Signed-off-by: Paul Chote <pchote@users.noreply.github.com>
This commit is contained in:
Clément Bœsch
2020-07-05 19:25:35 +02:00
committed by abcdefg30
parent 60df247416
commit 11f57b2b26
3 changed files with 15 additions and 5 deletions

View File

@@ -192,9 +192,16 @@ namespace OpenRA.Network
UnitOrders.ProcessOrder(this, World, order.Client, order.Order);
if (NetFrameNumber + FramesAhead >= GameSaveLastSyncFrame)
Connection.SendSync(NetFrameNumber, OrderIO.SerializeSync(World.SyncHash()));
{
var defeatState = 0UL;
for (var i = 0; i < World.Players.Length; i++)
if (World.Players[i].WinState == WinState.Lost)
defeatState |= 1UL << i;
Connection.SendSync(NetFrameNumber, OrderIO.SerializeSync(World.SyncHash(), defeatState));
}
else
Connection.SendSync(NetFrameNumber, OrderIO.SerializeSync(0));
Connection.SendSync(NetFrameNumber, OrderIO.SerializeSync(0, 0));
if (generateSyncReport)
using (new PerfSample("sync_report"))