feat (RateModsAffectFGChanges): Actually implemented

I'm trying to transfer the nITG implementation for now
This commit is contained in:
FMS-Cat
2020-10-20 02:16:02 +09:00
parent a6dd6f4ad7
commit 7d2a70db23
5 changed files with 283 additions and 271 deletions
+1 -1
View File
@@ -730,7 +730,7 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
pSong->m_SongTiming.GetBeatAndBPSFromElapsedTime(beat_info); pSong->m_SongTiming.GetBeatAndBPSFromElapsedTime(beat_info);
// Calls to Update() should *not* be scaled by music rate; fCurrentTime is. Undo it. // Calls to Update() should *not* be scaled by music rate; fCurrentTime is. Undo it.
const float fRate = GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate; const float fRate = PREFSMAN->m_bRateModsAffectTweens ? 1.0f : GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate;
// Find the BGSegment we're in // Find the BGSegment we're in
const int i = FindBGSegmentForBeat(beat_info.beat); const int i = FindBGSegmentForBeat(beat_info.beat);
+1 -1
View File
@@ -73,7 +73,7 @@ void Foreground::LoadFromSong( const Song *pSong )
void Foreground::Update( float fDeltaTime ) void Foreground::Update( float fDeltaTime )
{ {
// Calls to Update() should *not* be scaled by music rate. Undo it. // Calls to Update() should *not* be scaled by music rate. Undo it.
const float fRate = GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate; const float fRate = PREFSMAN->m_bRateModsAffectTweens ? 1.0f : GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate;
for( unsigned i=0; i < m_BGAnimations.size(); ++i ) for( unsigned i=0; i < m_BGAnimations.size(); ++i )
{ {
+3 -1
View File
@@ -111,8 +111,10 @@ void PlayerOptions::Init()
void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds ) void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
{ {
const float fRateMult = PREFSMAN->m_bRateModsAffectTweens ? GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate : 1.0f;
#define APPROACH( opt ) \ #define APPROACH( opt ) \
fapproach( m_ ## opt, other.m_ ## opt, fDeltaSeconds * other.m_Speed ## opt ); fapproach( m_ ## opt, other.m_ ## opt, fRateMult * fDeltaSeconds * other.m_Speed ## opt );
#define DO_COPY( x ) \ #define DO_COPY( x ) \
x = other.x; x = other.x;
+10 -1
View File
@@ -1651,6 +1651,8 @@ void ScreenEdit::Update( float fDeltaTime )
{ {
m_PlayerStateEdit.Update( fDeltaTime ); m_PlayerStateEdit.Update( fDeltaTime );
const float fRate = PREFSMAN->m_bRateModsAffectTweens ? GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate : 1.0f;
if( m_pSoundMusic->IsPlaying() ) if( m_pSoundMusic->IsPlaying() )
{ {
RageTimer tm; RageTimer tm;
@@ -1755,7 +1757,14 @@ void ScreenEdit::Update( float fDeltaTime )
} }
//LOG->Trace( "ScreenEdit::Update(%f)", fDeltaTime ); //LOG->Trace( "ScreenEdit::Update(%f)", fDeltaTime );
ScreenWithMenuElements::Update( fDeltaTime ); if( m_EditState == STATE_PLAYING )
{
ScreenWithMenuElements::Update( fDeltaTime * fRate );
}
else
{
ScreenWithMenuElements::Update( fDeltaTime );
}
// Update trailing beat // Update trailing beat
+2 -1
View File
@@ -1701,7 +1701,8 @@ void ScreenGameplay::Update( float fDeltaTime )
} }
else else
{ {
Screen::Update( fDeltaTime ); const float fRate = PREFSMAN->m_bRateModsAffectTweens ? GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate : 1.0f;
Screen::Update( fDeltaTime * fRate );
} }
/* This happens if ScreenDemonstration::HandleScreenMessage sets a new screen when /* This happens if ScreenDemonstration::HandleScreenMessage sets a new screen when