From f48e9e530baa4f3ebda2ce5f7222683f9b76953b Mon Sep 17 00:00:00 2001 From: Justin Butler Date: Tue, 20 Sep 2005 23:58:25 +0000 Subject: [PATCH] Fix for teleporting out of a world and clearing visAvatar from all world grids. --- direct/src/distributed/DistributedCartesianGrid.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/direct/src/distributed/DistributedCartesianGrid.py b/direct/src/distributed/DistributedCartesianGrid.py index 6e977061ce..376e79b3c4 100755 --- a/direct/src/distributed/DistributedCartesianGrid.py +++ b/direct/src/distributed/DistributedCartesianGrid.py @@ -75,7 +75,7 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, self.visContext = self.cr.addInterest(self.getDoId(), 0, self.uniqueName("visibility")) taskMgr.add(self.processVisibility, self.taskName("processVisibility")) - def stopProcessVisibility(self): + def stopProcessVisibility(self,clearAll=False): taskMgr.remove(self.taskName("processVisibility")) if self.visContext is not None: self.cr.removeInterest(self.visContext) @@ -83,6 +83,11 @@ class DistributedCartesianGrid(DistributedNode.DistributedNode, self.visAvatar = None self.visZone = None + # sometimes we also need to remove vis avatar from + # my parent if it is also a grid + if (clearAll): + self.cr.doId2do[self.parentId].worldGrid.stopProcessVisibility() + def processVisibility(self, task): pos = self.visAvatar.getPos(self) # Check to make sure our x and y are positive