From 2eae5dbcd3b8c3fd9a4194190c1aa9291b5b0b17 Mon Sep 17 00:00:00 2001 From: Zachary Pavlov Date: Thu, 13 May 2010 20:27:12 +0000 Subject: [PATCH] prevent interest loss --- direct/src/distributed/DistributedObjectAI.py | 8 ++------ direct/src/distributed/DistributedSmoothNodeAI.py | 8 ++++++++ direct/src/distributed/InterestWatcher.py | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/direct/src/distributed/DistributedObjectAI.py b/direct/src/distributed/DistributedObjectAI.py index ff9f041a29..dd746223c6 100644 --- a/direct/src/distributed/DistributedObjectAI.py +++ b/direct/src/distributed/DistributedObjectAI.py @@ -137,9 +137,7 @@ class DistributedObjectAI(DistributedObjectBase): """ self._DOAI_requestedDelete = False - if self._zoneData is not None: - self._zoneData.destroy() - self._zoneData = None + self.releaseZoneData() # Clean up all the pending barriers. for barrier in self.__barriers.values(): @@ -220,9 +218,7 @@ class DistributedObjectAI(DistributedObjectBase): self.air.storeObjectLocation(self, parentId, zoneId) if ((oldParentId != parentId) or (oldZoneId != zoneId)): - if self._zoneData is not None: - self._zoneData.destroy() - self._zoneData = None + self.releaseZoneData() messenger.send(self.getZoneChangeEvent(), [zoneId, oldZoneId]) # if we are not going into the quiet zone, send a 'logical' zone # change message diff --git a/direct/src/distributed/DistributedSmoothNodeAI.py b/direct/src/distributed/DistributedSmoothNodeAI.py index 968a7ccfa4..5bd1730e13 100755 --- a/direct/src/distributed/DistributedSmoothNodeAI.py +++ b/direct/src/distributed/DistributedSmoothNodeAI.py @@ -32,35 +32,43 @@ class DistributedSmoothNodeAI(DistributedNodeAI.DistributedNodeAI, self.setH(h) def setSmZ(self, z, t=None): + messenger.send("posUpdate", [self,None,None,z, None, t]) self.setZ(z) def setSmXY(self, x, y, t=None): + messenger.send("posUpdate", [self,x,y,None, None, t]) self.setX(x) self.setY(y) def setSmXZ(self, x, z, t=None): + messenger.send("posUpdate", [self,x,None,z, None, t]) self.setX(x) self.setZ(z) def setSmPos(self, x, y, z, t=None): + messenger.send("posUpdate", [self,x,y,z, None, t]) self.setPos(x, y, z) def setSmHpr(self, h, p, r, t=None): self.setHpr(h, p, r) def setSmXYH(self, x, y, h, t=None): + messenger.send("posUpdate", [self,x,y,None,None,t]) self.setX(x) self.setY(y) self.setH(h) def setSmXYZH(self, x, y, z, h, t=None): + messenger.send("posUpdate", [self,x,y,z,None,t]) self.setPos(x, y, z) self.setH(h) def setSmPosHpr(self, x, y, z, h, p, r, t=None): + messenger.send("posUpdate", [self,x,y,z,None,t]) self.setPosHpr(x, y, z, h, p, r) def setSmPosHprL(self, l, x, y, z, h, p, r, t=None): + messenger.send("posUpdate", [self,x,y,z,l,t]) self.setPosHpr(x, y, z, h, p, r) def clearSmoothing(self, bogus = None): diff --git a/direct/src/distributed/InterestWatcher.py b/direct/src/distributed/InterestWatcher.py index 2d59d6d99c..c82b3b86a9 100755 --- a/direct/src/distributed/InterestWatcher.py +++ b/direct/src/distributed/InterestWatcher.py @@ -43,6 +43,7 @@ class InterestWatcher(DirectObject): logFunc = self.notify.warning logFunc('%s: empty interest-complete set' % self.getName()) self.destroy() + messenger.send(self.getDoneEvent()) else: self.accept(self.getDoneEvent(), self.destroy)