fix CPU skill calculation
make SCALE integer friendly
This commit is contained in:
@@ -80,7 +80,7 @@ PrefsManager::PrefsManager()
|
|||||||
m_fLifeDeltaOKPercentChange = +0.008f;
|
m_fLifeDeltaOKPercentChange = +0.008f;
|
||||||
m_fLifeDeltaNGPercentChange = -0.080f;
|
m_fLifeDeltaNGPercentChange = -0.080f;
|
||||||
|
|
||||||
m_fTugMeterMarvelousPercentChange = +0.008f;
|
m_fTugMeterMarvelousPercentChange = +0.010f;
|
||||||
m_fTugMeterPerfectPercentChange = +0.008f;
|
m_fTugMeterPerfectPercentChange = +0.008f;
|
||||||
m_fTugMeterGreatPercentChange = +0.004f;
|
m_fTugMeterGreatPercentChange = +0.004f;
|
||||||
m_fTugMeterGoodPercentChange = +0.000f;
|
m_fTugMeterGoodPercentChange = +0.000f;
|
||||||
@@ -121,7 +121,7 @@ PrefsManager::PrefsManager()
|
|||||||
m_fGradePercentC = 0.45f;
|
m_fGradePercentC = 0.45f;
|
||||||
m_fGradePercentD = 0;
|
m_fGradePercentD = 0;
|
||||||
|
|
||||||
m_fSuperMeterMarvelousPercentChange = +0.08f;
|
m_fSuperMeterMarvelousPercentChange = +0.10f;
|
||||||
m_fSuperMeterPerfectPercentChange = +0.08f;
|
m_fSuperMeterPerfectPercentChange = +0.08f;
|
||||||
m_fSuperMeterGreatPercentChange = +0.04f;
|
m_fSuperMeterGreatPercentChange = +0.04f;
|
||||||
m_fSuperMeterGoodPercentChange = +0.00f;
|
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)) ) )
|
#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!
|
// 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;}
|
#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) )
|
else if( GAMESTATE->IsCpuPlayer(p) )
|
||||||
{
|
{
|
||||||
GAMESTATE->m_PlayerController[p] = PC_CPU;
|
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 )
|
else if( PREFSMAN->m_bAutoPlay )
|
||||||
GAMESTATE->m_PlayerController[p] = PC_AUTOPLAY;
|
GAMESTATE->m_PlayerController[p] = PC_AUTOPLAY;
|
||||||
|
|||||||
Reference in New Issue
Block a user