From 66f071bc9607707cdc8c41d2ea415bc5e9898913 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sun, 7 Sep 2003 01:09:47 +0000 Subject: [PATCH] Handle combo before score. Remove +1 in ScoreKeeper5th::AddScore. Combo wasn't going to be +1 in all cases (miss, boo, good, hold note). Not needed anymore with combo first. --- stepmania/src/ScoreKeeper5th.cpp | 47 +++++++++++++++---------------- stepmania/src/ScoreKeeperMAX2.cpp | 41 +++++++++++++-------------- 2 files changed, 42 insertions(+), 46 deletions(-) diff --git a/stepmania/src/ScoreKeeper5th.cpp b/stepmania/src/ScoreKeeper5th.cpp index 1f3feee95e..43cc9df30f 100644 --- a/stepmania/src/ScoreKeeper5th.cpp +++ b/stepmania/src/ScoreKeeper5th.cpp @@ -213,9 +213,7 @@ void ScoreKeeper5th::AddScore( TapNoteScore score ) if (!GAMESTATE->IsCourseMode()) { // handle combo bonus - - // combo hasn't been updated yet, its one bigger than it really is - int m_iCurrentCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber] + 1; + int m_iCurrentCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber]; switch( score ) { @@ -273,6 +271,27 @@ void ScoreKeeper5th::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTap // Do count additions in judge totals. GAMESTATE->m_CurStageStats.iTapNoteScores[m_PlayerNumber][scoreOfLastTap] += 1; + // + // Regular combo + // + +/* + http://www.aaroninjapan.com/ddr2.html + + Note on ONI Mode scoring + + Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) + only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. +*/ + /* True if a jump is one to combo, false if combo is purely based on tap count. */ +// const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI); + const bool ComboIsPerRow = true; + const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow; + TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT; + + if( scoreOfLastTap >= MinScoreToContinueCombo ) + GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber] += ComboCountIfHit; + /* http://www.aaroninjapan.com/ddr2.html @@ -343,28 +362,6 @@ void ScoreKeeper5th::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTap m_iCurToastyCombo = 0; break; } - - // - // Regular combo - // - int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber]; - -/* - http://www.aaroninjapan.com/ddr2.html - - Note on ONI Mode scoring - - Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) - only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. -*/ - /* True if a jump is one to combo, false if combo is purely based on tap count. */ -// const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI); - const bool ComboIsPerRow = true; - const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow; - TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT; - - if( scoreOfLastTap >= MinScoreToContinueCombo ) - iCurCombo += ComboCountIfHit; } diff --git a/stepmania/src/ScoreKeeperMAX2.cpp b/stepmania/src/ScoreKeeperMAX2.cpp index 5937b6d91d..a2ba28a520 100644 --- a/stepmania/src/ScoreKeeperMAX2.cpp +++ b/stepmania/src/ScoreKeeperMAX2.cpp @@ -248,6 +248,26 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa // Do count additions in judge totals. GAMESTATE->m_CurStageStats.iTapNoteScores[m_PlayerNumber][scoreOfLastTap] += 1; + // + // Regular combo + // + +/* + http://www.aaroninjapan.com/ddr2.html + + Note on ONI Mode scoring + + Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) + only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. +*/ + /* True if a jump is one to combo, false if combo is purely based on tap count. */ + const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI); + const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow; + TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT; + + if( scoreOfLastTap >= MinScoreToContinueCombo ) + GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber] += ComboCountIfHit; + /* http://www.aaroninjapan.com/ddr2.html @@ -318,27 +338,6 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa m_iCurToastyCombo = 0; break; } - - // - // Regular combo - // - int &iCurCombo = GAMESTATE->m_CurStageStats.iCurCombo[m_PlayerNumber]; - -/* - http://www.aaroninjapan.com/ddr2.html - - Note on ONI Mode scoring - - Your combo counter only increased with a "Marvelous/Perfect", and double Marvelous/Perfect steps (left and right, etc.) - only add 1 to your combo instead of 2. The combo counter thus becomes a "Marvelous/Perfect" counter. -*/ - /* True if a jump is one to combo, false if combo is purely based on tap count. */ - const bool ComboIsPerRow = (GAMESTATE->m_PlayMode == PLAY_MODE_ONI); - const int ComboCountIfHit = ComboIsPerRow? 1: iNumTapsInRow; - TapNoteScore MinScoreToContinueCombo = GAMESTATE->m_PlayMode == PLAY_MODE_ONI? TNS_PERFECT:TNS_GREAT; - - if( scoreOfLastTap >= MinScoreToContinueCombo ) - iCurCombo += ComboCountIfHit; }