chugging away at 3.0
This commit is contained in:
@@ -26,24 +26,19 @@
|
||||
#include "AnnouncerManager.h"
|
||||
|
||||
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
|
||||
const ScreenMessage SM_LoadNoteData = ScreenMessage(SM_User + 2); // this is a super-hack. We'll load the note data from cache while the message is displaying
|
||||
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3);
|
||||
|
||||
const float BASE_X = CENTER_X;
|
||||
const float BASE_Y = CENTER_Y + 36;
|
||||
const float BASE_HEIGHT = 6;
|
||||
|
||||
ScreenStage::ScreenStage( bool bTryExtraStage )
|
||||
{
|
||||
m_bTryExtraStage = false;
|
||||
|
||||
m_ptextStage = new BitmapText();
|
||||
m_ptextStage->Load( THEME->GetPathTo(FONT_STAGE) );
|
||||
m_ptextStage->TurnShadowOff();
|
||||
m_textStage.Load( THEME->GetPathTo(FONT_STAGE) );
|
||||
m_textStage.TurnShadowOff();
|
||||
if( bTryExtraStage )
|
||||
{
|
||||
m_ptextStage->SetText( "Try Extra Stage!" );
|
||||
m_ptextStage->SetDiffuseColor( D3DXCOLOR(1,0.1f,0.1f,1) );
|
||||
m_textStage.SetText( "Try Extra Stage!" );
|
||||
m_textStage.SetDiffuseColor( D3DXCOLOR(1,0.1f,0.1f,1) );
|
||||
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_EXTRA) );
|
||||
}
|
||||
else // !bTryExtraStage
|
||||
@@ -52,8 +47,8 @@ ScreenStage::ScreenStage( bool bTryExtraStage )
|
||||
bool bFinal = PREFSMAN->IsFinalStage();
|
||||
|
||||
CString sStagePrefix = PREFSMAN->GetStageText();
|
||||
m_ptextStage->SetText( sStagePrefix + " Stage" );
|
||||
m_ptextStage->SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
m_textStage.SetText( sStagePrefix + " Stage" );
|
||||
m_textStage.SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
|
||||
if( bFinal )
|
||||
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo(ANNOUNCER_STAGE_FINAL) );
|
||||
@@ -69,61 +64,31 @@ ScreenStage::ScreenStage( bool bTryExtraStage )
|
||||
}
|
||||
}
|
||||
}
|
||||
m_ptextStage->SetXY( BASE_X, BASE_Y );
|
||||
m_ptextStage->SetVertAlign( Actor::align_top );
|
||||
m_ptextStage->SetZoomX( 2 );
|
||||
m_ptextStage->SetZoomY( 0 );
|
||||
m_ptextStage->BeginTweeningQueued( 0.6f ); // sleep
|
||||
m_ptextStage->BeginTweeningQueued( 0.3f ); // sleep
|
||||
m_ptextStage->SetTweenZoom( 2 );
|
||||
m_ptextStage->SetTweenXY( CENTER_X, CENTER_Y );
|
||||
this->AddActor( m_ptextStage );
|
||||
m_textStage.SetXY( CENTER_X, CENTER_Y );
|
||||
m_textStage.SetZoomX( 2 );
|
||||
m_textStage.SetZoomY( 0 );
|
||||
m_textStage.SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||
m_textStage.BeginTweening( 0.5f );
|
||||
m_textStage.SetTweenZoom( 2 );
|
||||
m_textStage.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
this->AddActor( &m_textStage );
|
||||
|
||||
|
||||
m_psprUnderscore = new Sprite;
|
||||
m_psprUnderscore->Load( THEME->GetPathTo(GRAPHIC_STAGE_UNDERSCORE) );
|
||||
m_psprUnderscore->SetXY( BASE_X, BASE_Y );
|
||||
m_psprUnderscore->SetZoomX( 0 );
|
||||
m_psprUnderscore->SetDiffuseColor( bTryExtraStage ? D3DXCOLOR(1,0.1f,0.1f,1) : D3DXCOLOR(1,1,1,1) );
|
||||
m_psprUnderscore->BeginTweeningQueued( 0.4f ); // open
|
||||
float fDestZoom = m_ptextStage->GetWidestLineWidthInSourcePixels() * m_ptextStage->GetZoomX() / m_psprUnderscore->GetUnzoomedWidth();
|
||||
m_psprUnderscore->SetTweenZoomX( fDestZoom );
|
||||
m_psprUnderscore->BeginTweeningQueued( 0.3f ); // sleep
|
||||
m_psprUnderscore->BeginTweeningQueued( 0.4f ); // close
|
||||
m_psprUnderscore->SetTweenZoomX( 0 );
|
||||
this->AddActor( m_psprUnderscore );
|
||||
|
||||
|
||||
m_pWipe = new TransitionFadeWipe;
|
||||
m_pWipe->OpenWipingRight();
|
||||
this->AddActor( m_ptextStage );
|
||||
|
||||
this->SendScreenMessage( SM_LoadNoteData, 1 );
|
||||
this->SendScreenMessage( SM_StartFadingOut, 3 );
|
||||
}
|
||||
|
||||
|
||||
ScreenStage::~ScreenStage()
|
||||
{
|
||||
delete m_ptextStage;
|
||||
delete m_pWipe;
|
||||
}
|
||||
|
||||
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
|
||||
{
|
||||
switch( SM )
|
||||
{
|
||||
case SM_StartFadingOut:
|
||||
m_ptextStage->BeginTweening( 0.8f );
|
||||
m_ptextStage->SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||
m_textStage.BeginTweening( 0.8f );
|
||||
m_textStage.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||
this->SendScreenMessage( SM_GoToNextState, 0.8f );
|
||||
break;
|
||||
case SM_GoToNextState:
|
||||
SCREENMAN->SetNewScreen( new ScreenGameplay );
|
||||
break;
|
||||
case SM_LoadNoteData:
|
||||
SONGMAN->m_pCurSong->LoadFromCacheFile( true ); // load note data
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user