diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index b33fbac389..65d0e5d0db 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -80,7 +80,7 @@ PrefsManager::PrefsManager() m_fLifeDeltaOKPercentChange = +0.008f; m_fLifeDeltaNGPercentChange = -0.080f; - m_fTugMeterMarvelousPercentChange = +0.008f; + m_fTugMeterMarvelousPercentChange = +0.010f; m_fTugMeterPerfectPercentChange = +0.008f; m_fTugMeterGreatPercentChange = +0.004f; m_fTugMeterGoodPercentChange = +0.000f; @@ -121,7 +121,7 @@ PrefsManager::PrefsManager() m_fGradePercentC = 0.45f; m_fGradePercentD = 0; - m_fSuperMeterMarvelousPercentChange = +0.08f; + m_fSuperMeterMarvelousPercentChange = +0.10f; m_fSuperMeterPerfectPercentChange = +0.08f; m_fSuperMeterGreatPercentChange = +0.04f; m_fSuperMeterGoodPercentChange = +0.00f; diff --git a/stepmania/src/RageUtil.h b/stepmania/src/RageUtil.h index 148c2f9bff..42de825a2e 100644 --- a/stepmania/src/RageUtil.h +++ b/stepmania/src/RageUtil.h @@ -49,7 +49,8 @@ inline unsigned long max(unsigned long a, unsigned int b) { return a > b? a:b; } #define clamp(val,low,high) ( max( (low), min((val),(high)) ) ) // Scales x so that l1 corresponds to l2 and h1 corresponds to h2. Does not modify x, MUST assign the result to something! -#define SCALE(x, l1, h1, l2, h2) (((x) - (l1)) / ((h1) - (l1)) * ((h2) - (l2)) + (l2)) +// Do the multiply before the divide to that integer scales have more precision. +#define SCALE(x, l1, h1, l2, h2) (((x) - (l1)) * ((h2) - (l2)) / ((h1) - (l1)) + (l2)) #define CLAMP(x, l, h) {if (x > h) x = h; else if (x < l) x = l;} diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index a823c6d2d8..51512a2eaa 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -888,7 +888,9 @@ void ScreenGameplay::LoadNextSong() else if( GAMESTATE->IsCpuPlayer(p) ) { GAMESTATE->m_PlayerController[p] = PC_CPU; - GAMESTATE->m_iCpuSkill[p] = SCALE( GAMESTATE->m_pCurNotes[p]->GetMeter(), MIN_METER, MAX_METER, 0, NUM_SKILL_LEVELS-1 ); + int iMeter = GAMESTATE->m_pCurNotes[p]->GetMeter(); + int iNewSkill = SCALE( iMeter, MIN_METER, MAX_METER, 0, NUM_SKILL_LEVELS-1 ); + GAMESTATE->m_iCpuSkill[p] = iNewSkill; } else if( PREFSMAN->m_bAutoPlay ) GAMESTATE->m_PlayerController[p] = PC_AUTOPLAY;