diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index e7f354d89e..68d32d4f4c 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -14,6 +14,11 @@ sm-ssc v1.0 Release Candidate 2 | 201007xx -------------------------------------------------------------------------------- (work in progress, it's not out yet [hence the "xx" above].) +20100706 +-------- +* [ScreenSelectMusic] add a code for closing the current folder from any + location (a la DDR X2). + 20100705 -------- * [Player] add RequireStepOnMines metric. This allows DDR's Shock Arrows to diff --git a/src/CodeDetector.cpp b/src/CodeDetector.cpp index 403f6eb51a..7584739ec2 100644 --- a/src/CodeDetector.cpp +++ b/src/CodeDetector.cpp @@ -51,6 +51,7 @@ const char *CodeNames[] = { "SaveScreenshot2", "CancelAllPlayerOptions", "BackInEventMode", + "CloseCurrentFolder", }; XToString( Code ); @@ -76,6 +77,11 @@ void CodeDetector::RefreshCacheItems( RString sClass ) } } +bool CodeDetector::EnteredCloseFolder( GameController controller ) +{ + return EnteredCode(controller,CODE_CLOSE_CURRENT_FOLDER); +} + bool CodeDetector::EnteredNextGroup( GameController controller ) { return EnteredCode(controller,CODE_NEXT_GROUP); diff --git a/src/CodeDetector.h b/src/CodeDetector.h index 58d2647cb1..5458d1f1b3 100644 --- a/src/CodeDetector.h +++ b/src/CodeDetector.h @@ -45,6 +45,7 @@ enum Code { CODE_SAVE_SCREENSHOT2, CODE_CANCEL_ALL_PLAYER_OPTIONS, CODE_BACK_IN_EVENT_MODE, + CODE_CLOSE_CURRENT_FOLDER, NUM_Code // leave this at the end }; @@ -60,6 +61,7 @@ public: static bool EnteredCode( GameController controller, Code code ); static bool EnteredPrevGroup( GameController controller ); static bool EnteredNextGroup( GameController controller ); + static bool EnteredCloseFolder( GameController controller ); // todo: move to PlayerOptions.h -aj void ChangeScrollSpeed( GameController controller, bool bIncrement ); diff --git a/src/ScreenSelectMusic.cpp b/src/ScreenSelectMusic.cpp index 912d9d2ca7..9d09a2bcd3 100644 --- a/src/ScreenSelectMusic.cpp +++ b/src/ScreenSelectMusic.cpp @@ -739,6 +739,18 @@ bool ScreenSelectMusic::DetectCodes( const InputEventPlus &input ) AfterMusicChange(); } } + else if( CodeDetector::EnteredCloseFolder(input.GameI.controller) ) + { + if( GAMESTATE->IsAnExtraStageAndSelectionLocked() ) + m_soundLocked.Play(); + else + { + RString sCurSection = m_MusicWheel.GetSelectedSection(); + m_MusicWheel.SelectSection(sCurSection); + m_MusicWheel.SetOpenSection(""); + AfterMusicChange(); + } + } else { return false;