fix tween overflow in Actor commands that call themself

This commit is contained in:
Chris Danford
2005-01-16 04:22:43 +00:00
parent 82ed283ac0
commit f2060969de
3 changed files with 8 additions and 3 deletions
+5 -2
View File
@@ -387,6 +387,9 @@ void Actor::BeginTweening( float time, TweenType tt )
{
// initialize the new TS from the last TS in the list
TS = m_TweenStates[m_TweenStates.size()-2];
// don't inherit the queued state's command
TS.command.Clear();
}
else
{
@@ -908,10 +911,10 @@ void Actor::Sleep( float time )
BeginTweening( 0, TWEEN_LINEAR );
}
void Actor::QueueCommand( Command command )
void Actor::QueueCommand( const Command& command )
{
BeginTweening( 0, TWEEN_LINEAR );
DestTweenState().command = command;
DestTweenState().command = command;
}
void Actor::PlayCommand( const CString &sCommandName )
+1 -1
View File
@@ -182,7 +182,7 @@ public:
void BeginTweening( float time, TweenType tt = TWEEN_LINEAR );
void StopTweening();
void Sleep( float time );
void QueueCommand( Command command );
void QueueCommand( const Command& command );
virtual void FinishTweening();
virtual void HurryTweening( float factor );
// Let ActorFrame and BGAnimation override
+2
View File
@@ -14,6 +14,8 @@ public:
CString GetName() const; // the command name is the first argument in all-lowercase
void Clear() { m_vsArgs.clear(); }
struct Arg
{
CString s;