added random speed modifier (as an experiment for random variables in modifiers)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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 )
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user