diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index 0008881118..19e376448a 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -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 ) diff --git a/stepmania/src/Actor.h b/stepmania/src/Actor.h index 7ed6883a09..b8733ea5a5 100644 --- a/stepmania/src/Actor.h +++ b/stepmania/src/Actor.h @@ -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 diff --git a/stepmania/src/Command.h b/stepmania/src/Command.h index 61532d1f8e..a30a1d7d8e 100644 --- a/stepmania/src/Command.h +++ b/stepmania/src/Command.h @@ -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;