From 155acbdf84d2be3a4eddf58b6e8d0a1064b5cfba Mon Sep 17 00:00:00 2001 From: David Rose Date: Sat, 24 Nov 2001 23:36:16 +0000 Subject: [PATCH] StateData functions should return something useful --- direct/src/fsm/StateData.py | 58 ++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/direct/src/fsm/StateData.py b/direct/src/fsm/StateData.py index a282905575..60b6bd7ba8 100644 --- a/direct/src/fsm/StateData.py +++ b/direct/src/fsm/StateData.py @@ -22,44 +22,68 @@ class StateData(DirectObject): def enter(self): """enter(self) + + Enters the StateData. This makes it active in whatever sense + this applies. Returns true if this is a change (i.e. it was + not previously entered), or false if this is the same (i.e. it + was already entered). + """ - # Use isEntered to avoid redundant entry work - if self.isEntered == 1: - return None + if self.isEntered: + return 0 + + self.load() self.isEntered = 1 - # Use isLoaded to avoid redundant loading - if self.isLoaded == 0: - self.load() self.notify.debug('enter()') - return None + return 1 def exit(self): """exit(self) + + Exits the StateData. Returns true if this is a change + (i.e. it was previously entered), or false if this is the same + (i.e. it was already exited). """ - if self.isEntered == 0: - return None + if not self.isEntered: + return 0 self.isEntered = 0 self.notify.debug('exit()') - return None + return 1 def load(self): """load(self) + + Loads the StateData. This loads whatever assets are needed + from disk, and otherwise prepares the StateData for being + entered, without actually entering it. Returns true if this + is a change (i.e. it was not already loaded), or false if this + is the same (i.e. it was previously loaded). + """ - if self.isLoaded == 1: - return None + if self.isLoaded: + return 0 + self.isLoaded = 1 self.notify.debug('load()') - return None + return 1 def unload(self): """unload(self) + + Unloads the StateData. This frees whatever assets were loaded + by load(), and generally makes the memory usage for this thing + be as small as possible. Some StateData-derived classes can + load and unload repeatedly; others are useless once they have + been unloaded. + """ - if self.isLoaded == 0: - return None - self.isLoaded = 0 + if not self.isLoaded: + return 0 + self.exit() + self.isLoaded = 0 self.notify.debug('unload()') - return None + return 1 def getDoneStatus(self): """getDoneStatus(self)