@@ -1207,7 +1207,8 @@ protected LiteNetLibIdentity SpawnPlayer(long connectionId, int hashAssetId)
12071207 #region Game State Syncing
12081208 private void WriteSyncElement ( NetDataWriter writer , LiteNetLibSyncElement syncElement )
12091209 {
1210- writer . PutPackedUInt ( Tick ) ;
1210+ uint tick = Tick ;
1211+ writer . PutPackedUInt ( tick ) ;
12111212 writer . PutPackedUInt ( syncElement . ObjectId ) ;
12121213 writer . PutPackedInt ( syncElement . ElementId ) ;
12131214 if ( safeGameStatePacket )
@@ -1218,7 +1219,7 @@ private void WriteSyncElement(NetDataWriter writer, LiteNetLibSyncElement syncEl
12181219 writer . Put ( dataLength ) ;
12191220 int posAfterWriteDataLen = writer . Length ;
12201221 // Write sync data
1221- syncElement . WriteSyncData ( false , writer ) ;
1222+ syncElement . WriteSyncData ( false , tick , false , writer ) ;
12221223 dataLength = writer . Length - posAfterWriteDataLen ;
12231224 // Put data length
12241225 int posAfterWriteData = writer . Length ;
@@ -1228,7 +1229,7 @@ private void WriteSyncElement(NetDataWriter writer, LiteNetLibSyncElement syncEl
12281229 }
12291230 else
12301231 {
1231- syncElement . WriteSyncData ( false , writer ) ;
1232+ syncElement . WriteSyncData ( false , tick , false , writer ) ;
12321233 }
12331234 }
12341235
@@ -1248,7 +1249,7 @@ private bool ReadSyncElement(NetDataReader reader)
12481249 {
12491250 try
12501251 {
1251- element . ReadSyncData ( tick , false , reader ) ;
1252+ element . ReadSyncData ( false , tick , false , reader ) ;
12521253 }
12531254 catch
12541255 {
@@ -1270,7 +1271,7 @@ private bool ReadSyncElement(NetDataReader reader)
12701271 {
12711272 try
12721273 {
1273- element . ReadSyncData ( tick , false , reader ) ;
1274+ element . ReadSyncData ( false , tick , false , reader ) ;
12741275 }
12751276 catch
12761277 {
@@ -1289,7 +1290,8 @@ private bool ReadSyncElement(NetDataReader reader)
12891290
12901291 private int WriteGameStateFromServer ( NetDataWriter writer , LiteNetLibPlayer player , Dictionary < uint , GameStateSyncData > syncingStatesByObjectIds )
12911292 {
1292- writer . PutPackedUInt ( Tick ) ;
1293+ uint tick = Tick ;
1294+ writer . PutPackedUInt ( tick ) ;
12931295 // Reserve position for state length
12941296 int posBeforeWriteStateCount = writer . Length ;
12951297 int stateCount = 0 ;
@@ -1308,7 +1310,7 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13081310 if ( Assets . TryGetSpawnedObject ( objectId , out identity ) && identity != null && identity . transform != null )
13091311 {
13101312 writer . Put ( GameStateSyncData . STATE_TYPE_SPAWN ) ;
1311- WriteSpawnGameState ( writer , player , identity , syncingStatesByObjectId . Value ) ;
1313+ WriteSpawnGameState ( writer , player , identity , syncingStatesByObjectId . Value , tick ) ;
13121314 // TODO: Move this to somewhere else
13131315 if ( player . ConnectionId == ClientConnectionId )
13141316 {
@@ -1323,7 +1325,7 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13231325 if ( Assets . TryGetSpawnedObject ( objectId , out identity ) && identity != null && identity . transform != null )
13241326 {
13251327 writer . Put ( GameStateSyncData . STATE_TYPE_SYNC ) ;
1326- WriteSyncGameState ( writer , objectId , syncingStatesByObjectId . Value ) ;
1328+ WriteSyncGameState ( writer , objectId , syncingStatesByObjectId . Value , tick ) ;
13271329 ++ stateCount ;
13281330 }
13291331 break ;
@@ -1353,7 +1355,8 @@ private int WriteGameStateFromServer(NetDataWriter writer, LiteNetLibPlayer play
13531355
13541356 private int WriteGameStateFromClient ( NetDataWriter writer , byte syncChannelId , Dictionary < uint , GameStateSyncData > syncingStatesByObjectIds )
13551357 {
1356- writer . PutPackedUInt ( Tick ) ;
1358+ uint tick = Tick ;
1359+ writer . PutPackedUInt ( tick ) ;
13571360 // Reserve position for state length
13581361 int posBeforeWriteStateCount = writer . Length ;
13591362 int stateCount = 0 ;
@@ -1367,7 +1370,7 @@ private int WriteGameStateFromClient(NetDataWriter writer, byte syncChannelId, D
13671370 switch ( syncingStatesByObjectId . Value . StateType )
13681371 {
13691372 case GameStateSyncData . STATE_TYPE_SYNC :
1370- WriteSyncGameState ( writer , objectId , syncingStatesByObjectId . Value ) ;
1373+ WriteSyncGameState ( writer , objectId , syncingStatesByObjectId . Value , tick ) ;
13711374 ++ stateCount ;
13721375 break ;
13731376 }
@@ -1417,7 +1420,7 @@ private void ReadGameStateFromClient(NetDataReader reader)
14171420 }
14181421 }
14191422
1420- private void WriteSpawnGameState ( NetDataWriter writer , LiteNetLibPlayer player , LiteNetLibIdentity identity , GameStateSyncData syncData )
1423+ private void WriteSpawnGameState ( NetDataWriter writer , LiteNetLibPlayer player , LiteNetLibIdentity identity , GameStateSyncData syncData , uint tick )
14211424 {
14221425 writer . Put ( identity . IsSceneObject ) ;
14231426 if ( identity . IsSceneObject )
@@ -1439,7 +1442,7 @@ private void WriteSpawnGameState(NetDataWriter writer, LiteNetLibPlayer player,
14391442 continue ;
14401443 syncData . SyncElements . Add ( syncElement ) ;
14411444 }
1442- WriteSyncElements ( writer , syncData . SyncElements , true ) ;
1445+ WriteSyncElements ( writer , syncData . SyncElements , tick , true ) ;
14431446 syncData . SyncElements . Clear ( ) ;
14441447 }
14451448
@@ -1494,10 +1497,10 @@ private bool ReadSpawnGameState(NetDataReader reader, uint tick)
14941497 return false ;
14951498 }
14961499
1497- private void WriteSyncGameState ( NetDataWriter writer , uint objectId , GameStateSyncData syncData )
1500+ private void WriteSyncGameState ( NetDataWriter writer , uint objectId , GameStateSyncData syncData , uint tick )
14981501 {
14991502 writer . PutPackedUInt ( objectId ) ;
1500- WriteSyncElements ( writer , syncData . SyncElements , false ) ;
1503+ WriteSyncElements ( writer , syncData . SyncElements , tick , false ) ;
15011504 syncData . SyncElements . Clear ( ) ;
15021505 }
15031506
@@ -1523,7 +1526,7 @@ private bool ReadDestroyGameState(NetDataReader reader)
15231526 return true ;
15241527 }
15251528
1526- private void WriteSyncElements ( NetDataWriter writer , ICollection < LiteNetLibSyncElement > elements , bool initial )
1529+ private void WriteSyncElements ( NetDataWriter writer , ICollection < LiteNetLibSyncElement > elements , uint tick , bool initial )
15271530 {
15281531 writer . PutPackedInt ( elements . Count ) ;
15291532 if ( elements . Count == 0 )
@@ -1540,7 +1543,7 @@ private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncE
15401543 writer . Put ( dataLength ) ;
15411544 int posAfterWriteDataLen = writer . Length ;
15421545 // Write sync data
1543- syncElement . WriteSyncData ( initial , writer ) ;
1546+ syncElement . WriteSyncData ( true , tick , initial , writer ) ;
15441547 dataLength = writer . Length - posAfterWriteDataLen ;
15451548 // Put data length
15461549 int posAfterWriteData = writer . Length ;
@@ -1550,7 +1553,7 @@ private void WriteSyncElements(NetDataWriter writer, ICollection<LiteNetLibSyncE
15501553 }
15511554 else
15521555 {
1553- syncElement . WriteSyncData ( initial , writer ) ;
1556+ syncElement . WriteSyncData ( true , tick , initial , writer ) ;
15541557 }
15551558 }
15561559 }
@@ -1572,7 +1575,7 @@ private bool ReadSyncElements(NetDataReader reader, LiteNetLibIdentity identity,
15721575 {
15731576 try
15741577 {
1575- element . ReadSyncData ( tick , initial , reader ) ;
1578+ element . ReadSyncData ( true , tick , initial , reader ) ;
15761579 }
15771580 catch
15781581 {
@@ -1594,7 +1597,7 @@ private bool ReadSyncElements(NetDataReader reader, LiteNetLibIdentity identity,
15941597 {
15951598 try
15961599 {
1597- element . ReadSyncData ( tick , initial , reader ) ;
1600+ element . ReadSyncData ( true , tick , initial , reader ) ;
15981601 }
15991602 catch
16001603 {
0 commit comments