diff --git a/RetroFE/Source/Graphics/Component/ScrollingList.cpp b/RetroFE/Source/Graphics/Component/ScrollingList.cpp index c8842f9..2567135 100644 --- a/RetroFE/Source/Graphics/Component/ScrollingList.cpp +++ b/RetroFE/Source/Graphics/Component/ScrollingList.cpp @@ -60,6 +60,7 @@ ScrollingList::ScrollingList( Configuration &c, , selectedOffsetIndex_( 0 ) , scrollAcceleration_( 0 ) , startScrollTime_( 0.500 ) + , minScrollTime_( 0.500 ) , scrollPeriod_( 0 ) , config_( c ) , scaleX_( scaleX ) @@ -82,6 +83,7 @@ ScrollingList::ScrollingList( const ScrollingList © ) , selectedOffsetIndex_( copy.selectedOffsetIndex_ ) , scrollAcceleration_( copy.scrollAcceleration_ ) , startScrollTime_( copy.startScrollTime_ ) + , minScrollTime_( copy.minScrollTime_ ) , scrollPeriod_( copy.startScrollTime_ ) , config_( copy.config_ ) , scaleX_( copy.scaleX_ ) @@ -141,6 +143,12 @@ void ScrollingList::setStartScrollTime( float value ) } +void ScrollingList::setMinScrollTime( float value ) +{ + minScrollTime_ = value; +} + + void ScrollingList::deallocateSpritePoints( ) { for ( unsigned int i = 0; i < components_.size( ); ++i ) @@ -586,7 +594,7 @@ void ScrollingList::update( float dt ) // Check if scrollPeriod_ has been properly initialised already or if something went wrong // while updating the scrollPeriod_ - if ( scrollPeriod_ < scrollAcceleration_ ) + if ( scrollPeriod_ < minScrollTime_ ) { scrollPeriod_ = startScrollTime_; } @@ -856,9 +864,9 @@ void ScrollingList::resetScrollPeriod( ) void ScrollingList::updateScrollPeriod( ) { scrollPeriod_ -= scrollAcceleration_; - if ( scrollPeriod_ < scrollAcceleration_ ) + if ( scrollPeriod_ < minScrollTime_ ) { - scrollPeriod_ = scrollAcceleration_; + scrollPeriod_ = minScrollTime_; } } diff --git a/RetroFE/Source/Graphics/Component/ScrollingList.h b/RetroFE/Source/Graphics/Component/ScrollingList.h index 8a64b66..4bb9443 100644 --- a/RetroFE/Source/Graphics/Component/ScrollingList.h +++ b/RetroFE/Source/Graphics/Component/ScrollingList.h @@ -90,6 +90,7 @@ public: void draw( unsigned int layer ); void setScrollAcceleration( float value ); void setStartScrollTime( float value ); + void setMinScrollTime( float value ); bool horizontalScroll; void deallocateSpritePoints( ); void allocateSpritePoints( ); @@ -114,6 +115,7 @@ private: float scrollAcceleration_; float startScrollTime_; + float minScrollTime_; float scrollPeriod_; Configuration &config_; diff --git a/RetroFE/Source/Graphics/PageBuilder.cpp b/RetroFE/Source/Graphics/PageBuilder.cpp index 9816539..34a6741 100644 --- a/RetroFE/Source/Graphics/PageBuilder.cpp +++ b/RetroFE/Source/Graphics/PageBuilder.cpp @@ -964,6 +964,7 @@ ScrollingList * PageBuilder::buildMenu(xml_node<> *menuXml, Page &page) xml_attribute<> *menuTypeXml = menuXml->first_attribute("type"); xml_attribute<> *scrollTimeXml = menuXml->first_attribute("scrollTime"); xml_attribute<> *scrollAccelerationXml = menuXml->first_attribute("scrollAcceleration"); + xml_attribute<> *minScrollTimeXml = menuXml->first_attribute("minScrollTime"); xml_attribute<> *scrollOrientationXml = menuXml->first_attribute("orientation"); if(menuTypeXml) @@ -1015,6 +1016,12 @@ ScrollingList * PageBuilder::buildMenu(xml_node<> *menuXml, Page &page) if(scrollAccelerationXml) { menu->setScrollAcceleration(Utils::convertFloat(scrollAccelerationXml->value())); + menu->setMinScrollTime(Utils::convertFloat(scrollAccelerationXml->value())); + } + + if(minScrollTimeXml) + { + menu->setMinScrollTime(Utils::convertFloat(minScrollTimeXml->value())); } if(scrollOrientationXml) diff --git a/RetroFE/Source/Version.cpp b/RetroFE/Source/Version.cpp index efc9d86..d177d7a 100644 --- a/RetroFE/Source/Version.cpp +++ b/RetroFE/Source/Version.cpp @@ -21,7 +21,7 @@ std::string retrofe_version_major = "0"; std::string retrofe_version_minor = "8"; -std::string retrofe_version_build = "34"; +std::string retrofe_version_build = "35"; std::string Version::getString( )