diff --git a/stepmania/src/CodeDetector.cpp b/stepmania/src/CodeDetector.cpp index 49cc9c3f6b..8174f0de46 100644 --- a/stepmania/src/CodeDetector.cpp +++ b/stepmania/src/CodeDetector.cpp @@ -51,17 +51,18 @@ const int MAX_CODE_LENGTH = 10; struct CodeCacheItem { int iNumButtons; GameButton buttons[MAX_CODE_LENGTH]; + float fMaxSecondsBack; }; CodeCacheItem g_CodeCacheItems[CodeDetector::NUM_CODES]; bool CodeDetector::EnteredCode( GameController controller, Code code ) { - if( g_CodeCacheItems[code].iNumButtons > 0 ) - if( INPUTQUEUE->MatchesPattern(controller, g_CodeCacheItems[code].buttons, g_CodeCacheItems[code].iNumButtons) ) - return true; + if( g_CodeCacheItems[code].iNumButtons == 0 ) + return false; - return false; + const CodeCacheItem& item = g_CodeCacheItems[code]; + return INPUTQUEUE->MatchesPattern(controller, item.buttons, item.iNumButtons, item.fMaxSecondsBack); } void RefreshCacheItem( int iIndex ) @@ -104,6 +105,8 @@ void RefreshCacheItem( int iIndex ) } } + item.fMaxSecondsBack = item.iNumButtons*0.4f; + // if we make it here, we found all the buttons in the code } diff --git a/stepmania/src/InputQueue.cpp b/stepmania/src/InputQueue.cpp index 06dcf42f60..d0cafcc624 100644 --- a/stepmania/src/InputQueue.cpp +++ b/stepmania/src/InputQueue.cpp @@ -67,9 +67,6 @@ bool InputQueue::MatchesPattern( const GameController c, const MenuButton* butto bool InputQueue::MatchesPattern( const GameController c, const GameButton* button_sequence, const int iNumButtons, float fMaxSecondsBack ) { - if( fMaxSecondsBack == -1 ) - fMaxSecondsBack = 0.4f + iNumButtons*0.15f; - float fOldestTimeAllowed = RageTimer::GetTimeSinceStart() - fMaxSecondsBack; int sequence_index = iNumButtons-1; // count down diff --git a/stepmania/src/InputQueue.h b/stepmania/src/InputQueue.h index f59fbabcac..3f9b7974e3 100644 --- a/stepmania/src/InputQueue.h +++ b/stepmania/src/InputQueue.h @@ -23,8 +23,8 @@ public: InputQueue(); void RememberInput( GameInput ); - bool MatchesPattern( const GameController c, const GameButton* button_sequence, const int iNumButtons, float fMaxSecondsBack = -1 ); - bool MatchesPattern( const GameController c, const MenuButton* button_sequence, const int iNumButtons, float fMaxSecondsBack = -1 ); + bool MatchesPattern( const GameController c, const GameButton* button_sequence, const int iNumButtons, float fMaxSecondsBack ); + bool MatchesPattern( const GameController c, const MenuButton* button_sequence, const int iNumButtons, float fMaxSecondsBack ); protected: struct GameButtonAndTime