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:
Glenn Maynard
2005-12-07 05:43:49 +00:00
parent 32129814b7
commit 42ac54c4a5
6 changed files with 22 additions and 25 deletions
+12 -13
View File
@@ -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 );
+3 -6
View File
@@ -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 );
+1 -1
View File
@@ -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 );
+2 -2
View File
@@ -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();
}
+2 -1
View File
@@ -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();
+2 -2
View File
@@ -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) );