diff --git a/stepmania/src/GameCommand.cpp b/stepmania/src/GameCommand.cpp index 91e9f03840..5351e61217 100644 --- a/stepmania/src/GameCommand.cpp +++ b/stepmania/src/GameCommand.cpp @@ -62,6 +62,7 @@ void GameCommand::Init() m_sUrl = ""; m_bInsertCredit = false; + m_bClearCredits = false; m_bStopMusic = false; m_bApplyDefaultOptions = false; } @@ -374,6 +375,11 @@ void GameCommand::LoadOne( const Command& cmd ) m_bInsertCredit = true; } + else if( sName == "clearcredits" ) + { + m_bClearCredits = true; + } + else if( sName == "stopmusic" ) { m_bStopMusic = true; @@ -754,6 +760,10 @@ void GameCommand::ApplySelf( const vector &vpns ) const { StepMania::InsertCredit(); } + + if( m_bClearCredits ) + StepMania::ClearCredits(); + if( m_bApplyDefaultOptions ) { // applying options affects only the current stage diff --git a/stepmania/src/GameCommand.h b/stepmania/src/GameCommand.h index 26922eeafe..4b258d1768 100644 --- a/stepmania/src/GameCommand.h +++ b/stepmania/src/GameCommand.h @@ -82,6 +82,7 @@ public: RString m_sUrl; bool m_bInsertCredit; + bool m_bClearCredits; bool m_bStopMusic; bool m_bApplyDefaultOptions; diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index 49f1aa15b6..6dba308c72 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -1198,6 +1198,14 @@ void StepMania::InsertCredit() InsertCoin( PREFSMAN->m_iCoinsPerCredit, false ); } +void StepMania::ClearCredits() +{ + LOG->Trace("%i coins cleared", GAMESTATE->m_iCoins ); + GAMESTATE->m_iCoins = 0; + SCREENMAN->PlayInvalidSound(); + MESSAGEMAN->Broadcast( Message_CoinInserted ); +} + /* Returns true if the key has been handled and should be discarded, false if * the key should be sent on to screens. */ static LocalizedString SERVICE_SWITCH_PRESSED ( "StepMania", "Service switch pressed" ); diff --git a/stepmania/src/StepMania.h b/stepmania/src/StepMania.h index 5b6b297b2a..6e19867bd1 100644 --- a/stepmania/src/StepMania.h +++ b/stepmania/src/StepMania.h @@ -19,6 +19,7 @@ namespace StepMania void InsertCoin( int iNum = 1, bool bCountInBookkeeping = true ); void InsertCredit(); + void ClearCredits(); void GetPreferredVideoModeParams( VideoModeParams ¶msOut ); }