Browse Source

cleaner handling of load/enter/exit/unload

Joe Shochet 21 years ago
parent
commit
b1dc62cbd7
1 changed files with 6 additions and 5 deletions
  1. 6 5
      direct/src/fsm/StateData.py

+ 6 - 5
direct/src/fsm/StateData.py

@@ -28,8 +28,9 @@ class StateData(DirectObject):
         """
         """
         if self.isEntered:
         if self.isEntered:
             return 0
             return 0
-        
-        self.load()
+        if not self.isLoaded:
+            self.notify.warning("entered StateData before it was loaded")
+            self.load()
         self.isEntered = 1
         self.isEntered = 1
         StateData.notify.debug('enter()')
         StateData.notify.debug('enter()')
         return 1
         return 1
@@ -56,7 +57,6 @@ class StateData(DirectObject):
         """
         """
         if self.isLoaded:
         if self.isLoaded:
             return 0
             return 0
-
         self.isLoaded = 1
         self.isLoaded = 1
         StateData.notify.debug('load()')
         StateData.notify.debug('load()')
         return 1
         return 1
@@ -71,8 +71,9 @@ class StateData(DirectObject):
         """
         """
         if not self.isLoaded:
         if not self.isLoaded:
             return 0
             return 0
-
-        self.exit()
+        if self.isEntered:
+            self.notify.warning("unloaded StateData before it was exited")
+            self.exit()
         self.isLoaded = 0
         self.isLoaded = 0
         StateData.notify.debug('unload()')
         StateData.notify.debug('unload()')
         return 1
         return 1