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]
|
[ScreenOptionsMaster]
|
||||||
# Player options
|
# Player options
|
||||||
Speed=11
|
Speed=12
|
||||||
SpeedDefault=mod,1x
|
SpeedDefault=mod,1x
|
||||||
Speed,1=mod,0.25x;name,x0.25
|
Speed,1=mod,0.25x;name,x0.25
|
||||||
Speed,2=mod,0.50x;name,x0.50
|
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,9=mod,8x;name,x8
|
||||||
Speed,10=mod,C200;name,C200
|
Speed,10=mod,C200;name,C200
|
||||||
Speed,11=mod,C400;name,C400
|
Speed,11=mod,C400;name,C400
|
||||||
|
Speed,12=mod,1,300% randomspeed;name,Random
|
||||||
Accel=6
|
Accel=6
|
||||||
AccelDefault=mod,no boost,no brake,no wave,no expand,no boomerang
|
AccelDefault=mod,no boost,no brake,no wave,no expand,no boomerang
|
||||||
Accel,1=name,Off
|
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);
|
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;
|
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 )
|
if( fAccels[PlayerOptions::ACCEL_EXPAND] > 0 )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ void PlayerOptions::Init()
|
|||||||
m_fPerspectiveTilt = 0; m_SpeedfPerspectiveTilt = 1.0f;
|
m_fPerspectiveTilt = 0; m_SpeedfPerspectiveTilt = 1.0f;
|
||||||
m_fSkew = 0; m_SpeedfSkew = 1.0f;
|
m_fSkew = 0; m_SpeedfSkew = 1.0f;
|
||||||
m_fPassmark = 0; m_SpeedfPassmark = 1.0f;
|
m_fPassmark = 0; m_SpeedfPassmark = 1.0f;
|
||||||
|
m_fRandomSpeed = 1.0f; m_SpeedfRandomSpeed = 1.0f;
|
||||||
ZERO( m_bTurns );
|
ZERO( m_bTurns );
|
||||||
ZERO( m_bTransforms );
|
ZERO( m_bTransforms );
|
||||||
m_bProTiming = false;
|
m_bProTiming = false;
|
||||||
@@ -57,6 +58,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
|
|||||||
APP( fPerspectiveTilt );
|
APP( fPerspectiveTilt );
|
||||||
APP( fSkew );
|
APP( fSkew );
|
||||||
APP( fPassmark );
|
APP( fPassmark );
|
||||||
|
APP( fRandomSpeed );
|
||||||
}
|
}
|
||||||
|
|
||||||
static CString AddPart( float level, CString name )
|
static CString AddPart( float level, CString name )
|
||||||
@@ -170,6 +172,8 @@ CString PlayerOptions::GetString() const
|
|||||||
if( !m_sNoteSkin.empty() && m_sNoteSkin.CompareNoCase("default")!=0 )
|
if( !m_sNoteSkin.empty() && m_sNoteSkin.CompareNoCase("default")!=0 )
|
||||||
sReturn += m_sNoteSkin + ", ";
|
sReturn += m_sNoteSkin + ", ";
|
||||||
|
|
||||||
|
if( m_fRandomSpeed > 1 )
|
||||||
|
sReturn += "RandomSpeed, ";
|
||||||
if( sReturn.GetLength() > 2 )
|
if( sReturn.GetLength() > 2 )
|
||||||
sReturn.erase( sReturn.GetLength()-2 ); // delete the trailing ", "
|
sReturn.erase( sReturn.GetLength()-2 ); // delete the trailing ", "
|
||||||
return sReturn;
|
return sReturn;
|
||||||
@@ -309,6 +313,8 @@ void PlayerOptions::FromString( CString sOptions )
|
|||||||
m_sNoteSkin = sBit;
|
m_sNoteSkin = sBit;
|
||||||
else if( sBit == "noteskin" && !on ) /* "no noteskin" */
|
else if( sBit == "noteskin" && !on ) /* "no noteskin" */
|
||||||
m_sNoteSkin = "default";
|
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_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_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
|
/* 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. */
|
* the song to pass. This is independent of SongOptions::m_FailType. */
|
||||||
float m_fPassmark, m_SpeedfPassmark;
|
float m_fPassmark, m_SpeedfPassmark;
|
||||||
|
|||||||
Reference in New Issue
Block a user