From a3702b8a8f1be8bac56f1cf9fa991a22904081cb Mon Sep 17 00:00:00 2001 From: Greg Wiatroski Date: Fri, 22 Apr 2005 21:23:57 +0000 Subject: [PATCH] Put some bullet proofing around cleanup and enable funcs --- direct/src/particles/ParticleEffect.py | 32 +++++++++++++++----------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/direct/src/particles/ParticleEffect.py b/direct/src/particles/ParticleEffect.py index 88f7a16872..840a2d6e9f 100644 --- a/direct/src/particles/ParticleEffect.py +++ b/direct/src/particles/ParticleEffect.py @@ -36,13 +36,17 @@ class ParticleEffect(NodePath): def cleanup(self): self.removeNode() self.disable() - for f in self.forceGroupDict.values(): - f.cleanup() - for p in self.particlesDict.values(): - p.cleanup() + if hasattr(self, 'forceGroupDict'): + for f in self.forceGroupDict.values(): + f.cleanup() + del self.forceGroupDict + if hasattr(self, 'particlesDict'): + for p in self.particlesDict.values(): + p.cleanup() + del self.particlesDict del self.renderParent - del self.particlesDict - del self.forceGroupDict + + def reset(self): self.removeAllForces() @@ -52,14 +56,16 @@ class ParticleEffect(NodePath): def enable(self): """enable()""" - if (self.renderParent != None): + # band-aid added for client crash - grw + if hasattr(self, 'forceGroupDict') and hasattr(self, 'particlesGroupDict'): + if (self.renderParent != None): + for p in self.particlesDict.values(): + p.setRenderParent(self.renderParent.node()) + for f in self.forceGroupDict.values(): + f.enable() for p in self.particlesDict.values(): - p.setRenderParent(self.renderParent.node()) - for f in self.forceGroupDict.values(): - f.enable() - for p in self.particlesDict.values(): - p.enable() - self.fEnabled = 1 + p.enable() + self.fEnabled = 1 def disable(self): """disable()"""