From 025b671698627e8784f9f614ffd7adcbd209bcdb Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sat, 22 Oct 2005 23:31:12 +0000 Subject: [PATCH] fix mini when not in 0..1 --- stepmania/src/ArrowEffects.cpp | 7 +++++-- stepmania/src/NoteFieldPositioning.cpp | 5 ++++- stepmania/src/Player.cpp | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index 2e997821de..24b2b0335f 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -519,8 +519,11 @@ float ArrowEffects::GetZoom( const PlayerState* pPlayerState ) fZoom *= 0.6f; float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - fZoom *= SCALE( fMiniPercent, 0, 1, 1, 0.5f ); - + if( fMiniPercent != 0 ) + { + fMiniPercent = powf( 0.5f, fMiniPercent ); + fZoom *= fMiniPercent; + } return fZoom; } diff --git a/stepmania/src/NoteFieldPositioning.cpp b/stepmania/src/NoteFieldPositioning.cpp index fb74eef14e..417b8225fc 100644 --- a/stepmania/src/NoteFieldPositioning.cpp +++ b/stepmania/src/NoteFieldPositioning.cpp @@ -19,8 +19,11 @@ void NoteFieldMode::BeginDrawTrack( const PlayerState* pPlayerState, int iTrack // TODO: Remove indexing by PlayerNumber. float fPixelXOffsetFromCenter = s->m_ColumnInfo[pPlayerState->m_PlayerNumber][iTrack].fXOffset; + /* Allow Mini to pull tracks together, but not to push them apart. */ const float* fEffects = pPlayerState->m_CurrentPlayerOptions.m_fEffects; - fPixelXOffsetFromCenter *= SCALE( fEffects[PlayerOptions::EFFECT_MINI], 0, 1, 1, 0.5f ); + float fMiniPercent = fEffects[PlayerOptions::EFFECT_MINI]; + fMiniPercent = min( powf(0.5f, fMiniPercent), 1.0f ); + fPixelXOffsetFromCenter *= fMiniPercent; DISPLAY->Translate( fPixelXOffsetFromCenter, 0, 0 ); } diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 70f1b203ad..838c0f6edf 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -496,7 +496,7 @@ void Player::Update( float fDeltaTime ) float fMiniPercent = m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - float fJudgmentZoom = 1 - fMiniPercent*0.25f; + float fJudgmentZoom = min( powf(0.25f, fMiniPercent), 1.0f ); if( m_pJudgment ) m_pJudgment->SetZoom( m_pJudgment->GetZoom() * fJudgmentZoom ); if( m_sprJudgmentFrame.IsLoaded() )