diff --git a/stepmania/src/Transition.cpp b/stepmania/src/Transition.cpp index 6f939a53a4..30c1c32b83 100644 --- a/stepmania/src/Transition.cpp +++ b/stepmania/src/Transition.cpp @@ -63,6 +63,17 @@ bool Transition::EarlyAbortDraw() const return m_State == waiting; } +/* Our parent might send us OnCommand. We do that ourself, because + * we sometimes want to know GetLengthSeconds before StartTransitioning. + * Make sure we don't process OnCommand twice. */ +void Transition::PlayCommand( const CString &sCommandName, Actor *pParent ) +{ + if( sCommandName == "On" ) + return; + + ActorFrame::PlayCommand( sCommandName, pParent ); +} + void Transition::StartTransitioning( ScreenMessage send_when_done ) { if( m_State != waiting ) diff --git a/stepmania/src/Transition.h b/stepmania/src/Transition.h index 4394132cbc..f802c40566 100644 --- a/stepmania/src/Transition.h +++ b/stepmania/src/Transition.h @@ -16,6 +16,7 @@ public: void Load( CString sBGAniDir ); virtual void UpdateInternal( float fDeltaTime ); + virtual void PlayCommand( const CString &sCommandName, Actor *pParent = NULL ); virtual void StartTransitioning( ScreenMessage send_when_done = SM_None ); virtual bool EarlyAbortDraw() const;