From e7391fd489c710ffc2f5a2ba0354ee417408b245 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Thu, 1 May 2008 04:13:02 +0000 Subject: [PATCH] don't allow DelayDeletes outside of generated states --- direct/src/distributed/DistributedObject.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/direct/src/distributed/DistributedObject.py b/direct/src/distributed/DistributedObject.py index af5ae61d2b..e83083196a 100644 --- a/direct/src/distributed/DistributedObject.py +++ b/direct/src/distributed/DistributedObject.py @@ -15,6 +15,16 @@ ESDisabled = 4 # values here and lower are considered "disabled" ESGenerating = 5 # values here and greater are considered "generated" ESGenerated = 6 +# update this table if the values above change +ESNum2Str = { + ESNew: 'ESNew', + ESDeleted: 'ESDeleted', + ESDisabling: 'ESDisabling', + ESDisabled: 'ESDisabed', + ESGenerating: 'ESGenerating', + ESGenerated: 'ESGenerated', + } + class DistributedObject(DistributedObjectBase): """ The Distributed Object class is the base class for all network based @@ -166,6 +176,10 @@ class DistributedObject(DistributedObjectBase): def acquireDelayDelete(self, name): # Also see DelayDelete.py + if self.activeState not in (ESGenerating, ESGenerated): + self.notify.error( + 'cannot acquire DelayDelete "%s" on %s because it is in state %s' % ( + name, self.__class__.__name__, ESNum2Str[self.activeState])) if self.getDelayDeleteCount() == 0: self.cr._addDelayDeletedDO(self)