This commit is contained in:
Chris Danford
2004-02-01 06:16:36 +00:00
parent 8666cd959a
commit 57b0be925e
+15 -6
View File
@@ -60,12 +60,23 @@ void ActorScroller::Update( float fDeltaTime )
void ActorScroller::DrawPrimitives() void ActorScroller::DrawPrimitives()
{ {
if( m_bLoaded ) // Optimization: If we weren't loaded, then fall back to the ActorFrame logic
if( !m_bLoaded )
{ {
for( unsigned i=0; i<m_SubActors.size(); i++ ) ActorFrame::DrawPrimitives();
}
else
{
int iFirstItemToDraw = (int)roundf( m_fCurrentItem - m_iNumItemsToDraw/2.f );
for( int i=iFirstItemToDraw; i<iFirstItemToDraw+m_iNumItemsToDraw; i++ )
{ {
if( i<0 || i>=m_SubActors.size() )
continue; // skip
float fItemOffset = i - m_fCurrentItem; float fItemOffset = i - m_fCurrentItem;
DISPLAY->PushMatrix();
if( m_vRotationDegrees[0] ) if( m_vRotationDegrees[0] )
DISPLAY->RotateX( m_vRotationDegrees[0]*fItemOffset ); DISPLAY->RotateX( m_vRotationDegrees[0]*fItemOffset );
if( m_vRotationDegrees[1] ) if( m_vRotationDegrees[1] )
@@ -84,10 +95,8 @@ void ActorScroller::DrawPrimitives()
); );
m_SubActors[i]->Draw(); m_SubActors[i]->Draw();
DISPLAY->PopMatrix();
} }
} }
else
{
ActorFrame::DrawPrimitives();
}
} }