diff --git a/stepmania/src/ActorScroller.cpp b/stepmania/src/ActorScroller.cpp index 0ed57215ac..0c1d986798 100644 --- a/stepmania/src/ActorScroller.cpp +++ b/stepmania/src/ActorScroller.cpp @@ -41,7 +41,8 @@ ActorScroller::ActorScroller() void ActorScroller::Load2( float fNumItemsToDraw ) { - m_fNumItemsToDraw = fNumItemsToDraw; + if( fNumItemsToDraw != -1 ) + m_fNumItemsToDraw = fNumItemsToDraw; m_iNumItems = m_SubActors.size(); Lua *L = LUA->Get(); @@ -121,7 +122,8 @@ void ActorScroller::LoadFromNode( const RString &sDir, const XNode *pNode ) #undef GET_VALUE - Load2( fNumItemsToDraw ); + SetNumItemsToDraw( fNumItemsToDraw ); + Load2(); float fSecondsPerItem = 0; if( pNode->GetAttrValue("SecondsPerItem", fSecondsPerItem) ) diff --git a/stepmania/src/ActorScroller.h b/stepmania/src/ActorScroller.h index 073b7bd15f..9acc72c9cf 100644 --- a/stepmania/src/ActorScroller.h +++ b/stepmania/src/ActorScroller.h @@ -16,7 +16,7 @@ public: void SetTransformFromExpression( const RString &sTransformFunction ); void SetTransformFromHeight( float fItemHeight ); - void Load2( float fNumItemsToDraw ); + void Load2( float fNumItemsToDraw = -1 ); void EnableMask( float fWidth, float fHeight ); void DisableMask(); @@ -30,6 +30,7 @@ public: virtual Actor *Copy() const; void SetLoop( bool bLoop ) { m_bLoop = bLoop; } + void SetNumItemsToDraw( float fNumItemsToDraw ) { m_fNumItemsToDraw = fNumItemsToDraw; } void SetDestinationItem( float fItemIndex ) { m_fDestinationItem = fItemIndex; } void SetCurrentAndDestinationItem( float fItemIndex ) { m_fCurrentItem = m_fDestinationItem = fItemIndex; } float GetCurrentItem() const { return m_fCurrentItem; } diff --git a/stepmania/src/CourseContentsList.cpp b/stepmania/src/CourseContentsList.cpp index 9018b49b1a..bc4249758d 100644 --- a/stepmania/src/CourseContentsList.cpp +++ b/stepmania/src/CourseContentsList.cpp @@ -73,7 +73,8 @@ void CourseContentsList::SetFromGameState() bool bLoop = pMasterTrail->m_vEntries.size() > uNumEntriesToShow; this->SetLoop( bLoop ); - this->Load2( (float)MAX_VISIBLE_ITEMS ); + this->SetNumItemsToDraw( (float)MAX_VISIBLE_ITEMS ); + this->Load2(); this->SetTransformFromHeight( m_vpDisplay[0]->GetUnzoomedHeight() ); this->SetSecondsPerItem( 0.7f ); this->EnableMask( m_vpDisplay[0]->GetUnzoomedWidth(), m_vpDisplay[0]->GetUnzoomedHeight() ); diff --git a/stepmania/src/ScreenMapControllers.cpp b/stepmania/src/ScreenMapControllers.cpp index 66c48c8c41..404e2b5512 100644 --- a/stepmania/src/ScreenMapControllers.cpp +++ b/stepmania/src/ScreenMapControllers.cpp @@ -150,7 +150,8 @@ void ScreenMapControllers::Init() m_LineScroller.SetName( "LineScroller" ); ActorUtil::LoadAllCommands( m_LineScroller, m_sName ); - m_LineScroller.Load2( (float) m_LineScroller.GetNumChildren()*2 ); + m_LineScroller.SetNumItemsToDraw( (float) m_LineScroller.GetNumChildren()*2 ); + m_LineScroller.Load2(); this->AddChild( &m_LineScroller ); } diff --git a/stepmania/src/ScreenNameEntryTraditional.cpp b/stepmania/src/ScreenNameEntryTraditional.cpp index ebe2afa709..f6b4372f7f 100644 --- a/stepmania/src/ScreenNameEntryTraditional.cpp +++ b/stepmania/src/ScreenNameEntryTraditional.cpp @@ -116,7 +116,8 @@ void HighScoreWheel::Load( const HighScoreList& hsl, int iIndexToFocus ) " self:y(math.sin(radians)*90); " " self:z(math.cos(radians)*90); " "end"; - ActorScroller::Load2( 10.5 ); + ActorScroller::SetNumItemsToDraw( 10.5f ); + ActorScroller::Load2(); ActorScroller::SetTransformFromExpression( sTransformFunction ); ActorScroller::SetSecondsPerItem( 0.2f ); Scroll(); diff --git a/stepmania/src/ScreenRanking.cpp b/stepmania/src/ScreenRanking.cpp index d63b3d3ce2..d4004c9b6c 100644 --- a/stepmania/src/ScreenRanking.cpp +++ b/stepmania/src/ScreenRanking.cpp @@ -389,7 +389,8 @@ void ScoreScroller::Load( for( int i=0; iAddChild( new ScoreRowItem(ItemTemplate) ); - DynamicActorScroller::Load2( (float) m_metricSongScoreRowsToDraw ); + DynamicActorScroller::SetNumItemsToDraw( (float) m_metricSongScoreRowsToDraw ); + DynamicActorScroller::Load2(); DynamicActorScroller::SetTransformFromHeight( fItemHeight ); DynamicActorScroller::SetSecondsPerItem( SONG_SCORE_SECONDS_PER_ROW ); DynamicActorScroller::EnableMask( SCREEN_WIDTH, fItemHeight ); diff --git a/stepmania/src/ScreenSelectMaster.cpp b/stepmania/src/ScreenSelectMaster.cpp index a691a956e4..40c7fa7ebd 100644 --- a/stepmania/src/ScreenSelectMaster.cpp +++ b/stepmania/src/ScreenSelectMaster.cpp @@ -153,7 +153,8 @@ void ScreenSelectMaster::Init() FOREACH( PlayerNumber, vpns, p ) { m_Scroller[*p].SetLoop( LOOP_SCROLLER ); - m_Scroller[*p].Load2( SCROLLER_NUM_ITEMS_TO_DRAW ); + m_Scroller[*p].SetNumItemsToDraw( SCROLLER_NUM_ITEMS_TO_DRAW ); + m_Scroller[*p].Load2(); m_Scroller[*p].SetTransformFromExpression( SCROLLER_TRANSFORM ); m_Scroller[*p].SetSecondsPerItem( SCROLLER_SECONDS_PER_ITEM ); m_Scroller[*p].SetNumSubdivisions( SCROLLER_SUBDIVISIONS );