From 5e9f053d4dd7e61feec0bdb8cb1cb5927a97a2ec Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Tue, 6 May 2008 02:19:05 +0000 Subject: [PATCH] fix X for Left and Right lost after call to SetBarWidth --- stepmania/src/OptionsCursor.cpp | 11 ++++++++--- stepmania/src/OptionsCursor.h | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/stepmania/src/OptionsCursor.cpp b/stepmania/src/OptionsCursor.cpp index b17a64cabf..f80038d56a 100644 --- a/stepmania/src/OptionsCursor.cpp +++ b/stepmania/src/OptionsCursor.cpp @@ -16,7 +16,9 @@ OptionsCursor::OptionsCursor( const OptionsCursor &cpy ): ActorFrame( cpy ), m_sprMiddle( cpy.m_sprMiddle ), m_sprLeft( cpy.m_sprLeft ), - m_sprRight( cpy.m_sprRight ) + m_sprRight( cpy.m_sprRight ), + m_iOriginalLeftX( cpy.m_iOriginalLeftX ), + m_iOriginalRightX( cpy.m_iOriginalRightX ) { /* Re-add children, or m_SubActors will point to cpy's children and not our own. */ m_SubActors.clear(); @@ -46,6 +48,9 @@ void OptionsCursor::Load( const RString &sMetricsGroup ) LOAD_SPR( m_sprLeft, "Left" ); LOAD_SPR( m_sprRight, "Right" ); #undef LOAD_SPR + + m_iOriginalLeftX = m_sprLeft->GetX(); + m_iOriginalRightX = m_sprRight->GetX(); } void OptionsCursorPlus::Load( const RString &sMetricsGroup ) @@ -110,8 +115,8 @@ void OptionsCursor::SetBarWidth( int iWidth ) m_sprMiddle->ZoomToWidth( fWidth ); - m_sprLeft->SetX( -fWidth/2 ); - m_sprRight->SetX( +fWidth/2 ); + m_sprLeft->SetX( m_iOriginalLeftX - fWidth/2 ); + m_sprRight->SetX( m_iOriginalRightX + fWidth/2 ); } void OptionsCursorPlus::SetBarWidth( int iWidth ) diff --git a/stepmania/src/OptionsCursor.h b/stepmania/src/OptionsCursor.h index d918901707..03dc7d093d 100644 --- a/stepmania/src/OptionsCursor.h +++ b/stepmania/src/OptionsCursor.h @@ -25,6 +25,8 @@ protected: AutoActor m_sprMiddle; AutoActor m_sprLeft; AutoActor m_sprRight; + int m_iOriginalLeftX; // save the metrics-set X because it gets oblitterated on a call to SetBarWidth + int m_iOriginalRightX; }; class OptionsCursorPlus : public OptionsCursor