fix CPU skill calculation
make SCALE integer friendly
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user