fix CPU skill calculation

make SCALE integer friendly
This commit is contained in:
Chris Danford
2004-01-12 00:32:18 +00:00
parent 84a8f056d7
commit ddf1548909
3 changed files with 7 additions and 4 deletions
+2 -2
View File
@@ -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;
+2 -1
View File
@@ -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;}
+3 -1
View File
@@ -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;