struct IAnimationStateNode { uint32 flags; };
IAnimationStateNode.h
uint32 flags;
virtual ~IAnimationStateNode();
virtual bool CanLeaveState(SAnimationStateData& data) = 0;
Verify that this state can actually leave yet
virtual void DebugDraw(SAnimationStateData& data, IRenderer * pRenderer, int x, int& y, int yIncrement) = 0;
virtual void EnteredState(SAnimationStateData& data) = 0;
Called after EnterState, when at least one state node has returned "Entered"
virtual void EnterState(SAnimationStateData& data, bool dueToRollback) = 0;
Called after instantiation, the state should perform initialization based on data
virtual void GetCompletionTimes(SAnimationStateData& data, CTimeValue stateStartTime, CTimeValue& mustRunToTime, CTimeValue& requeryTime) = 0;
What is the first time that this node will allow transitioning to another state (or 0)
virtual IAnimationStateNodeFactory * GetFactory() = 0;
virtual void GetMemoryUsage(ICrySizer * pSizer) const = 0;
virtual EHasEnteredState HasEnteredState(SAnimationStateData& data) = 0;
Called after EnterState... determines when the state has really entered
IAnimationStateNode(uint32 f = 0);
virtual void LeaveState(SAnimationStateData& data) = 0;
Called when the state has completed, this function should cleanup anything in data
virtual void LeftState(SAnimationStateData& data, bool wasEntered) = 0;
Called after some state has had EnteredState called on it - this state node is then no longer needed (call delete this; and cleanup)
virtual void Paused(SAnimationStateData& data, bool paused, float fOverrideTransTime = -1.0f);
[*DavidR | 8/Feb/2010] ToDo: make this method pure virtual by adding implementation for every AnimationStateNode
Called when the AnimationGraph is paused/resumed. The fOverrideTransTime parameter can be used for overriding the default transition time on nodes that use transition times (like AGAnimation, AGAdditive, etc.) just in case the system that pauses the AG needs it) the default value -1.0f nullifies its effect
void SerializeAsFile_NodeBase(bool reading, AG_FILE * file);
virtual void Update(SAnimationStateData& data);
If we have eASNF_Update in flags, this will be called every frame