pull out SetTransformFromExpression/SetTransformFromHeight, so we don't
have two init functions. (Now, we only need two special metrics to init an ActorScroller; the rest can be done by OnCommand.)
This commit is contained in:
@@ -39,25 +39,24 @@ ActorScroller::ActorScroller()
|
||||
|
||||
void ActorScroller::Load2(
|
||||
float fNumItemsToDraw,
|
||||
float fItemHeight,
|
||||
bool bLoop )
|
||||
{
|
||||
Load3( fNumItemsToDraw,
|
||||
ssprintf("function(self,offset,itemIndex,numItems) self:y(%f*offset) end",fItemHeight), bLoop );
|
||||
}
|
||||
|
||||
void ActorScroller::Load3(
|
||||
float fNumItemsToDraw,
|
||||
const CString &sTransformFunction,
|
||||
bool bLoop
|
||||
)
|
||||
{
|
||||
m_fNumItemsToDraw = fNumItemsToDraw;
|
||||
m_exprTransformFunction.SetFromExpression( sTransformFunction );
|
||||
m_bLoop = bLoop;
|
||||
m_iNumItems = m_SubActors.size();
|
||||
}
|
||||
|
||||
void ActorScroller::SetTransformFromExpression( const CString &sTransformFunction )
|
||||
{
|
||||
m_exprTransformFunction.SetFromExpression( sTransformFunction );
|
||||
}
|
||||
|
||||
void ActorScroller::SetTransformFromHeight( float fItemHeight )
|
||||
{
|
||||
SetTransformFromExpression( ssprintf("function(self,offset,itemIndex,numItems) self:y(%f*offset) end",fItemHeight) );
|
||||
}
|
||||
|
||||
void ActorScroller::EnableMask( float fWidth, float fHeight )
|
||||
{
|
||||
m_quadMask.SetHidden( false );
|
||||
@@ -113,10 +112,10 @@ void ActorScroller::LoadFromNode( const CString &sDir, const XNode *pNode )
|
||||
bool bUseMask = false;
|
||||
pNode->GetAttrValue( "UseMask", bUseMask );
|
||||
|
||||
Load3(
|
||||
Load2(
|
||||
fNumItemsToDraw,
|
||||
sTransformFunction,
|
||||
false );
|
||||
ActorScroller::SetTransformFromExpression( sTransformFunction );
|
||||
ActorScroller::SetSecondsPerItem( fSecondsPerItem );
|
||||
ActorScroller::SetNumSubdivisions( iSubdivisions );
|
||||
|
||||
|
||||
@@ -13,14 +13,11 @@ class ActorScroller : public ActorFrame
|
||||
public:
|
||||
ActorScroller();
|
||||
|
||||
void SetTransformFromExpression( const CString &sTransformFunction );
|
||||
void SetTransformFromHeight( float fItemHeight );
|
||||
|
||||
void Load2(
|
||||
float fNumItemsToDraw,
|
||||
float fItemHeight,
|
||||
bool bLoop );
|
||||
|
||||
void Load3(
|
||||
float fNumItemsToDraw,
|
||||
const CString &sTransformFunction,
|
||||
bool bLoop );
|
||||
|
||||
void EnableMask( float fWidth, float fHeight );
|
||||
|
||||
@@ -79,8 +79,8 @@ void CourseContentsList::SetFromGameState()
|
||||
|
||||
this->Load2(
|
||||
(float)MAX_VISIBLE_ITEMS,
|
||||
m_vpDisplay[0]->GetUnzoomedHeight(),
|
||||
bLoop );
|
||||
this->SetTransformFromHeight( m_vpDisplay[0]->GetUnzoomedHeight() );
|
||||
this->SetSecondsPerItem( 0.7f );
|
||||
this->EnableMask( m_vpDisplay[0]->GetUnzoomedWidth(), m_vpDisplay[0]->GetUnzoomedHeight() );
|
||||
this->SetSecondsPauseBetweenItems( 0.7f );
|
||||
|
||||
@@ -115,10 +115,10 @@ void HighScoreWheel::Load( const HighScoreList& hsl, int iIndexToFocus )
|
||||
" self:y(math.sin(radians)*90); "
|
||||
" self:z(math.cos(radians)*90); "
|
||||
"end";
|
||||
ActorScroller::Load3(
|
||||
ActorScroller::Load2(
|
||||
10.5,
|
||||
sTransformFunction,
|
||||
false );
|
||||
ActorScroller::SetTransformFromExpression( sTransformFunction );
|
||||
ActorScroller::SetSecondsPerItem( 0.2f );
|
||||
Scroll();
|
||||
}
|
||||
|
||||
@@ -365,7 +365,8 @@ void ScoreScroller::Load(
|
||||
for( int i=0; i<iNumCopies; ++i )
|
||||
this->AddChild( new ScoreRowItem(ItemTemplate) );
|
||||
|
||||
DynamicActorScroller::Load2( (float) m_metricSongScoreRowsToDraw, fItemHeight, false );
|
||||
DynamicActorScroller::Load2( (float) m_metricSongScoreRowsToDraw, false );
|
||||
DynamicActorScroller::SetTransformFromHeight( fItemHeight );
|
||||
DynamicActorScroller::SetSecondsPerItem( SONG_SCORE_SECONDS_PER_ROW );
|
||||
DynamicActorScroller::EnableMask( SCREEN_WIDTH, fItemHeight );
|
||||
DynamicActorScroller::ScrollThroughAllItems();
|
||||
|
||||
@@ -128,10 +128,10 @@ void ScreenSelectMaster::Init()
|
||||
{
|
||||
FOREACH( PlayerNumber, vpns, p )
|
||||
{
|
||||
m_Scroller[*p].Load3(
|
||||
m_Scroller[*p].Load2(
|
||||
SCROLLER_NUM_ITEMS_TO_DRAW,
|
||||
SCROLLER_TRANSFORM,
|
||||
LOOP_SCROLLER );
|
||||
m_Scroller[*p].SetTransformFromExpression( SCROLLER_TRANSFORM );
|
||||
m_Scroller[*p].SetSecondsPerItem( SCROLLER_SECONDS_PER_ITEM );
|
||||
m_Scroller[*p].SetNumSubdivisions( SCROLLER_SUBDIVISIONS );
|
||||
m_Scroller[*p].SetName( "Scroller"+PLAYER_APPEND_NO_SPACE(*p) );
|
||||
|
||||
Reference in New Issue
Block a user