Browse Source

prevent parentMgr crashes

Darren Ranalli 16 years ago
parent
commit
dbc4e3edf4

+ 2 - 1
direct/src/distributed/DistributedNode.py

@@ -106,7 +106,8 @@ class DistributedNode(DistributedObject.DistributedObject, NodePath):
         justGotRequiredParentAsStr = ((not self.isGenerated()) and
                                       self.gotStringParentToken)
         if not justGotRequiredParentAsStr:
-            self.do_setParent(parentToken)
+            if parentToken != 0:
+                self.do_setParent(parentToken)
         self.gotStringParentToken = 0
 
     def do_setParent(self, parentToken):

+ 5 - 1
direct/src/distributed/DistributedNodeAI.py

@@ -66,7 +66,11 @@ class DistributedNodeAI(DistributedObjectAI.DistributedObjectAI, NodePath):
 
     def setParent(self, parentToken):
         self.notify.debug('setParent(%s): %s' % (self.doId, parentToken))
-        self.do_setParent(parentToken)
+        if parentToken == 0:
+            senderId = self.air.getAvatarIdFromSender()
+            self.air.writeServerEvent('suspicious', senderId, 'setParent(0)')
+        else:
+            self.do_setParent(parentToken)
 
     def do_setParent(self, parentToken):
         self.getParentMgr().requestReparent(self, parentToken)