diff --git a/stepmania/src/Actor.cpp b/stepmania/src/Actor.cpp index 099c2e8533..a0da41898c 100644 --- a/stepmania/src/Actor.cpp +++ b/stepmania/src/Actor.cpp @@ -939,8 +939,7 @@ void Actor::AddCommand( const CString &sCmdName, apActorCommands apac ) CString sMessage; if( GetMessageNameFromCommandName(sCmdName, sMessage) ) { - MESSAGEMAN->Subscribe( this, sMessage ); - m_vsSubscribedTo.push_back( sMessage ); + SubscribeToMessage( sMessage ); m_mapNameToCommands[sMessage] = apac; // sCmdName w/o "Message" at the end } else @@ -975,6 +974,11 @@ void Actor::HandleMessage( const CString& sMessage ) PlayCommand( sMessage ); } +void Actor::SubscribeToMessage( const CString &sMessageName ) +{ + MESSAGEMAN->Subscribe( this, sMessageName ); + m_vsSubscribedTo.push_back( sMessageName ); +} /* * (c) 2001-2004 Chris Danford diff --git a/stepmania/src/Actor.h b/stepmania/src/Actor.h index add4dec1de..72f3022497 100644 --- a/stepmania/src/Actor.h +++ b/stepmania/src/Actor.h @@ -330,6 +330,7 @@ public: virtual void RunCommands2( const LuaReference& cmds, Actor *pParent ); void RunCommands( const apActorCommands& cmds ) { this->RunCommands( *cmds ); } // convenience void RunCommands2( const apActorCommands& cmds, Actor *pParent ) { this->RunCommands2( *cmds, pParent ); } // convenience + void SubscribeToMessage( const CString &sMessageName ); // will automatically unsubscribe static float GetCommandsLengthSeconds( const LuaReference& cmds ); static float GetCommandsLengthSeconds( const apActorCommands& cmds ) { return GetCommandsLengthSeconds( *cmds ); } // convenience