diff --git a/stepmania/src/StageStats.cpp b/stepmania/src/StageStats.cpp index 591b7c8432..5f6ba582ed 100644 --- a/stepmania/src/StageStats.cpp +++ b/stepmania/src/StageStats.cpp @@ -21,8 +21,12 @@ StageStats::StageStats() { memset( this, 0, sizeof(StageStats) ); for( int p=0; pTrace("FullCombo(%i): %i != 1", pn, ComboList[pn].size() ); + return false; + } + + const float ComboStart = ComboList[pn][0].start; + const float ComboEnd = ComboList[pn][0].start + ComboList[pn][0].size; + + const bool ComboStartsAtBeginning = fabs( ComboStart - fFirstPos[pn] ) < 0.001f; + const bool ComboEndsAtEnd = fabs( ComboEnd - fLastPos[pn] ) < 0.001f; + + LOG->Trace("FullCombo(%i): %f .. %f, %f .. %f, %i, %i", + pn, ComboStart, ComboEnd, fFirstPos[pn], fLastPos[pn], ComboStartsAtBeginning, ComboEndsAtEnd ); + return ComboStartsAtBeginning && ComboEndsAtEnd; +} + diff --git a/stepmania/src/StageStats.h b/stepmania/src/StageStats.h index a3e52d1f60..0540b4dc78 100644 --- a/stepmania/src/StageStats.h +++ b/stepmania/src/StageStats.h @@ -76,7 +76,9 @@ struct StageStats Combo_t(): start(-1), size(-1), cnt(-1) { } bool IsZero() const { return start < 0; } }; + float fFirstPos[NUM_PLAYERS], fLastPos[NUM_PLAYERS]; + bool FullCombo( PlayerNumber pn ) const; void UpdateComboList( PlayerNumber pn, float pos ); void Finish();