From da1778d0540c0f343490d5cbc21e0e13fa8df809 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Thu, 22 Nov 2007 02:33:08 +0000 Subject: [PATCH] support for non-DC updates in deferred-generate update queue --- direct/src/distributed/ClientRepositoryBase.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/direct/src/distributed/ClientRepositoryBase.py b/direct/src/distributed/ClientRepositoryBase.py index 52e65c9f3a..588f71878a 100644 --- a/direct/src/distributed/ClientRepositoryBase.py +++ b/direct/src/distributed/ClientRepositoryBase.py @@ -11,6 +11,7 @@ import time from ClockDelta import * from PyDatagram import PyDatagram from PyDatagramIterator import PyDatagramIterator +import types class ClientRepositoryBase(ConnectionRepository): """ @@ -246,10 +247,17 @@ class ClientRepositoryBase(ConnectionRepository): self.lastGenerate = globalClock.getFrameTime() for dg, di in updates: - # ovUpdated is set to True since its OV - # is assumbed to have occured when the - # deferred update was originally received - self.__doUpdate(doId, di, True) + # non-DC updates that need to be played back in-order are + # stored as (msgType, (dg, di)) + if type(di) is types.TupleType: + msgType = dg + dg, di = di + self.replayDeferredGenerate(msgType, (dg, di)) + else: + # ovUpdated is set to True since its OV + # is assumbed to have occured when the + # deferred update was originally received + self.__doUpdate(doId, di, True) else: self.notify.warning("Ignoring deferred message %s" % (msgType))