Browse Source

log and send server event if DOAI is created with parentId of 4294967295 (32-bit -1, unsigned)

Darren Ranalli 18 years ago
parent
commit
df4b19725c

+ 9 - 0
direct/src/distributed/DistributedObjectAI.py

@@ -198,11 +198,20 @@ class DistributedObjectAI(DistributedObjectBase, EnforcesCalldowns):
     def d_setLocation(self, parentId, zoneId):
         self.air.sendSetLocation(self, parentId, zoneId)
 
+    def checkFFparentId(self, parentId):
+        if parentId == 4294967295:
+            msg = 'DOAI.setLocation, parentId == 4294967295, doId = %s, class = %s, stack = %s' % (
+                self.doId, self.__class__.__name__, PythonUtil.StackTrace().compact())
+            print msg
+            self.air.writeServerEvent('parentIdFFFFFFFF', self.doId, msg)
+
     def setLocation(self, parentId, zoneId):
         # Prevent Duplicate SetLocations for being Called
         if (self.parentId == parentId) and (self.zoneId == zoneId):
             return
 
+        self.checkFFparentId(parentId)
+
         oldParentId = self.parentId
         oldZoneId = self.zoneId
         self.air.storeObjectLocation(self, parentId, zoneId)

+ 2 - 0
direct/src/distributed/DoCollectionManager.py

@@ -241,6 +241,8 @@ class DoCollectionManager:
             #assert len(self._doHierarchy) == len(self.doId2do)
 
             # Set the new parent and zone on the object
+            if hasattr(object, 'checkFFparentId'):
+                object.checkFFparentId(parentId)
             object.parentId = parentId
             object.zoneId = zoneId