diff --git a/stepmania/src/PlayerState.cpp b/stepmania/src/PlayerState.cpp index eda4470471..7d85bcb37d 100644 --- a/stepmania/src/PlayerState.cpp +++ b/stepmania/src/PlayerState.cpp @@ -41,7 +41,10 @@ void PlayerState::Reset() void PlayerState::Update( float fDelta ) { - m_CurrentPlayerOptions.Approach( m_PlayerOptions, fDelta ); + // Don't let the mod approach speed be affected by Tab. + // TODO: Find a more elegant way of handling this. + float fRealDelta = m_timerPlayerOptions.GetDeltaTime(); + m_CurrentPlayerOptions.Approach( m_PlayerOptions, fRealDelta ); // TRICKY: GAMESTATE->Update is run before any of the Screen update's, // so we'll clear these flags here and let them get turned on later diff --git a/stepmania/src/PlayerState.h b/stepmania/src/PlayerState.h index 316546c8eb..196c02f69b 100644 --- a/stepmania/src/PlayerState.h +++ b/stepmania/src/PlayerState.h @@ -6,6 +6,7 @@ #include "PlayerNumber.h" #include "PlayerOptions.h" #include "Attack.h" +#include "RageTimer.h" struct lua_State; class PlayerState @@ -22,6 +23,7 @@ public: MultiPlayer m_mp; + RageTimer m_timerPlayerOptions; PlayerOptions m_CurrentPlayerOptions; // current approaches destination PlayerOptions m_PlayerOptions; // change this, and current will move gradually toward it PlayerOptions m_StagePlayerOptions; // options that are in effect for this stage. May be different from m_StoredPlayerOptions if using forced beginner or forced Survial mods