fold CroppedSprite functionality into Sprite

more work on Rave
This commit is contained in:
Chris Danford
2003-07-03 06:38:57 +00:00
parent 12d77daa2a
commit 9c9aef37c7
36 changed files with 450 additions and 433 deletions
+23 -12
View File
@@ -19,22 +19,23 @@
#include "ThemeManager.h"
const float LEVEL_WIDTH = 50;
ScoreDisplayRave::ScoreDisplayRave()
{
LOG->Trace( "ScoreDisplayRave::ScoreDisplayRave()" );
m_lastLevelSeen = ATTACK_LEVEL_1;
for( int i=0; i<NUM_ATTACK_LEVELS; i++ )
{
m_LevelStream[i].Load( THEME->GetPathToG(ssprintf("ScoreDisplayRave stream level%d",i+1)), LEVEL_WIDTH );
float fSpan = (NUM_ATTACK_LEVELS-1)*LEVEL_WIDTH;
float fX = SCALE(i,0.f,NUM_ATTACK_LEVELS-1.f, -fSpan/2, fSpan/2 );
m_LevelStream[i].SetX( fX );
this->AddChild( &m_LevelStream[i] );
m_sprMeter[i].Load( THEME->GetPathToG(ssprintf("ScoreDisplayRave stream level%d",i+1)) );
m_sprMeter[i].SetCropRight( 1.f );
this->AddChild( &m_sprMeter[i] );
}
m_textLevel.LoadFromNumbers( THEME->GetPathToN("ScoreDisplayRave level") );
m_textLevel.SetText( "1" );
this->AddChild( &m_textLevel );
this->AddChild( &m_sprFrame );
}
@@ -42,6 +43,10 @@ void ScoreDisplayRave::Init( PlayerNumber pn )
{
ScoreDisplay::Init( pn );
if( pn == PLAYER_2 )
for( int i=0; i<NUM_ATTACK_LEVELS; i++ )
m_sprMeter[i].SetZoomX( -1 );
m_sprFrame.Load( THEME->GetPathToG(ssprintf("ScoreDisplayRave frame p%d",pn+1)) );
}
@@ -49,10 +54,16 @@ void ScoreDisplayRave::Update( float fDelta )
{
ScoreDisplay::Update( fDelta );
for( int i=0; i<NUM_ATTACK_LEVELS; i++ )
float fLevel = GAMESTATE->m_fSuperMeter[m_PlayerNumber];
AttackLevel level = (AttackLevel)(int)fLevel;
if( level != m_lastLevelSeen )
{
float fLevelPercent = GAMESTATE->m_fSuperMeter[m_PlayerNumber] - i;
CLAMP( fLevelPercent, 0 ,1 );
m_LevelStream[i].SetPercent( fLevelPercent );
m_sprMeter[m_lastLevelSeen].SetCropRight( 1.f );
m_lastLevelSeen = level;
m_textLevel.SetText( ssprintf("%d",level+1) );
}
float fPercent = fLevel - level;
m_sprMeter[level].SetCropRight( 1-fPercent );
}