diff --git a/stepmania/src/GameState.cpp b/stepmania/src/GameState.cpp index 8574611ecf..03a3463c60 100644 --- a/stepmania/src/GameState.cpp +++ b/stepmania/src/GameState.cpp @@ -497,15 +497,10 @@ bool GameState::HasEarnedExtraStage() PlayerNumber GameState::GetBestPlayer() { - PlayerNumber winner = PLAYER_1; - for( int p=PLAYER_1+1; pm_CurStageStats.iActualDancePoints[p] == GAMESTATE->m_CurStageStats.iActualDancePoints[winner] ) - return PLAYER_INVALID; // draw - else if( GAMESTATE->m_CurStageStats.iActualDancePoints[p] > GAMESTATE->m_CurStageStats.iActualDancePoints[winner] ) - winner = (PlayerNumber)p; - } - return winner; + for( int p=PLAYER_1; p=0.5f)?RESULT_WIN:RESULT_LOSE; case PLAYER_2: return (m_fTugLifePercentP1<0.5f)?RESULT_WIN:RESULT_LOSE; default: ASSERT(0); return RESULT_LOSE; } - default: - return (GetBestPlayer()==pn)?RESULT_WIN:RESULT_LOSE; } + + StageResult win = RESULT_WIN; + for( int p=PLAYER_1; pm_CurStageStats.iActualDancePoints[p] == GAMESTATE->m_CurStageStats.iActualDancePoints[pn] ) + win = RESULT_DRAW; + + /* If anyone did better, we lost. */ + if( GAMESTATE->m_CurStageStats.iActualDancePoints[p] > GAMESTATE->m_CurStageStats.iActualDancePoints[pn] ) + return RESULT_LOSE; + } + return win; } void GameState::GetFinalEvalStatsAndSongs( StageStats& statsOut, vector& vSongsOut )