[Orxonox-commit 2639] r7344 - code/branches/network3/src/libraries/network/packet

scheusso at orxonox.net scheusso at orxonox.net
Fri Sep 3 23:54:30 CEST 2010


Author: scheusso
Date: 2010-09-03 23:54:30 +0200 (Fri, 03 Sep 2010)
New Revision: 7344

Modified:
   code/branches/network3/src/libraries/network/packet/Gamestate.cc
Log:
fixed a bug in gamestate diff which wasted bandwidth


Modified: code/branches/network3/src/libraries/network/packet/Gamestate.cc
===================================================================
--- code/branches/network3/src/libraries/network/packet/Gamestate.cc	2010-09-03 21:30:24 UTC (rev 7343)
+++ code/branches/network3/src/libraries/network/packet/Gamestate.cc	2010-09-03 21:54:30 UTC (rev 7344)
@@ -372,7 +372,7 @@
   //       }
   uint32_t objectOffset = SynchronisableHeader::getSize(); // offset inside the object in the origData and baseData
   // Check whether the whole object stayed the same
-  if( memcmp( origData+objectOffset, newData+objectOffset, objectHeader.getDataSize()) == 0 )
+  if( memcmp( origData+objectOffset, baseData+objectOffset, objectHeader.getDataSize()) == 0 )
   {
     //         COUT(4) << "skip object" << Synchronisable::getSynchronisable(h.getObjectID())->getIdentifier()->getName() << endl;
     origData += objectOffset + objectHeader.getDataSize(); // skip the whole object
@@ -429,6 +429,7 @@
     h2.setDiffed(true);
     h2.setDataSize(newObjectOffset-SynchronisableHeaderLight::getSize());
     assert(objectOffset == objectHeader.getDataSize()+SynchronisableHeader::getSize());
+    assert(h2.getDataSize()>0);
     origData += objectOffset;
     //         baseOffset += temp + h.getDataSize()+SynchronisableHeader::getSize() - baseData;
     //baseOffset += objectOffset;




More information about the Orxonox-commit mailing list