diff --git a/stepmania/src/GraphDisplay.cpp b/stepmania/src/GraphDisplay.cpp index 224beb81e5..71d96395f1 100644 --- a/stepmania/src/GraphDisplay.cpp +++ b/stepmania/src/GraphDisplay.cpp @@ -81,11 +81,11 @@ void GraphDisplay::LoadFromStageStats( const StageStats &ss, const PlayerStageSt this->AddChild( *p ); } - // - // Search for the min life record - // - if( !pss.bFailed ) + if( !pss.bFailed && !pss.bGaveUp ) { + // + // Search for the min life record to show "Just Barely!" + // float fMinLifeSoFar = 1.0f; float fMinLifeSoFarAtSecond = 0; FOREACHM_CONST( float, float, pss.fLifeRecord, i ) diff --git a/stepmania/src/PlayerStageStats.cpp b/stepmania/src/PlayerStageStats.cpp index 98b6e561db..997dc0e411 100644 --- a/stepmania/src/PlayerStageStats.cpp +++ b/stepmania/src/PlayerStageStats.cpp @@ -19,7 +19,9 @@ void PlayerStageStats::Init() vpPlayedSteps.clear(); vpPossibleSteps.clear(); fAliveSeconds = 0; - bFailed = bFailedEarlier = false; + bFailed = false; + bFailedEarlier = false; + bGaveUp = false; iPossibleDancePoints = iCurPossibleDancePoints = iActualDancePoints = 0; iCurCombo = iMaxCombo = iCurMissCombo = iScore = iBonus = iMaxScore = iCurMaxScore = 0; iSongsPassed = iSongsPlayed = 0; @@ -46,6 +48,7 @@ void PlayerStageStats::AddStats( const PlayerStageStats& other ) fAliveSeconds += other.fAliveSeconds; bFailed |= other.bFailed; bFailedEarlier |= other.bFailedEarlier; + bGaveUp |= other.bGaveUp; iPossibleDancePoints += other.iPossibleDancePoints; iActualDancePoints += other.iActualDancePoints; iCurPossibleDancePoints += other.iCurPossibleDancePoints; diff --git a/stepmania/src/PlayerStageStats.h b/stepmania/src/PlayerStageStats.h index 3524523aa6..850ca68635 100644 --- a/stepmania/src/PlayerStageStats.h +++ b/stepmania/src/PlayerStageStats.h @@ -34,6 +34,7 @@ struct PlayerStageStats /* This indicates whether the player bottomed out his bar/ran out of lives at some * point during the song. It's set in all fail modes. */ bool bFailedEarlier; + bool bGaveUp; // exited gameplay by giving up int iPossibleDancePoints; int iCurPossibleDancePoints; int iActualDancePoints; diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 988fb9a421..2318461412 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -1596,6 +1596,11 @@ void ScreenGameplay::Update( float fDeltaTime ) bool bGiveUpTimerFired = !m_GiveUpTimer.IsZero() && m_GiveUpTimer.Ago() > 2.5f; if( bGiveUpTimerFired || GAMESTATE->AllHaveComboOf30OrMoreMisses() ) { + // Give up + + FOREACH_PlayerNumber( p ) + STATSMAN->m_CurStageStats.m_player[p].bGaveUp = true; + m_GiveUpTimer.SetZero(); if( GIVING_UP_GOES_TO_PREV_SCREEN )