diff --git a/stepmania/src/ArrowEffects.cpp b/stepmania/src/ArrowEffects.cpp index a26a4c3e14..2e997821de 100644 --- a/stepmania/src/ArrowEffects.cpp +++ b/stepmania/src/ArrowEffects.cpp @@ -146,16 +146,8 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float void ArrowGetReverseShiftAndScale( const PlayerState* pPlayerState, int iCol, float fYReverseOffsetPixels, float &fShiftOut, float &fScaleOut ) { - /* XXX: Hack: we need to scale the reverse shift by the zoom. */ - float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - float fZoom = 1 - fMiniPercent*0.5f; - - // don't divide by 0 - if( fabsf(fZoom) < 0.01 ) - fZoom = 0.01f; - float fPercentReverse = pPlayerState->m_CurrentPlayerOptions.GetReversePercentForColumn(iCol); - fShiftOut = SCALE( fPercentReverse, 0.f, 1.f, -fYReverseOffsetPixels/fZoom/2, fYReverseOffsetPixels/fZoom/2 ); + fShiftOut = SCALE( fPercentReverse, 0.f, 1.f, -fYReverseOffsetPixels/2, fYReverseOffsetPixels/2 ); float fPercentCentered = pPlayerState->m_CurrentPlayerOptions.m_fScrolls[PlayerOptions::SCROLL_CENTERED]; fShiftOut = SCALE( fPercentCentered, 0.f, 1.f, fShiftOut, 0.5f ); @@ -367,11 +359,7 @@ float ArrowEffects::GetRotation( const PlayerState* pPlayerState, float fNoteBea static float GetCenterLine( const PlayerState* pPlayerState ) { - /* Another mini hack: if EFFECT_MINI is on, then our center line is at eg. 320, - * not 160. */ - const float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - const float fZoom = 1 - fMiniPercent*0.5f; - return CENTER_LINE_Y / fZoom; + return CENTER_LINE_Y; } static float GetHiddenSudden( const PlayerState* pPlayerState ) @@ -524,11 +512,16 @@ bool ArrowEffects::NeedZBuffer( const PlayerState* pPlayerState ) float ArrowEffects::GetZoom( const PlayerState* pPlayerState ) { + float fZoom = 1.0f; // FIXME: Move the zoom values into Style if( GAMESTATE->m_pCurStyle->m_bNeedsZoomOutWith2Players && (GAMESTATE->GetNumSidesJoined()==2 || GAMESTATE->AnyPlayersAreCpu()) ) - return 0.6f; - return 1.0f; + fZoom *= 0.6f; + + float fMiniPercent = pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; + fZoom *= SCALE( fMiniPercent, 0, 1, 1, 0.5f ); + + return fZoom; } /* diff --git a/stepmania/src/NoteField.cpp b/stepmania/src/NoteField.cpp index a73c3c7b00..c1e48b6853 100644 --- a/stepmania/src/NoteField.cpp +++ b/stepmania/src/NoteField.cpp @@ -479,7 +479,6 @@ void NoteField::DrawPrimitives() float fDrawScale = 1; fDrawScale *= 1 + 0.5f * fabsf( current_po.m_fPerspectiveTilt ); - fDrawScale *= 1 + fabsf( current_po.m_fEffects[PlayerOptions::EFFECT_MINI] ); iFirstPixelToDraw = (int)(iFirstPixelToDraw * fDrawScale); iLastPixelToDraw = (int)(iLastPixelToDraw * fDrawScale); diff --git a/stepmania/src/NoteFieldPositioning.cpp b/stepmania/src/NoteFieldPositioning.cpp index e006779d53..fb74eef14e 100644 --- a/stepmania/src/NoteFieldPositioning.cpp +++ b/stepmania/src/NoteFieldPositioning.cpp @@ -18,6 +18,10 @@ void NoteFieldMode::BeginDrawTrack( const PlayerState* pPlayerState, int iTrack const Style *s = GAMESTATE->GetCurrentStyle(); // TODO: Remove indexing by PlayerNumber. float fPixelXOffsetFromCenter = s->m_ColumnInfo[pPlayerState->m_PlayerNumber][iTrack].fXOffset; + + const float* fEffects = pPlayerState->m_CurrentPlayerOptions.m_fEffects; + fPixelXOffsetFromCenter *= SCALE( fEffects[PlayerOptions::EFFECT_MINI], 0, 1, 1, 0.5f ); + DISPLAY->Translate( fPixelXOffsetFromCenter, 0, 0 ); } diff --git a/stepmania/src/Player.cpp b/stepmania/src/Player.cpp index 9233b75210..70f1b203ad 100644 --- a/stepmania/src/Player.cpp +++ b/stepmania/src/Player.cpp @@ -496,10 +496,7 @@ void Player::Update( float fDeltaTime ) float fMiniPercent = m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI]; - float fNoteFieldZoom = 1 - fMiniPercent*0.5f; float fJudgmentZoom = 1 - fMiniPercent*0.25f; - if( m_pNoteField ) - m_pNoteField->SetZoom( fNoteFieldZoom ); if( m_pJudgment ) m_pJudgment->SetZoom( m_pJudgment->GetZoom() * fJudgmentZoom ); if( m_sprJudgmentFrame.IsLoaded() ) @@ -809,13 +806,6 @@ void Player::DrawPrimitives() float fTiltDegrees = SCALE(fTilt,-1.f,+1.f,+30,-30) * (bReverse?-1:1); - - float fZoom = SCALE( m_pPlayerState->m_CurrentPlayerOptions.m_fEffects[PlayerOptions::EFFECT_MINI], 0.f, 1.f, 1.f, 0.5f ); - if( fTilt > 0 ) - fZoom *= SCALE( fTilt, 0.f, 1.f, 1.f, 0.9f ); - else - fZoom *= SCALE( fTilt, 0.f, -1.f, 1.f, 0.9f ); - float fYOffset; if( fTilt > 0 ) fYOffset = SCALE( fTilt, 0.f, 1.f, 0.f, -45.f ) * (bReverse?-1:1); @@ -823,7 +813,6 @@ void Player::DrawPrimitives() fYOffset = SCALE( fTilt, 0.f, -1.f, 0.f, -20.f ) * (bReverse?-1:1); m_pNoteField->SetY( fOriginalY + fYOffset ); - m_pNoteField->SetZoom( fZoom ); m_pNoteField->SetRotationX( fTiltDegrees ); m_pNoteField->Draw();