This commit is contained in:
Glenn Maynard
2003-07-09 10:40:34 +00:00
parent 962eaa31b4
commit 2f99e4bfdc
3 changed files with 47 additions and 0 deletions
+44
View File
@@ -111,6 +111,50 @@ float ArrowGetXPos( PlayerNumber pn, int iColNum, float fYPos )
fPixelOffsetFromCenter += fDistance * fEffects[PlayerOptions::EFFECT_FLIP];
}
if( fEffects[PlayerOptions::EFFECT_BEAT] > 0 )
do {
float fAccelTime = 0.2f, fTotalTime = 0.5f;
/* If the song is really fast, slow down the rate, but speed up the
* acceleration to compensate or it'll look weird. */
const float fBPM = GAMESTATE->m_fCurBPS * 60;
const float fDiv = max(1.0f, truncf( fBPM / 150.0f ));
fAccelTime /= fDiv;
fTotalTime /= fDiv;
float fBeat = GAMESTATE->m_fSongBeat + fAccelTime;
fBeat /= fDiv;
const bool bEvenBeat = ( int(fBeat) % 2 ) != 0;
/* -100.2 -> -0.2 -> 0.2 */
if( fBeat < 0 )
break;
fBeat -= truncf( fBeat );
fBeat += 1;
fBeat -= truncf( fBeat );
if( fBeat >= fTotalTime )
break;
float fAmount;
if( fBeat < fAccelTime )
{
fAmount = SCALE( fBeat, 0.0f, fAccelTime, 0.0f, 1.0f);
fAmount *= fAmount;
} else /* fBeat < fTotalTime */ {
fAmount = SCALE( fBeat, fAccelTime, fTotalTime, 1.0f, 0.0f);
fAmount = 1 - (1-fAmount) * (1-fAmount);
}
if( bEvenBeat )
fAmount *= -1;
const float fShift = 20.0f*fAmount*sinf( fYPos / 15.0f + PI/2.0f );
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_BEAT] * fShift;
} while(0);
return fPixelOffsetFromCenter;
}
+2
View File
@@ -93,6 +93,7 @@ CString PlayerOptions::GetString()
if( m_fEffects[EFFECT_FLIP]==1 ) sReturn += "Flip, ";
if( m_fEffects[EFFECT_TORNADO]==1 ) sReturn += "Tornado, ";
if( m_fEffects[EFFECT_BUMPY]==1 ) sReturn += "Bumpy, ";
if( m_fEffects[EFFECT_BEAT]==1 ) sReturn += "Beat, ";
if( m_fAppearances[APPEARANCE_HIDDEN]==1 ) sReturn += "Hidden, ";
if( m_fAppearances[APPEARANCE_SUDDEN]==1 ) sReturn += "Sudden, ";
@@ -186,6 +187,7 @@ void PlayerOptions::FromString( CString sOptions )
else if( sBit == "flip" ) m_fEffects[EFFECT_FLIP] = 1;
else if( sBit == "tornado" ) m_fEffects[EFFECT_TORNADO] = 1;
else if( sBit == "bumpy" ) m_fEffects[EFFECT_BUMPY] = 1;
else if( sBit == "beat" ) m_fEffects[EFFECT_BEAT] = 1;
else if( sBit == "hidden" ) m_fAppearances[APPEARANCE_HIDDEN] = 1;
else if( sBit == "sudden" ) m_fAppearances[APPEARANCE_SUDDEN] = 1;
else if( sBit == "stealth" ) m_fAppearances[APPEARANCE_STEALTH] = 1;
+1
View File
@@ -36,6 +36,7 @@ struct PlayerOptions
EFFECT_FLIP,
EFFECT_TORNADO,
EFFECT_BUMPY,
EFFECT_BEAT,
NUM_EFFECTS
};
enum Appearance {