Browse Source

prevent interest loss

Zachary Pavlov 15 years ago
parent
commit
2eae5dbcd3

+ 2 - 6
direct/src/distributed/DistributedObjectAI.py

@@ -137,9 +137,7 @@ class DistributedObjectAI(DistributedObjectBase):
                         """
                         """
                 self._DOAI_requestedDelete = False
                 self._DOAI_requestedDelete = False
 
 
-                if self._zoneData is not None:
-                    self._zoneData.destroy()
-                self._zoneData = None
+                self.releaseZoneData()
 
 
                 # Clean up all the pending barriers.
                 # Clean up all the pending barriers.
                 for barrier in self.__barriers.values():
                 for barrier in self.__barriers.values():
@@ -220,9 +218,7 @@ class DistributedObjectAI(DistributedObjectBase):
         self.air.storeObjectLocation(self, parentId, zoneId)
         self.air.storeObjectLocation(self, parentId, zoneId)
         if ((oldParentId != parentId) or
         if ((oldParentId != parentId) or
             (oldZoneId != zoneId)):
             (oldZoneId != zoneId)):
-            if self._zoneData is not None:
-                self._zoneData.destroy()
-                self._zoneData = None
+            self.releaseZoneData()
             messenger.send(self.getZoneChangeEvent(), [zoneId, oldZoneId])
             messenger.send(self.getZoneChangeEvent(), [zoneId, oldZoneId])
             # if we are not going into the quiet zone, send a 'logical' zone
             # if we are not going into the quiet zone, send a 'logical' zone
             # change message
             # change message

+ 8 - 0
direct/src/distributed/DistributedSmoothNodeAI.py

@@ -32,35 +32,43 @@ class DistributedSmoothNodeAI(DistributedNodeAI.DistributedNodeAI,
         self.setH(h)
         self.setH(h)
 
 
     def setSmZ(self, z, t=None):
     def setSmZ(self, z, t=None):
+        messenger.send("posUpdate", [self,None,None,z, None, t])
         self.setZ(z)
         self.setZ(z)
 
 
     def setSmXY(self, x, y, t=None):
     def setSmXY(self, x, y, t=None):
+        messenger.send("posUpdate", [self,x,y,None, None, t])
         self.setX(x)
         self.setX(x)
         self.setY(y)
         self.setY(y)
 
 
     def setSmXZ(self, x, z, t=None):
     def setSmXZ(self, x, z, t=None):
+        messenger.send("posUpdate", [self,x,None,z, None, t])
         self.setX(x)
         self.setX(x)
         self.setZ(z)
         self.setZ(z)
 
 
     def setSmPos(self, x, y, z, t=None):
     def setSmPos(self, x, y, z, t=None):
+        messenger.send("posUpdate", [self,x,y,z, None, t])
         self.setPos(x, y, z)
         self.setPos(x, y, z)
 
 
     def setSmHpr(self, h, p, r, t=None):
     def setSmHpr(self, h, p, r, t=None):
         self.setHpr(h, p, r)
         self.setHpr(h, p, r)
 
 
     def setSmXYH(self, x, y, h, t=None):
     def setSmXYH(self, x, y, h, t=None):
+        messenger.send("posUpdate", [self,x,y,None,None,t])
         self.setX(x)
         self.setX(x)
         self.setY(y)
         self.setY(y)
         self.setH(h)
         self.setH(h)
 
 
     def setSmXYZH(self, x, y, z, h, t=None):
     def setSmXYZH(self, x, y, z, h, t=None):
+        messenger.send("posUpdate", [self,x,y,z,None,t])
         self.setPos(x, y, z)
         self.setPos(x, y, z)
         self.setH(h)
         self.setH(h)
 
 
     def setSmPosHpr(self, x, y, z, h, p, r, t=None):
     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)
         self.setPosHpr(x, y, z, h, p, r)
 
 
     def setSmPosHprL(self, l, x, y, z, h, p, r, t=None):
     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)
         self.setPosHpr(x, y, z, h, p, r)
 
 
     def clearSmoothing(self, bogus = None):
     def clearSmoothing(self, bogus = None):

+ 1 - 0
direct/src/distributed/InterestWatcher.py

@@ -43,6 +43,7 @@ class InterestWatcher(DirectObject):
                 logFunc = self.notify.warning
                 logFunc = self.notify.warning
             logFunc('%s: empty interest-complete set' % self.getName())
             logFunc('%s: empty interest-complete set' % self.getName())
             self.destroy()
             self.destroy()
+            messenger.send(self.getDoneEvent())
         else:
         else:
             self.accept(self.getDoneEvent(), self.destroy)
             self.accept(self.getDoneEvent(), self.destroy)