added random speed modifier (as an experiment for random variables in modifiers)

This commit is contained in:
Steven Towle
2004-12-11 11:06:41 +00:00
parent bdc8ded3cc
commit e7f1204f41
4 changed files with 21 additions and 1 deletions
+2 -1
View File
@@ -3669,7 +3669,7 @@ HelperY=SCREEN_CENTER_Y+80
[ScreenOptionsMaster]
# Player options
Speed=11
Speed=12
SpeedDefault=mod,1x
Speed,1=mod,0.25x;name,x0.25
Speed,2=mod,0.50x;name,x0.50
@@ -3682,6 +3682,7 @@ Speed,8=mod,4x;name,x4
Speed,9=mod,8x;name,x8
Speed,10=mod,C200;name,C200
Speed,11=mod,C400;name,C400
Speed,12=mod,1,300% randomspeed;name,Random
Accel=6
AccelDefault=mod,no boost,no brake,no wave,no expand,no boomerang
Accel,1=name,Off
+11
View File
@@ -83,6 +83,17 @@ float ArrowGetYOffset( PlayerNumber pn, int iCol, float fNoteBeat )
fYOffset += fAccels[PlayerOptions::ACCEL_BOOMERANG] * (fYOffset * SCALE( fYOffset, 0.f, SCREEN_HEIGHT, 1.5f, 0.5f )- fYOffset);
float fScrollSpeed = GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed;
if ( GAMESTATE->m_CurrentPlayerOptions[pn].m_fRandomSpeed > 1.0f )
{
int seed = GAMESTATE->m_iRoundSeed + ( BeatToNoteRow( fNoteBeat ) << 8 ) + (iCol * 100);
float soRandom = RandomFloat( seed );
fScrollSpeed = GAMESTATE->m_CurrentPlayerOptions[pn].m_fScrollSpeed *
SCALE( soRandom,
0.0f, 1.0f,
1.0f, GAMESTATE->m_CurrentPlayerOptions[pn].m_fRandomSpeed ); // min. scale shold be defined as a constatnt somewhere
}
if( fAccels[PlayerOptions::ACCEL_EXPAND] > 0 )
{
+6
View File
@@ -29,6 +29,7 @@ void PlayerOptions::Init()
m_fPerspectiveTilt = 0; m_SpeedfPerspectiveTilt = 1.0f;
m_fSkew = 0; m_SpeedfSkew = 1.0f;
m_fPassmark = 0; m_SpeedfPassmark = 1.0f;
m_fRandomSpeed = 1.0f; m_SpeedfRandomSpeed = 1.0f;
ZERO( m_bTurns );
ZERO( m_bTransforms );
m_bProTiming = false;
@@ -57,6 +58,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
APP( fPerspectiveTilt );
APP( fSkew );
APP( fPassmark );
APP( fRandomSpeed );
}
static CString AddPart( float level, CString name )
@@ -170,6 +172,8 @@ CString PlayerOptions::GetString() const
if( !m_sNoteSkin.empty() && m_sNoteSkin.CompareNoCase("default")!=0 )
sReturn += m_sNoteSkin + ", ";
if( m_fRandomSpeed > 1 )
sReturn += "RandomSpeed, ";
if( sReturn.GetLength() > 2 )
sReturn.erase( sReturn.GetLength()-2 ); // delete the trailing ", "
return sReturn;
@@ -309,6 +313,8 @@ void PlayerOptions::FromString( CString sOptions )
m_sNoteSkin = sBit;
else if( sBit == "noteskin" && !on ) /* "no noteskin" */
m_sNoteSkin = "default";
else if ( sBit == "randomspeed" ) SET_FLOAT( fRandomSpeed )
}
}
+2
View File
@@ -109,6 +109,8 @@ struct PlayerOptions
float m_fPerspectiveTilt, m_SpeedfPerspectiveTilt; // -1 = near, 0 = overhead, +1 = space
float m_fSkew, m_SpeedfSkew; // 0 = vanish point is in center of player, 1 = vanish point is in center of screen
float m_fRandomSpeed, m_SpeedfRandomSpeed;
/* If this is > 0, then the player must have life above this value at the end of
* the song to pass. This is independent of SongOptions::m_FailType. */
float m_fPassmark, m_SpeedfPassmark;