Moved more constants into theme metrics
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
------------------------CVS after 3.00 beta 6----------------
|
||||
CHANGE: After changing sort to "BEST", focus will be changed to the
|
||||
the most-played song.
|
||||
CHANGE: Texture Hints have been removed in favor of smarter, automatic
|
||||
texture format chooser.
|
||||
CHANGE: New Nullsoft NSIS installer.
|
||||
|
||||
@@ -102,7 +102,8 @@ CursorShadowLengthX=10
|
||||
CursorShadowLengthY=10
|
||||
HelpText=Use ! " to select, then press START
|
||||
TimerSeconds=40
|
||||
NextScreen=ScreenSelectGroup
|
||||
NextScreenArcade=ScreenSelectGroup
|
||||
NextScreenOni=ScreenHowToPlay
|
||||
|
||||
[ScreenSelectGroup]
|
||||
FrameX=180
|
||||
@@ -128,8 +129,7 @@ TitlesColumns=3
|
||||
TitlesRows=10
|
||||
HelpText=Use ! " to select, then press START
|
||||
TimerSeconds=40
|
||||
NextScreenArcade=ScreenHowToPlay
|
||||
NextScreenOni=ScreenHowToPlay
|
||||
NextScreen=ScreenHowToPlay
|
||||
|
||||
[ScreenHowToPlay]
|
||||
NextScreenArcade=ScreenSelectMusic
|
||||
@@ -180,6 +180,7 @@ SongOptionsX=160
|
||||
SongOptionsY=298
|
||||
HelpText=! or " change music Hold ! and " then press START to change sort::## easier difficulty $$ harder difficulty::#$#$ to change sort
|
||||
TimerSeconds=60
|
||||
ScoreConnectedToMusicWheel=1
|
||||
|
||||
[ScreenSelectCourse]
|
||||
BannerFrameX=160
|
||||
@@ -421,10 +422,51 @@ RainbowColor7=1.0,0.8,0.2,1 // orange
|
||||
|
||||
[SongManager]
|
||||
GroupColor1=0.8,0.1,0.6,1 // pink
|
||||
GroupColor2=0.5,0.3,0.7,1 // purple
|
||||
GroupColor2=0.6,0.4,0.8,1 // purple
|
||||
GroupColor3=0.0,0.4,0.8,1 // sky blue
|
||||
GroupColor4=0.0,0.6,0.6,1 // sea green
|
||||
GroupColor5=0.1,0.7,0.3,1 // green
|
||||
GroupColor6=0.8,0.6,0.0,1 // orange
|
||||
GroupColor7=1.0,0.3,0.3,1 // light red
|
||||
ExtraColor=1,0,0,1 // red
|
||||
ExtraColor=1.0,0.0,0.0,1.0 // red
|
||||
|
||||
[Background]
|
||||
LeftEdge=20
|
||||
TopEdge=40
|
||||
RightEdge=620
|
||||
BottomEdge=424
|
||||
|
||||
[Player]
|
||||
JudgePerfectZoomX=1.3
|
||||
JudgePerfectZoomY=1.3
|
||||
JudgeGreatZoomX=1.2
|
||||
JudgeGreatZoomY=1.2
|
||||
JudgeGoodZoomX=1.1
|
||||
JudgeGoodZoomY=1.1
|
||||
JudgeBooZoomX=1.0
|
||||
JudgeBooZoomY=1.0
|
||||
ComboJudgeTweenSeconds=0.1
|
||||
|
||||
[GameState]
|
||||
StageColorDemo=0.3,1.0,0.3,1 // green
|
||||
StageColorNormal=0.3,1.0,0.3,1 // green
|
||||
StageColorFinal=1.0,0.1,0.1,1 // red
|
||||
StageColorExtra1=1.0,1,0.3,1 // yellow
|
||||
StageColorExtra2=1.0,1,0.3,1 // yellow
|
||||
StageColorOni=0.3,1.0,0.3,1 // green
|
||||
StageTextDemo=Demo
|
||||
StageTextFinal=Final
|
||||
StageTextExtra1=Extra
|
||||
StageTextExtra2=Extra2
|
||||
|
||||
[BPMDisplay]
|
||||
NormalColorTop=1.0,1.0,0.0,1 // yellow
|
||||
NormalColorBottom=1.0,0.5,0.0,1 // orange
|
||||
ChangeColorTop=1.0,0.0,0.0,1 // red
|
||||
ChangeColorBottom=0.6,0.0,0.0,1 // dark red
|
||||
ExtraColorTop=1.0,0.0,0.0,1 // red
|
||||
ExtraColorBottom=0.6,0.0,0.0,1 // dark red
|
||||
|
||||
[GrayArrow]
|
||||
StepZoom=0.75
|
||||
StepSeconds=0.2
|
||||
|
||||
@@ -83,19 +83,19 @@ try_again:
|
||||
"The current announcer is missing the folder '%s'.\n"
|
||||
"It may be that these sounds were never implemented in this announcer,\n"
|
||||
"Or the folder may be misnamed.\n\n"
|
||||
"Click Abort to automatically create the folder.\n"
|
||||
"Click Abort to break.\n"
|
||||
"Click Retry after adding the folder menually.\n"
|
||||
"Click to break.", sFolderName), MB_ABORTRETRYIGNORE );
|
||||
"Click Ignore to to automatically create the folder.\n\n", sFolderName), MB_ABORTRETRYIGNORE );
|
||||
switch( iResult )
|
||||
{
|
||||
case IDABORT:
|
||||
CreateDirectory( sPathToFolderCurrent, NULL );
|
||||
DebugBreak();
|
||||
break;
|
||||
case IDRETRY:
|
||||
goto try_again;
|
||||
break;
|
||||
case IDIGNORE:
|
||||
DebugBreak();
|
||||
CreateDirectory( sPathToFolderCurrent, NULL );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -105,19 +105,19 @@ try_again:
|
||||
ssprintf(
|
||||
"The empty announcer is missing the folder '%s'.\n"
|
||||
"This announcer should have empty folders for every saying.\n\n"
|
||||
"Click Abort to automatically create the folder.\n"
|
||||
"Click Abort to break.\n"
|
||||
"Click Retry after adding the folder menually.\n"
|
||||
"Click to break.", sFolderName), MB_ABORTRETRYIGNORE );
|
||||
"Click Ignore to to automatically create the folder.\n\n", sFolderName), MB_ABORTRETRYIGNORE );
|
||||
switch( iResult )
|
||||
{
|
||||
case IDABORT:
|
||||
CreateDirectory( sPathToFolderEmpty, NULL );
|
||||
DebugBreak();
|
||||
break;
|
||||
case IDRETRY:
|
||||
goto try_again;
|
||||
break;
|
||||
case IDIGNORE:
|
||||
DebugBreak();
|
||||
CreateDirectory( sPathToFolderEmpty, NULL );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,14 +13,23 @@
|
||||
#include "RageUtil.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "GameState.h"
|
||||
|
||||
|
||||
#define NORMAL_COLOR_TOP THEME->GetMetricC("BPMDisplay","NormalColorTop")
|
||||
#define NORMAL_COLOR_BOTTOM THEME->GetMetricC("BPMDisplay","NormalColorBottom")
|
||||
#define CHANGE_COLOR_TOP THEME->GetMetricC("BPMDisplay","ChangeColorTop")
|
||||
#define CHANGE_COLOR_BOTTOM THEME->GetMetricC("BPMDisplay","ChangeColorBottom")
|
||||
#define EXTRA_COLOR_TOP THEME->GetMetricC("BPMDisplay","ExtraColorTop")
|
||||
#define EXTRA_COLOR_BOTTOM THEME->GetMetricC("BPMDisplay","ExtraColorBottom")
|
||||
|
||||
|
||||
BPMDisplay::BPMDisplay()
|
||||
{
|
||||
m_fCurrentBPM = m_fLowBPM = m_fHighBPM = 0;
|
||||
m_CountingState = holding_down;
|
||||
m_fTimeLeftInState = 0;
|
||||
m_bExtraStage = GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2();
|
||||
|
||||
m_rectFrame.SetDiffuseColor( D3DXCOLOR(0,0,0,0.3f) );
|
||||
m_rectFrame.SetZoomX( 120 );
|
||||
@@ -32,8 +41,8 @@ BPMDisplay::BPMDisplay()
|
||||
//m_textBPM.SetSequence( ssprintf("999") );
|
||||
m_textBPM.SetXY( -23, 0 );
|
||||
m_textBPM.SetZoom( 1.0f );
|
||||
m_textBPM.SetDiffuseColorTopEdge( D3DXCOLOR(1,1,0,1) ); // yellow
|
||||
m_textBPM.SetDiffuseColorBottomEdge( D3DXCOLOR(1,0.5f,0,1) ); // orange
|
||||
m_textBPM.SetDiffuseColorTopEdge( NORMAL_COLOR_TOP ); // yellow
|
||||
m_textBPM.SetDiffuseColorBottomEdge( NORMAL_COLOR_BOTTOM ); // orange
|
||||
|
||||
m_textLabel.LoadFromFont( THEME->GetPathTo("Fonts","header1") );
|
||||
m_textLabel.TurnShadowOff();
|
||||
@@ -41,8 +50,8 @@ BPMDisplay::BPMDisplay()
|
||||
m_textLabel.SetText( "BPM" );
|
||||
m_textLabel.SetZoom( 0.7f );
|
||||
m_textLabel.SetZoomX( 0.5f );
|
||||
m_textLabel.SetDiffuseColorTopEdge( D3DXCOLOR(1,1,0,1) ); // yellow
|
||||
m_textLabel.SetDiffuseColorBottomEdge( D3DXCOLOR(1,0.5f,0,1) ); // orange
|
||||
m_textLabel.SetDiffuseColorTopEdge( NORMAL_COLOR_TOP ); // yellow
|
||||
m_textLabel.SetDiffuseColorBottomEdge( NORMAL_COLOR_BOTTOM ); // orange
|
||||
|
||||
//this->AddSubActor( &m_rectFrame );
|
||||
this->AddSubActor( &m_textBPM );
|
||||
@@ -54,28 +63,40 @@ void BPMDisplay::Update( float fDeltaTime )
|
||||
{
|
||||
ActorFrame::Update( fDeltaTime );
|
||||
|
||||
m_fTimeLeftInState -= fDeltaTime;
|
||||
if( m_fTimeLeftInState < 0 )
|
||||
if( m_bExtraStage )
|
||||
{
|
||||
// go to next state
|
||||
m_fTimeLeftInState -= fDeltaTime;
|
||||
if( m_fTimeLeftInState < 0 )
|
||||
{
|
||||
m_textBPM.SetText( (RandomFloat(0,1)>0.90) ? "???" : ssprintf("%03.0f",RandomFloat(0,600)) );
|
||||
m_fTimeLeftInState = 0.2f; // reset timer
|
||||
}
|
||||
}
|
||||
else // !m_bExtraStage
|
||||
{
|
||||
m_fTimeLeftInState -= fDeltaTime;
|
||||
if( m_fTimeLeftInState < 0 )
|
||||
{
|
||||
// go to next state
|
||||
switch( m_CountingState )
|
||||
{
|
||||
case counting_up: m_CountingState = holding_up; break;
|
||||
case holding_up: m_CountingState = counting_down; break;
|
||||
case counting_down: m_CountingState = holding_down; break;
|
||||
case holding_down: m_CountingState = counting_up; break;
|
||||
}
|
||||
m_fTimeLeftInState = 1; // reset timer
|
||||
}
|
||||
|
||||
switch( m_CountingState )
|
||||
{
|
||||
case counting_up: m_CountingState = holding_up; break;
|
||||
case holding_up: m_CountingState = counting_down; break;
|
||||
case counting_down: m_CountingState = holding_down; break;
|
||||
case holding_down: m_CountingState = counting_up; break;
|
||||
case counting_down: m_fCurrentBPM = m_fLowBPM + (m_fHighBPM-m_fLowBPM)*m_fTimeLeftInState; break;
|
||||
case counting_up: m_fCurrentBPM = m_fHighBPM + (m_fLowBPM-m_fHighBPM)*m_fTimeLeftInState; break;
|
||||
case holding_up: m_fCurrentBPM = m_fHighBPM; break;
|
||||
case holding_down: m_fCurrentBPM = m_fLowBPM; break;
|
||||
}
|
||||
m_fTimeLeftInState = 1; // reset timer
|
||||
m_textBPM.SetText( ssprintf("%03.0f", m_fCurrentBPM) );
|
||||
}
|
||||
|
||||
switch( m_CountingState )
|
||||
{
|
||||
case counting_down: m_fCurrentBPM = m_fLowBPM + (m_fHighBPM-m_fLowBPM)*m_fTimeLeftInState; break;
|
||||
case counting_up: m_fCurrentBPM = m_fHighBPM + (m_fLowBPM-m_fHighBPM)*m_fTimeLeftInState; break;
|
||||
case holding_up: m_fCurrentBPM = m_fHighBPM; break;
|
||||
case holding_down: m_fCurrentBPM = m_fLowBPM; break;
|
||||
}
|
||||
m_textBPM.SetText( ssprintf("%03.0f", m_fCurrentBPM) );
|
||||
}
|
||||
|
||||
|
||||
@@ -89,23 +110,29 @@ void BPMDisplay::SetBPMRange( float fLowBPM, float fHighBPM )
|
||||
m_CountingState = counting_up;
|
||||
m_fTimeLeftInState = 1;
|
||||
|
||||
if( m_fLowBPM != m_fHighBPM )
|
||||
m_textBPM.BeginTweening(0.5f);
|
||||
m_textLabel.BeginTweening(0.5f);
|
||||
|
||||
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
|
||||
{
|
||||
m_textBPM.BeginTweening(0.5f);
|
||||
m_textBPM.SetTweenDiffuseColorTopEdge( D3DXCOLOR(1,0,0,1) ); // red
|
||||
m_textBPM.SetTweenDiffuseColorBottomEdge( D3DXCOLOR(0.6f,0,0,1) ); // dark red
|
||||
m_textLabel.BeginTweening(0.5f);
|
||||
m_textLabel.SetTweenDiffuseColorTopEdge( D3DXCOLOR(1,0,0,1) ); // red
|
||||
m_textLabel.SetTweenDiffuseColorBottomEdge( D3DXCOLOR(0.6f,0,0,1) ); // dark red
|
||||
m_textBPM.SetTweenDiffuseColorTopEdge( EXTRA_COLOR_TOP );
|
||||
m_textBPM.SetTweenDiffuseColorBottomEdge( EXTRA_COLOR_BOTTOM );
|
||||
m_textLabel.SetTweenDiffuseColorTopEdge( EXTRA_COLOR_TOP );
|
||||
m_textLabel.SetTweenDiffuseColorBottomEdge( EXTRA_COLOR_BOTTOM );
|
||||
}
|
||||
else if( m_fLowBPM != m_fHighBPM )
|
||||
{
|
||||
m_textBPM.SetTweenDiffuseColorTopEdge( CHANGE_COLOR_TOP );
|
||||
m_textBPM.SetTweenDiffuseColorBottomEdge( CHANGE_COLOR_BOTTOM );
|
||||
m_textLabel.SetTweenDiffuseColorTopEdge( CHANGE_COLOR_TOP );
|
||||
m_textLabel.SetTweenDiffuseColorBottomEdge( CHANGE_COLOR_BOTTOM );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_textBPM.BeginTweening(0.5f);
|
||||
m_textBPM.SetTweenDiffuseColorTopEdge( D3DXCOLOR(1,1,0,1) ); // yellow
|
||||
m_textBPM.SetTweenDiffuseColorBottomEdge( D3DXCOLOR(1,0.5f,0,1) ); // orange
|
||||
m_textLabel.BeginTweening(0.5f);
|
||||
m_textLabel.SetTweenDiffuseColorTopEdge( D3DXCOLOR(1,1,0,1) ); // yellow
|
||||
m_textLabel.SetTweenDiffuseColorBottomEdge( D3DXCOLOR(1,0.5f,0,1) ); // orange
|
||||
m_textBPM.SetTweenDiffuseColorTopEdge( NORMAL_COLOR_TOP );
|
||||
m_textBPM.SetTweenDiffuseColorBottomEdge( NORMAL_COLOR_BOTTOM );
|
||||
m_textLabel.SetTweenDiffuseColorTopEdge( NORMAL_COLOR_TOP );
|
||||
m_textLabel.SetTweenDiffuseColorBottomEdge( NORMAL_COLOR_BOTTOM );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,6 +37,8 @@ protected:
|
||||
enum CountingState{ counting_up, holding_up, counting_down, holding_down };
|
||||
CountingState m_CountingState;
|
||||
float m_fTimeLeftInState;
|
||||
|
||||
bool m_bExtraStage; // cycle BPM through random values if extra stage
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -26,12 +26,12 @@ const CString VISUALIZATIONS_DIR = "Visualizations\\";
|
||||
const CString RANDOMMOVIES_DIR = "RandomMovies\\";
|
||||
|
||||
// TODO: Move these into theme metrics
|
||||
const int BACKGROUND_LEFT = 0;
|
||||
const int BACKGROUND_TOP = 0;
|
||||
const int BACKGROUND_RIGHT = 640;
|
||||
const int BACKGROUND_BOTTOM = 480;
|
||||
#define LEFT_EDGE THEME->GetMetricI("Background","LeftEdge")
|
||||
#define TOP_EDGE THEME->GetMetricI("Background","TopEdge")
|
||||
#define RIGHT_EDGE THEME->GetMetricI("Background","RightEdge")
|
||||
#define BOTTOM_EDGE THEME->GetMetricI("Background","BottomEdge")
|
||||
|
||||
#define RECT_BACKGROUND CRect(BACKGROUND_LEFT,BACKGROUND_TOP,BACKGROUND_RIGHT,BACKGROUND_BOTTOM)
|
||||
#define RECT_BACKGROUND CRect(LEFT_EDGE,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE)
|
||||
|
||||
int CompareBGSegments(const void *arg1, const void *arg2)
|
||||
{
|
||||
@@ -75,14 +75,14 @@ Background::Background()
|
||||
m_quadBGBrightness.StretchTo( RECT_BACKGROUND );
|
||||
m_quadBGBrightness.SetDiffuseColor( D3DXCOLOR(0,0,0,1-0.5f) );
|
||||
|
||||
m_quadBorder[0].StretchTo( CRect(SCREEN_LEFT,SCREEN_TOP,BACKGROUND_LEFT,SCREEN_BOTTOM) );
|
||||
m_quadBorder[0].SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadBorder[1].StretchTo( CRect(BACKGROUND_LEFT,SCREEN_TOP,BACKGROUND_RIGHT,BACKGROUND_TOP) );
|
||||
m_quadBorder[1].SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadBorder[2].StretchTo( CRect(BACKGROUND_RIGHT,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
m_quadBorder[2].SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadBorder[3].StretchTo( CRect(BACKGROUND_LEFT,SCREEN_TOP,BACKGROUND_RIGHT,BACKGROUND_TOP) );
|
||||
m_quadBorder[3].SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadBorder[0].StretchTo( CRect(SCREEN_LEFT,SCREEN_TOP,LEFT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[0].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||
m_quadBorder[1].StretchTo( CRect(LEFT_EDGE,SCREEN_TOP,RIGHT_EDGE,TOP_EDGE) );
|
||||
m_quadBorder[1].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||
m_quadBorder[2].StretchTo( CRect(RIGHT_EDGE,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
m_quadBorder[2].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||
m_quadBorder[3].StretchTo( CRect(LEFT_EDGE,BOTTOM_EDGE,RIGHT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[3].SetDiffuseColor( D3DXCOLOR(0,0,0,1) );
|
||||
}
|
||||
|
||||
Background::~Background()
|
||||
@@ -95,6 +95,8 @@ void Background::Unload()
|
||||
for( int i=0; i<m_BackgroundAnimations.GetSize(); i++ )
|
||||
delete m_BackgroundAnimations[i];
|
||||
m_BackgroundAnimations.RemoveAll();
|
||||
|
||||
m_aBGSegments.RemoveAll();
|
||||
}
|
||||
|
||||
void Background::LoadFromSong( Song* pSong )
|
||||
@@ -104,6 +106,12 @@ void Background::LoadFromSong( Song* pSong )
|
||||
/* Correct. I added the same chage. -Chris */
|
||||
Unload();
|
||||
|
||||
|
||||
const float fXZoom = RECTWIDTH(RECT_BACKGROUND) / (float)SCREEN_WIDTH;
|
||||
const float fYZoom = RECTHEIGHT(RECT_BACKGROUND) / (float)SCREEN_HEIGHT;
|
||||
const float fZoom = max(fXZoom,fYZoom);
|
||||
|
||||
|
||||
//
|
||||
// figure out what BackgroundMode to use
|
||||
//
|
||||
@@ -242,7 +250,10 @@ void Background::LoadFromSong( Song* pSong )
|
||||
{
|
||||
CStringArray arrayPossibleAnims;
|
||||
GetDirListing( BG_ANIMS_DIR+"*.*", arrayPossibleAnims, true, true );
|
||||
for( int i=0; i<4 && arrayPossibleAnims.GetSize()>0; i++ )
|
||||
for( int i=arrayPossibleAnims.GetSize()-1; i>=0; i-- )
|
||||
if( 0==stricmp(arrayPossibleAnims[i].Right(3),"cvs") )
|
||||
arrayPossibleAnims.RemoveAt(i);
|
||||
for( i=0; i<4 && arrayPossibleAnims.GetSize()>0; i++ )
|
||||
{
|
||||
int index = rand() % arrayPossibleAnims.GetSize();
|
||||
pTempBGA = new BackgroundAnimation;
|
||||
@@ -327,7 +338,11 @@ void Background::LoadFromSong( Song* pSong )
|
||||
|
||||
}
|
||||
|
||||
|
||||
for( int i=0; i<m_BackgroundAnimations.GetSize(); i++ )
|
||||
{
|
||||
m_BackgroundAnimations[i]->SetXY( (float)LEFT_EDGE, (float)TOP_EDGE );
|
||||
m_BackgroundAnimations[i]->SetZoom( fZoom );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+22
-14
@@ -21,6 +21,18 @@
|
||||
GameState* GAMESTATE = NULL; // global and accessable from anywhere in our program
|
||||
|
||||
|
||||
#define STAGE_COLOR_DEMO THEME->GetMetricC("GameState","StageColorDemo")
|
||||
#define STAGE_COLOR_NORMAL THEME->GetMetricC("GameState","StageColorNormal")
|
||||
#define STAGE_COLOR_FINAL THEME->GetMetricC("GameState","StageColorFinal")
|
||||
#define STAGE_COLOR_EXTRA1 THEME->GetMetricC("GameState","StageColorExtra1")
|
||||
#define STAGE_COLOR_EXTRA2 THEME->GetMetricC("GameState","StageColorExtra2")
|
||||
#define STAGE_COLOR_ONI THEME->GetMetricC("GameState","StageColorOni")
|
||||
#define STAGE_TEXT_DEMO THEME->GetMetric("GameState","StageTextDemo")
|
||||
#define STAGE_TEXT_FINAL THEME->GetMetric("GameState","StageTextFinal")
|
||||
#define STAGE_TEXT_EXTRA1 THEME->GetMetric("GameState","StageTextExtra1")
|
||||
#define STAGE_TEXT_EXTRA2 THEME->GetMetric("GameState","StageTextExtra2")
|
||||
|
||||
|
||||
GameState::GameState()
|
||||
{
|
||||
m_CurGame = GAME_DANCE;
|
||||
@@ -210,14 +222,10 @@ bool GameState::IsExtraStage2()
|
||||
|
||||
CString GameState::GetStageText()
|
||||
{
|
||||
if( m_bDemonstration )
|
||||
return "Demo";
|
||||
else if( IsFinalStage() )
|
||||
return "Final";
|
||||
else if( IsExtraStage() )
|
||||
return "Extra";
|
||||
else if( IsExtraStage2() )
|
||||
return "Extra 2";
|
||||
if( m_bDemonstration ) return STAGE_TEXT_DEMO;
|
||||
else if( IsFinalStage() ) return STAGE_TEXT_FINAL;
|
||||
else if( IsExtraStage() ) return STAGE_TEXT_EXTRA1;
|
||||
else if( IsExtraStage2() ) return STAGE_TEXT_EXTRA2;
|
||||
|
||||
|
||||
int iStageNo = m_iCurrentStageIndex+1;
|
||||
@@ -243,12 +251,12 @@ CString GameState::GetStageText()
|
||||
|
||||
D3DXCOLOR GameState::GetStageColor()
|
||||
{
|
||||
if( IsFinalStage() )
|
||||
return D3DXCOLOR(1,0.1f,0.1f,1); // red
|
||||
else if( IsExtraStage() || IsExtraStage2() )
|
||||
return D3DXCOLOR(1,1,0.3f,1); // yellow
|
||||
else
|
||||
return D3DXCOLOR(0.3f,1,0.3f,1); // green
|
||||
if( m_bDemonstration ) return STAGE_COLOR_DEMO;
|
||||
else if( m_PlayMode==PLAY_MODE_ONI || m_PlayMode==PLAY_MODE_ENDLESS ) return STAGE_COLOR_ONI;
|
||||
else if( IsFinalStage() ) return STAGE_COLOR_FINAL;
|
||||
else if( IsExtraStage() ) return STAGE_COLOR_EXTRA1;
|
||||
else if( IsExtraStage2() ) return STAGE_COLOR_EXTRA2;
|
||||
else return STAGE_COLOR_NORMAL;
|
||||
}
|
||||
|
||||
GameDef* GameState::GetCurrentGameDef()
|
||||
|
||||
@@ -16,16 +16,24 @@
|
||||
#include "GameState.h"
|
||||
|
||||
|
||||
const float GRAY_ARROW_POP_UP_TIME = 0.15f;
|
||||
#define STEP_SECONDS THEME->GetMetricF("GrayArrow","StepSeconds")
|
||||
#define STEP_ZOOM THEME->GetMetricF("GrayArrow","StepZoom")
|
||||
|
||||
float g_fStepSeconds, g_fStepZoom;
|
||||
|
||||
|
||||
GrayArrow::GrayArrow()
|
||||
{
|
||||
g_fStepSeconds = STEP_SECONDS;
|
||||
g_fStepZoom = STEP_ZOOM;
|
||||
|
||||
StopAnimating();
|
||||
}
|
||||
|
||||
void GrayArrow::Update( float fDeltaTime )
|
||||
{
|
||||
ASSERT( Sprite::GetNumStates() > 0 ); // you forgot to call Load()
|
||||
|
||||
Sprite::Update( fDeltaTime );
|
||||
|
||||
float fPercentIntoBeat = fmodf(GAMESTATE->m_fSongBeat,1);
|
||||
@@ -38,7 +46,7 @@ void GrayArrow::Update( float fDeltaTime )
|
||||
|
||||
void GrayArrow::Step()
|
||||
{
|
||||
SetZoom( 0.75f );
|
||||
BeginTweening( GRAY_ARROW_POP_UP_TIME );
|
||||
SetTweenZoom( 1.0f );
|
||||
SetZoom( g_fStepZoom );
|
||||
BeginTweening( g_fStepSeconds );
|
||||
SetTweenZoom( 1 );
|
||||
}
|
||||
|
||||
@@ -82,7 +82,6 @@ void Judgement::SetJudgement( TapNoteScore score )
|
||||
{
|
||||
// falling down
|
||||
m_sprJudgement.SetY( -20 );
|
||||
//m_sprJudgement.SetZoom( 1.0f );
|
||||
m_sprJudgement.BeginTweening( JUDGEMENT_DISPLAY_TIME );
|
||||
m_sprJudgement.SetTweenY( 20 );
|
||||
}
|
||||
|
||||
@@ -161,9 +161,6 @@ void WheelItemDisplay::LoadFromWheelItemData( WheelItemData* pWID )
|
||||
{
|
||||
m_TextBanner.LoadFromSong( m_pSong );
|
||||
D3DXCOLOR color = m_color;
|
||||
color.r += 0.15f;
|
||||
color.g += 0.15f;
|
||||
color.b += 0.15f;
|
||||
m_TextBanner.SetDiffuseColor( color );
|
||||
m_MusicStatusDisplay.SetType( m_IconType );
|
||||
RefreshGrades();
|
||||
@@ -814,6 +811,21 @@ void MusicWheel::Update( float fDeltaTime )
|
||||
}
|
||||
}
|
||||
|
||||
// If changed sort to "BEST", put selection on most popular song
|
||||
if( GAMESTATE->m_SongSortOrder == SORT_MOST_PLAYED )
|
||||
{
|
||||
for( i=0; i<GetCurWheelItemDatas().GetSize(); i++ )
|
||||
{
|
||||
if( GetCurWheelItemDatas()[i].m_pSong != NULL )
|
||||
{
|
||||
m_iSelection = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SCREENMAN->SendMessageToTopScreen( SM_SongChanged, 0 );
|
||||
|
||||
RebuildWheelItemDisplays();
|
||||
|
||||
TweenOnScreen();
|
||||
|
||||
+46
-10
@@ -24,6 +24,28 @@
|
||||
#include "RageLog.h"
|
||||
|
||||
|
||||
#define JUDGE_PERFECT_ZOOM_X THEME->GetMetricF("Player","JudgePerfectZoomX")
|
||||
#define JUDGE_PERFECT_ZOOM_Y THEME->GetMetricF("Player","JudgePerfectZoomY")
|
||||
#define JUDGE_GREAT_ZOOM_X THEME->GetMetricF("Player","JudgeGreatZoomX")
|
||||
#define JUDGE_GREAT_ZOOM_Y THEME->GetMetricF("Player","JudgeGreatZoomY")
|
||||
#define JUDGE_GOOD_ZOOM_X THEME->GetMetricF("Player","JudgeGoodZoomX")
|
||||
#define JUDGE_GOOD_ZOOM_Y THEME->GetMetricF("Player","JudgeGoodZoomY")
|
||||
#define JUDGE_BOO_ZOOM_X THEME->GetMetricF("Player","JudgeBooZoomX")
|
||||
#define JUDGE_BOO_ZOOM_Y THEME->GetMetricF("Player","JudgeBooZoomY")
|
||||
#define COMBO_JUDGE_TWEEN_SECONDS THEME->GetMetricF("Player","ComboJudgeTweenSeconds")
|
||||
|
||||
|
||||
// cache because reading from theme metrics is slow
|
||||
float g_fJudgePerfectZoomX,
|
||||
g_fJudgePerfectZoomY,
|
||||
g_fJudgeGreatZoomX,
|
||||
g_fJudgeGreatZoomY,
|
||||
g_fJudgeGoodZoomX,
|
||||
g_fJudgeGoodZoomY,
|
||||
g_fJudgeBooZoomX,
|
||||
g_fJudgeBooZoomY,
|
||||
g_fComboJudgeTweenSeconds;
|
||||
|
||||
// these two items are in the
|
||||
const float FRAME_JUDGE_AND_COMBO_Y = CENTER_Y;
|
||||
const float JUDGEMENT_Y_OFFSET = -26;
|
||||
@@ -39,6 +61,18 @@ const float HOLD_ARROW_NG_TIME = 0.18f;
|
||||
|
||||
Player::Player()
|
||||
{
|
||||
// Update theme metrics cache
|
||||
g_fJudgePerfectZoomX = JUDGE_PERFECT_ZOOM_X;
|
||||
g_fJudgePerfectZoomY = JUDGE_PERFECT_ZOOM_Y;
|
||||
g_fJudgeGreatZoomX = JUDGE_GREAT_ZOOM_X;
|
||||
g_fJudgeGreatZoomY = JUDGE_GREAT_ZOOM_Y;
|
||||
g_fJudgeGoodZoomX = JUDGE_GOOD_ZOOM_X;
|
||||
g_fJudgeGoodZoomY = JUDGE_GOOD_ZOOM_Y;
|
||||
g_fJudgeBooZoomX = JUDGE_BOO_ZOOM_X;
|
||||
g_fJudgeBooZoomY = JUDGE_BOO_ZOOM_Y;
|
||||
g_fComboJudgeTweenSeconds = COMBO_JUDGE_TWEEN_SECONDS;
|
||||
|
||||
|
||||
m_PlayerNumber = PLAYER_INVALID;
|
||||
|
||||
m_pLifeMeter = NULL;
|
||||
@@ -352,7 +386,7 @@ void Player::Step( int col )
|
||||
if( GAMESTATE->m_bDemonstration || PREFSMAN->m_bAutoPlay )
|
||||
score = TNS_PERFECT;
|
||||
|
||||
bDestroyedNote = score >= TNS_GOOD;
|
||||
bDestroyedNote = (score >= TNS_GOOD);
|
||||
|
||||
|
||||
bool bRowDestroyed = true;
|
||||
@@ -418,20 +452,22 @@ void Player::OnRowDestroyed( int col, int iIndexThatWasSteppedOn )
|
||||
m_Judgement.SetJudgement( score );
|
||||
|
||||
// zoom the judgement and combo like a heart beat
|
||||
float fStartZoom;
|
||||
float fStartZoomX, fStartZoomY;
|
||||
switch( score )
|
||||
{
|
||||
case TNS_PERFECT: fStartZoom = 1.3f; break;
|
||||
case TNS_GREAT: fStartZoom = 1.2f; break;
|
||||
case TNS_GOOD: fStartZoom = 1.1f; break;
|
||||
case TNS_BOO: fStartZoom = 1.0f; break;
|
||||
case TNS_PERFECT: fStartZoomX = g_fJudgePerfectZoomX; fStartZoomY = g_fJudgePerfectZoomY; break;
|
||||
case TNS_GREAT: fStartZoomX = g_fJudgeGreatZoomX; fStartZoomY = g_fJudgeGreatZoomY; break;
|
||||
case TNS_GOOD: fStartZoomX = g_fJudgeGoodZoomX; fStartZoomY = g_fJudgeGoodZoomY; break;
|
||||
case TNS_BOO: fStartZoomX = g_fJudgeBooZoomX; fStartZoomY = g_fJudgeBooZoomY; break;
|
||||
}
|
||||
m_frameJudgement.SetZoom( fStartZoom );
|
||||
m_frameJudgement.BeginTweening( 0.1f );
|
||||
m_frameJudgement.SetZoomX( fStartZoomX );
|
||||
m_frameJudgement.SetZoomY( fStartZoomY );
|
||||
m_frameJudgement.BeginTweening( g_fComboJudgeTweenSeconds );
|
||||
m_frameJudgement.SetTweenZoom( 1 );
|
||||
|
||||
m_frameCombo.SetZoom( fStartZoom );
|
||||
m_frameCombo.BeginTweening( 0.1f );
|
||||
m_frameCombo.SetZoomX( fStartZoomX );
|
||||
m_frameCombo.SetZoomY( fStartZoomY );
|
||||
m_frameCombo.BeginTweening( g_fComboJudgeTweenSeconds );
|
||||
m_frameCombo.SetTweenZoom( 1 );
|
||||
}
|
||||
|
||||
|
||||
@@ -744,24 +744,27 @@ void ScreenEvaluation::TweenOnScreen()
|
||||
apActorsInBonusOrStageInfo[i]->SetTweenX( fOriginalX );
|
||||
}
|
||||
|
||||
m_sprGradeFrame[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprGradeFrame[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_Grades[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_Grades[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textOniPercentLarge[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentLarge[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textOniPercentSmall[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentSmall[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textNewRecord[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textNewRecord[p].SetTweenZoomY( 0 );
|
||||
CArray<Actor*,Actor*> apActorsInGradeOrPercentFrame;
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprBonusFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprGradeFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_Grades[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprPercentFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textOniPercentLarge[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textOniPercentSmall[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textNewRecord[p] );
|
||||
for( i=0; i<apActorsInGradeOrPercentFrame.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalZoomY = apActorsInGradeOrPercentFrame[i]->GetZoomY();
|
||||
apActorsInGradeOrPercentFrame[i]->SetZoomY( 0 );
|
||||
apActorsInGradeOrPercentFrame[i]->BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
apActorsInGradeOrPercentFrame[i]->SetTweenZoomY( fOriginalZoomY );
|
||||
}
|
||||
}
|
||||
|
||||
float fOriginalZoomY = m_textTryExtraStage.GetZoomY();
|
||||
m_textTryExtraStage.SetZoomY( 0 );
|
||||
m_textTryExtraStage.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textTryExtraStage.SetTweenZoomY( 0 );
|
||||
m_textTryExtraStage.SetTweenZoomY( fOriginalZoomY );
|
||||
}
|
||||
|
||||
void ScreenEvaluation::TweenOffScreen()
|
||||
@@ -821,22 +824,21 @@ void ScreenEvaluation::TweenOffScreen()
|
||||
apActorsInBonusOrStageInfo[i]->SetTweenZoomY( 0 );
|
||||
}
|
||||
|
||||
m_sprGradeFrame[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprGradeFrame[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_Grades[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_Grades[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textOniPercentLarge[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentLarge[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textOniPercentSmall[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentSmall[p].SetTweenZoomY( 0 );
|
||||
|
||||
m_textNewRecord[p].BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textNewRecord[p].SetTweenZoomY( 0 );
|
||||
CArray<Actor*,Actor*> apActorsInGradeOrPercentFrame;
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprBonusFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprGradeFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_Grades[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_sprPercentFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textOniPercentLarge[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textOniPercentSmall[p] );
|
||||
apActorsInGradeOrPercentFrame.Add( &m_textNewRecord[p] );
|
||||
for( i=0; i<apActorsInGradeOrPercentFrame.GetSize(); i++ )
|
||||
{
|
||||
apActorsInGradeOrPercentFrame[i]->BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
apActorsInGradeOrPercentFrame[i]->SetTweenZoomY( 0 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
m_textTryExtraStage.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textTryExtraStage.SetTweenZoomY( 0 );
|
||||
}
|
||||
|
||||
@@ -340,11 +340,12 @@ void ScreenEz2SelectStyle::MenuStart( PlayerNumber p )
|
||||
// GAMESTATE->m_bPlayersCanJoin = false;
|
||||
|
||||
CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
|
||||
if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
sCurStyleName.MakeLower();
|
||||
if( -1!=sCurStyleName.Find("single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( -1!=sCurStyleName.Find("versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( -1!=sCurStyleName.Find("double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( -1!=sCurStyleName.Find("couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( -1!=sCurStyleName.Find("solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
|
||||
|
||||
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
||||
|
||||
@@ -196,6 +196,13 @@ ScreenGameplay::ScreenGameplay()
|
||||
{
|
||||
LOG->Trace( "ScreenGameplay::ScreenGameplay()" );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_pLifeMeter[p] = NULL;
|
||||
m_pScoreDisplay[p] = NULL;
|
||||
}
|
||||
|
||||
|
||||
MUSIC->Stop();
|
||||
|
||||
GAMESTATE->ResetStageStatistics(); // clear values
|
||||
@@ -295,21 +302,7 @@ ScreenGameplay::ScreenGameplay()
|
||||
|
||||
m_pLifeMeter[p]->Load( (PlayerNumber)p );
|
||||
m_pLifeMeter[p]->SetXY( LIFE_X(p), LIFE_Y(p,bExtra) );
|
||||
this->AddSubActor( m_pLifeMeter[p] );
|
||||
|
||||
/*
|
||||
Chris: EZ2 should change positions via Theme metrics
|
||||
|
||||
if( GAMESTATE->m_CurGame == GAME_EZ2 )
|
||||
{
|
||||
m_pScoreDisplay[p] = new ScoreDisplayNormal;
|
||||
m_pScoreDisplay[p]->SetXY( SCORE_LOCALEZ2_X[p], SCORE_LOCALEZ2_Y[p] );
|
||||
m_pScoreDisplay[p]->SetZoom( 0.5f );
|
||||
m_pScoreDisplay[p]->SetDiffuseColor( PlayerToColor(p) );
|
||||
m_frameTop.AddSubActor( m_pScoreDisplay[p] );
|
||||
}
|
||||
*/
|
||||
|
||||
this->AddSubActor( m_pLifeMeter[p] );
|
||||
}
|
||||
|
||||
// TopFrame goes above LifeMeter
|
||||
@@ -330,7 +323,7 @@ ScreenGameplay::ScreenGameplay()
|
||||
m_textCourseSongNumber[p].TurnShadowOff();
|
||||
m_textCourseSongNumber[p].SetXY( SONG_NUMBER_X(p), SONG_NUMBER_Y(p,bExtra) );
|
||||
m_textCourseSongNumber[p].SetText( "" );
|
||||
m_textCourseSongNumber[p].SetDiffuseColor( D3DXCOLOR(0.8f,0.8f,1,1) ); // light blue
|
||||
m_textCourseSongNumber[p].SetDiffuseColor( GAMESTATE->GetStageColor() ); // light blue
|
||||
}
|
||||
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
@@ -349,70 +342,36 @@ ScreenGameplay::ScreenGameplay()
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
// Add all Actors to m_frameBottom
|
||||
//////////////////////////////////
|
||||
//
|
||||
// Add all Actors in bottom frame
|
||||
//
|
||||
m_sprBottomFrame.Load( THEME->GetPathTo("Graphics",bExtra?"gameplay extra bottom frame":"gameplay bottom frame") );
|
||||
m_sprBottomFrame.SetXY( BOTTOM_FRAME_X, bExtra ? BOTTOM_FRAME_EXTRA_Y : BOTTOM_FRAME_Y );
|
||||
this->AddSubActor( &m_sprBottomFrame );
|
||||
|
||||
|
||||
/*
|
||||
Chris: Change this position using theme metrics
|
||||
|
||||
if( GAMESTATE->m_CurGame != GAME_EZ2 )
|
||||
{
|
||||
m_sprBottomFrame.Load( THEME->GetPathTo(GRAPHIC_GAMEPLAY_BOTTOM_FRAME) );
|
||||
m_frameBottom.AddSubActor( &m_sprBottomFrame );
|
||||
m_frameBottom.SetXY( CENTER_X, SCREEN_BOTTOM - m_sprBottomFrame.GetZoomedHeight()/2 );
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
/* Chris: I don't understand why EZ2 wouldn't want this.
|
||||
|
||||
if( GAMESTATE->m_CurGame != GAME_EZ2 )
|
||||
{
|
||||
*/
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_ARCADE:
|
||||
m_pScoreDisplay[p] = new ScoreDisplayNormal;
|
||||
break;
|
||||
case PLAY_MODE_ONI:
|
||||
case PLAY_MODE_ENDLESS:
|
||||
m_pScoreDisplay[p] = new ScoreDisplayOni;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
m_pScoreDisplay[p]->Init( (PlayerNumber)p );
|
||||
m_pScoreDisplay[p]->SetXY( SCORE_X(p), SCORE_Y(p,bExtra) );
|
||||
m_pScoreDisplay[p]->SetZoom( 0.8f );
|
||||
m_pScoreDisplay[p]->SetDiffuseColor( PlayerToColor(p) );
|
||||
this->AddSubActor( m_pScoreDisplay[p] );
|
||||
/*
|
||||
}
|
||||
*/
|
||||
|
||||
m_textPlayerOptions[p].LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
|
||||
if( !GAMESTATE->IsPlayerEnabled(PlayerNumber(p)) )
|
||||
continue;
|
||||
|
||||
/* Chris: EZ2 should control this with theme metrics
|
||||
|
||||
if( GAMESTATE->m_CurGame != GAME_EZ2 )
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
*/
|
||||
m_pScoreDisplay[p]->SetXY( SCORE_X(p), SCORE_Y(p,bExtra) );
|
||||
m_pScoreDisplay[p]->SetZoom( 0.8f );
|
||||
m_pScoreDisplay[p]->SetDiffuseColor( PlayerToColor(p) );
|
||||
this->AddSubActor( m_pScoreDisplay[p] );
|
||||
// }
|
||||
case PLAY_MODE_ARCADE:
|
||||
m_pScoreDisplay[p] = new ScoreDisplayNormal;
|
||||
break;
|
||||
case PLAY_MODE_ONI:
|
||||
case PLAY_MODE_ENDLESS:
|
||||
m_pScoreDisplay[p] = new ScoreDisplayOni;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
m_pScoreDisplay[p]->Init( (PlayerNumber)p );
|
||||
m_pScoreDisplay[p]->SetXY( SCORE_X(p), SCORE_Y(p,bExtra) );
|
||||
m_pScoreDisplay[p]->SetZoom( 0.8f );
|
||||
m_pScoreDisplay[p]->SetDiffuseColor( PlayerToColor(p) );
|
||||
this->AddSubActor( m_pScoreDisplay[p] );
|
||||
|
||||
m_textPlayerOptions[p].LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
m_textPlayerOptions[p].TurnShadowOff();
|
||||
@@ -421,7 +380,6 @@ ScreenGameplay::ScreenGameplay()
|
||||
m_textPlayerOptions[p].SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
m_textPlayerOptions[p].SetText( GAMESTATE->m_PlayerOptions[p].GetString() );
|
||||
this->AddSubActor( &m_textPlayerOptions[p] );
|
||||
//}
|
||||
}
|
||||
|
||||
m_textSongOptions.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
@@ -441,30 +399,6 @@ ScreenGameplay::ScreenGameplay()
|
||||
if( !GAMESTATE->IsPlayerEnabled(PlayerNumber(p)) )
|
||||
continue;
|
||||
|
||||
// CONFLICT RESOLUTION:
|
||||
// BY ANDY
|
||||
// <<<<<<< ScreenGameplay.cpp
|
||||
// =======
|
||||
// YOURS:
|
||||
/*
|
||||
float fDifficultyY = DIFFICULTY_Y[p];
|
||||
if( GAMESTATE->m_PlayerOptions[p].m_bReverseScroll )
|
||||
fDifficultyY = SCREEN_HEIGHT - DIFFICULTY_Y[p] -10; // HACK: move difficulty banner up 10 if reverse
|
||||
m_DifficultyBanner[p].SetXY( DIFFICULTY_X[p], fDifficultyY );
|
||||
this->AddSubActor( &m_DifficultyBanner[p] );
|
||||
*/
|
||||
//>>>>>>> 1.32 MINE
|
||||
/*
|
||||
if( GAMESTATE->m_CurGame != GAME_EZ2 )
|
||||
{
|
||||
float fDifficultyY = DIFFICULTY_Y[p];
|
||||
if( GAMESTATE->m_PlayerOptions[p].m_bReverseScroll )
|
||||
fDifficultyY = SCREEN_HEIGHT - DIFFICULTY_Y[p];
|
||||
m_DifficultyBanner[p].SetXY( DIFFICULTY_X[p], fDifficultyY );
|
||||
this->AddSubActor( &m_DifficultyBanner[p] );
|
||||
}
|
||||
*/
|
||||
// HOW I THINK IT SHOULD BE FIXED:
|
||||
m_DifficultyBanner[p].SetXY( DIFFICULTY_X(p), DIFFICULTY_Y(p,bReverse[p],bExtra) );
|
||||
this->AddSubActor( &m_DifficultyBanner[p] );
|
||||
}
|
||||
@@ -540,36 +474,37 @@ ScreenGameplay::ScreenGameplay()
|
||||
|
||||
if( !GAMESTATE->m_bDemonstration ) // don't load sounds if just playing demonstration
|
||||
{
|
||||
m_soundFail.Load( THEME->GetPathTo("Sounds","gameplay failed") );
|
||||
m_soundOniDie.Load( THEME->GetPathTo("Sounds","gameplay oni die") );
|
||||
m_announcerReady.Load( ANNOUNCER->GetPathTo("gameplay ready") );
|
||||
m_soundFail.Load( THEME->GetPathTo("Sounds","gameplay failed") );
|
||||
m_soundOniDie.Load( THEME->GetPathTo("Sounds","gameplay oni die") );
|
||||
m_announcerReady.Load( ANNOUNCER->GetPathTo("gameplay ready") );
|
||||
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
|
||||
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go extra") );
|
||||
else if( GAMESTATE->IsFinalStage() )
|
||||
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go final") );
|
||||
else
|
||||
m_announcerHereWeGo.Load( ANNOUNCER->GetPathTo("gameplay here we go normal") );
|
||||
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
|
||||
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment goood") );
|
||||
m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
|
||||
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
|
||||
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment good") );
|
||||
m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
|
||||
|
||||
m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 100 combo") );
|
||||
m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 200 combo") );
|
||||
m_announcer300Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 300 combo") );
|
||||
m_announcer400Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 400 combo") );
|
||||
m_announcer500Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 500 combo") );
|
||||
m_announcer600Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 600 combo") );
|
||||
m_announcer700Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 700 combo") );
|
||||
m_announcer800Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 800 combo") );
|
||||
m_announcer900Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 900 combo") );
|
||||
m_announcer1000Combo.Load( ANNOUNCER->GetPathTo("gameplay comment 1000 combo") );
|
||||
m_announcerComboStopped.Load( ANNOUNCER->GetPathTo("gameplay comment combo stopped") );
|
||||
m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay 100 combo") );
|
||||
m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay 200 combo") );
|
||||
m_announcer300Combo.Load( ANNOUNCER->GetPathTo("gameplay 300 combo") );
|
||||
m_announcer400Combo.Load( ANNOUNCER->GetPathTo("gameplay 400 combo") );
|
||||
m_announcer500Combo.Load( ANNOUNCER->GetPathTo("gameplay 500 combo") );
|
||||
m_announcer600Combo.Load( ANNOUNCER->GetPathTo("gameplay 600 combo") );
|
||||
m_announcer700Combo.Load( ANNOUNCER->GetPathTo("gameplay 700 combo") );
|
||||
m_announcer800Combo.Load( ANNOUNCER->GetPathTo("gameplay 800 combo") );
|
||||
m_announcer900Combo.Load( ANNOUNCER->GetPathTo("gameplay 900 combo") );
|
||||
m_announcer1000Combo.Load( ANNOUNCER->GetPathTo("gameplay 1000 combo") );
|
||||
m_announcerComboStopped.Load( ANNOUNCER->GetPathTo("gameplay combo stopped") );
|
||||
}
|
||||
|
||||
m_iRowLastCrossed = -1;
|
||||
|
||||
m_soundAssistTick.Load( THEME->GetPathTo("Sounds","gameplay assist tick") );
|
||||
|
||||
TweenOnScreen();
|
||||
|
||||
LoadNextSong( true );
|
||||
|
||||
@@ -594,8 +529,8 @@ ScreenGameplay::~ScreenGameplay()
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
delete m_pLifeMeter[p];
|
||||
delete m_pScoreDisplay[p];
|
||||
SAFE_DELETE( m_pLifeMeter[p] );
|
||||
SAFE_DELETE( m_pScoreDisplay[p] );
|
||||
}
|
||||
|
||||
m_soundMusic.Stop();
|
||||
@@ -784,7 +719,7 @@ void ScreenGameplay::Update( float fDeltaTime )
|
||||
//
|
||||
// Check for end of song
|
||||
//
|
||||
if( fSongBeat > GAMESTATE->m_pCurSong->m_fLastBeat+4 && !m_soundMusic.IsPlaying() )
|
||||
if( fSongBeat > GAMESTATE->m_pCurSong->m_fLastBeat+2 && !m_soundMusic.IsPlaying() )
|
||||
{
|
||||
GAMESTATE->m_fSongBeat = 0;
|
||||
m_soundMusic.Stop();
|
||||
@@ -898,7 +833,6 @@ void ScreenGameplay::Update( float fDeltaTime )
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||
continue; // skip
|
||||
|
||||
m_Player[p].CrossedRow( r );
|
||||
bAnyoneHasANote |= m_Player[p].IsThereANoteAtRow( r );
|
||||
break; // this will only play the tick for the first player that is joined
|
||||
}
|
||||
@@ -1478,7 +1412,55 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
||||
|
||||
void ScreenGameplay::TweenOnScreen()
|
||||
{
|
||||
int i, p;
|
||||
|
||||
CArray<Actor*,Actor*> apActorsInTopFrame;
|
||||
apActorsInTopFrame.Add( &m_sprTopFrame );
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
apActorsInTopFrame.Add( m_pLifeMeter[p] );
|
||||
apActorsInTopFrame.Add( &m_textStageNumber );
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
apActorsInTopFrame.Add( &m_textCourseSongNumber[p] );
|
||||
for( i=0; i<apActorsInTopFrame.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalY = apActorsInTopFrame[i]->GetY();
|
||||
apActorsInTopFrame[i]->SetY( fOriginalY-100 );
|
||||
if( !GAMESTATE->m_bDemonstration )
|
||||
apActorsInTopFrame[i]->BeginTweeningQueued( 0.5f ); // sleep
|
||||
apActorsInTopFrame[i]->BeginTweeningQueued( 1 );
|
||||
apActorsInTopFrame[i]->SetTweenY( fOriginalY );
|
||||
}
|
||||
|
||||
|
||||
CArray<Actor*,Actor*> apActorsInBottomFrame;
|
||||
apActorsInBottomFrame.Add( &m_sprBottomFrame );
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled(p) )
|
||||
continue;
|
||||
apActorsInBottomFrame.Add( m_pScoreDisplay[p] );
|
||||
apActorsInBottomFrame.Add( &m_textPlayerOptions[p] );
|
||||
}
|
||||
apActorsInBottomFrame.Add( &m_textSongOptions );
|
||||
for( i=0; i<apActorsInBottomFrame.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalY = apActorsInBottomFrame[i]->GetY();
|
||||
apActorsInBottomFrame[i]->SetY( fOriginalY+100 );
|
||||
if( !GAMESTATE->m_bDemonstration )
|
||||
apActorsInBottomFrame[i]->BeginTweeningQueued( 0.5f ); // sleep
|
||||
apActorsInBottomFrame[i]->BeginTweeningQueued( 1 );
|
||||
apActorsInBottomFrame[i]->SetTweenY( fOriginalY );
|
||||
}
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
float fOriginalX = m_DifficultyBanner[p].GetX();
|
||||
m_DifficultyBanner[p].SetX( (p==PLAYER_1) ? fOriginalX-200 : fOriginalX+200 );
|
||||
if( !GAMESTATE->m_bDemonstration )
|
||||
m_DifficultyBanner[p].BeginTweeningQueued( 0.5f ); // sleep
|
||||
m_DifficultyBanner[p].BeginTweeningQueued( 1 );
|
||||
m_DifficultyBanner[p].SetTweenX( fOriginalX );
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenGameplay::TweenOffScreen()
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenHowToPlay","NextScreenOni")
|
||||
|
||||
|
||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User + 1);
|
||||
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_GoToNextScreen = ScreenMessage(SM_User+2);
|
||||
|
||||
|
||||
ScreenHowToPlay::ScreenHowToPlay()
|
||||
@@ -102,6 +103,9 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
|
||||
case SM_MenuTimer:
|
||||
this->MenuStart(PLAYER_1);
|
||||
break;
|
||||
case SM_GoToPrevScreen:
|
||||
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
|
||||
break;
|
||||
case SM_GoToNextScreen:
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
@@ -121,6 +125,7 @@ void ScreenHowToPlay::HandleScreenMessage( const ScreenMessage SM )
|
||||
|
||||
void ScreenHowToPlay::MenuBack( PlayerNumber p )
|
||||
{
|
||||
m_Menu.TweenOffScreenToBlack( SM_GoToPrevScreen, true );
|
||||
}
|
||||
|
||||
void ScreenHowToPlay::MenuStart( PlayerNumber p )
|
||||
|
||||
@@ -96,10 +96,12 @@ ScreenSelectCourse::ScreenSelectCourse()
|
||||
|
||||
m_textNumStages.LoadFromFont( THEME->GetPathTo("Fonts","header1") );
|
||||
m_textNumStages.SetXY( STAGES_X, STAGES_Y );
|
||||
m_textNumStages.TurnShadowOff();
|
||||
this->AddSubActor( &m_textNumStages );
|
||||
|
||||
m_textTime.LoadFromFont( THEME->GetPathTo("Fonts","header1") );
|
||||
m_textTime.SetXY( TIME_X, TIME_Y );
|
||||
m_textTime.TurnShadowOff();
|
||||
this->AddSubActor( &m_textTime );
|
||||
|
||||
m_CourseContentsFrame.SetXY( CONTENTS_X, CONTENTS_Y );
|
||||
|
||||
@@ -50,7 +50,8 @@ const float LOCK_INPUT_TIME = 0.30f; // lock input while waiting for tweening to
|
||||
#define CURSOR_SHADOW_LENGTH_Y THEME->GetMetricF("ScreenSelectDifficulty","CursorShadowLengthY")
|
||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectDifficulty","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectDifficulty","TimerSeconds")
|
||||
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectDifficulty","NextScreen")
|
||||
#define NEXT_SCREEN_ARCADE THEME->GetMetric("ScreenSelectDifficulty","NextScreenArcade")
|
||||
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectDifficulty","NextScreenOni")
|
||||
|
||||
|
||||
float MORE_X( int iIndex ) {
|
||||
@@ -277,9 +278,9 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
switch( m_iSelection[p] )
|
||||
{
|
||||
case 0: GAMESTATE->m_PreferredDifficultyClass[p] = CLASS_EASY; break;
|
||||
case 0: GAMESTATE->m_PreferredDifficultyClass[p] = CLASS_EASY; break;
|
||||
case 1: GAMESTATE->m_PreferredDifficultyClass[p] = CLASS_MEDIUM; break;
|
||||
case 2: GAMESTATE->m_PreferredDifficultyClass[p] = CLASS_HARD; break;
|
||||
case 2: GAMESTATE->m_PreferredDifficultyClass[p] = CLASS_HARD; break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,12 +301,18 @@ void ScreenSelectDifficulty::HandleScreenMessage( const ScreenMessage SM )
|
||||
ASSERT(0); // bad selection
|
||||
}
|
||||
|
||||
if(GAMESTATE->m_PlayMode == PLAY_MODE_ONI ||
|
||||
GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS)
|
||||
SCREENMAN->SetNewScreen( "ScreenSelectCourse" );
|
||||
else
|
||||
SCREENMAN->SetNewScreen( "ScreenSelectGroup" );
|
||||
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_ARCADE:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN_ARCADE );
|
||||
break;
|
||||
case PLAY_MODE_ONI:
|
||||
case PLAY_MODE_ENDLESS:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN_ONI );
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
break;
|
||||
case SM_StartTweeningOffScreen:
|
||||
TweenOffScreen();
|
||||
|
||||
@@ -37,8 +37,7 @@
|
||||
#define CONTENTS_Y THEME->GetMetricF("ScreenSelectGroup","ContentsY")
|
||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectGroup","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectGroup","TimerSeconds")
|
||||
#define NEXT_SCREEN_ARCADE THEME->GetMetric("ScreenSelectGroup","NextScreenArcade")
|
||||
#define NEXT_SCREEN_ONI THEME->GetMetric("ScreenSelectGroup","NextScreenOni")
|
||||
#define NEXT_SCREEN THEME->GetMetric("ScreenSelectGroup","NextScreen")
|
||||
|
||||
|
||||
const ScreenMessage SM_GoToPrevScreen = ScreenMessage(SM_User + 1);
|
||||
@@ -206,18 +205,7 @@ void ScreenSelectGroup::HandleScreenMessage( const ScreenMessage SM )
|
||||
SCREENMAN->SetNewScreen( "ScreenTitleMenu" );
|
||||
break;
|
||||
case SM_GoToNextScreen:
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_ARCADE:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN_ARCADE );
|
||||
break;
|
||||
case PLAY_MODE_ONI:
|
||||
case PLAY_MODE_ENDLESS:
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN_ONI );
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
SCREENMAN->SetNewScreen( NEXT_SCREEN );
|
||||
break;
|
||||
case SM_StartFadingOut:
|
||||
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
#define SONG_OPTIONS_Y THEME->GetMetricF("ScreenSelectMusic","SongOptionsY")
|
||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectMusic","TimerSeconds")
|
||||
#define SCORE_CONNECTED_TO_MUSIC_WHEEL THEME->GetMetricB("ScreenSelectMusic","ScoreConnectedToMusicWheel")
|
||||
|
||||
const float TWEEN_TIME = 0.5f;
|
||||
|
||||
@@ -290,16 +291,20 @@ void ScreenSelectMusic::DrawPrimitives()
|
||||
void ScreenSelectMusic::TweenOnScreen()
|
||||
{
|
||||
float fOriginalZoomY;
|
||||
|
||||
Actor* pActorsInGroupInfoFrame[] = { &m_sprBannerFrame, &m_Banner, &m_BPMDisplay, &m_textStage, &m_sprCDTitle };
|
||||
const int iNumActorsInGroupInfoFrame = sizeof(pActorsInGroupInfoFrame) / sizeof(Actor*);
|
||||
int i;
|
||||
for( i=0; i<iNumActorsInGroupInfoFrame; i++ )
|
||||
|
||||
CArray<Actor*,Actor*> apActorsInGroupInfoFrame;
|
||||
apActorsInGroupInfoFrame.Add( &m_sprBannerFrame );
|
||||
apActorsInGroupInfoFrame.Add( &m_Banner );
|
||||
apActorsInGroupInfoFrame.Add( &m_BPMDisplay );
|
||||
apActorsInGroupInfoFrame.Add( &m_textStage );
|
||||
apActorsInGroupInfoFrame.Add( &m_sprCDTitle );
|
||||
for( i=0; i<apActorsInGroupInfoFrame.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalX = pActorsInGroupInfoFrame[i]->GetX();
|
||||
pActorsInGroupInfoFrame[i]->SetX( fOriginalX-400 );
|
||||
pActorsInGroupInfoFrame[i]->BeginTweening( TWEEN_TIME, TWEEN_BOUNCE_END );
|
||||
pActorsInGroupInfoFrame[i]->SetTweenX( fOriginalX );
|
||||
float fOriginalX = apActorsInGroupInfoFrame[i]->GetX();
|
||||
apActorsInGroupInfoFrame[i]->SetX( fOriginalX-400 );
|
||||
apActorsInGroupInfoFrame[i]->BeginTweening( TWEEN_TIME, TWEEN_BOUNCE_END );
|
||||
apActorsInGroupInfoFrame[i]->SetTweenX( fOriginalX );
|
||||
}
|
||||
|
||||
fOriginalZoomY = m_sprDifficultyFrame.GetZoomY();
|
||||
@@ -335,14 +340,18 @@ void ScreenSelectMusic::TweenOnScreen()
|
||||
m_MusicSortDisplay.BeginTweening( TWEEN_TIME );
|
||||
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
|
||||
Actor* pActorsInScore[] = { &m_sprHighScoreFrame[0], &m_sprHighScoreFrame[1], &m_HighScore[0], &m_HighScore[1] };
|
||||
const int iNumActorsInScore = sizeof(pActorsInScore) / sizeof(Actor*);
|
||||
for( i=0; i<iNumActorsInScore; i++ )
|
||||
CArray<Actor*,Actor*> apActorsInScore;
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
float fOriginalX = pActorsInScore[i]->GetX();
|
||||
pActorsInScore[i]->SetX( fOriginalX+400 );
|
||||
pActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END );
|
||||
pActorsInScore[i]->SetTweenX( fOriginalX );
|
||||
apActorsInScore.Add( &m_sprHighScoreFrame[p] );
|
||||
apActorsInScore.Add( &m_HighScore[p] );
|
||||
}
|
||||
for( i=0; i<apActorsInScore.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalX = apActorsInScore[i]->GetX();
|
||||
apActorsInScore[i]->SetX( SCORE_CONNECTED_TO_MUSIC_WHEEL ? fOriginalX+400 : fOriginalX-400 );
|
||||
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END );
|
||||
apActorsInScore[i]->SetTweenX( fOriginalX );
|
||||
}
|
||||
|
||||
m_MusicWheel.TweenOnScreen();
|
||||
@@ -350,13 +359,18 @@ void ScreenSelectMusic::TweenOnScreen()
|
||||
|
||||
void ScreenSelectMusic::TweenOffScreen()
|
||||
{
|
||||
Actor* pActorsInGroupInfoFrame[] = { &m_sprBannerFrame, &m_Banner, &m_BPMDisplay, &m_textStage, &m_sprCDTitle };
|
||||
const int iNumActorsInGroupInfoFrame = sizeof(pActorsInGroupInfoFrame) / sizeof(Actor*);
|
||||
int i;
|
||||
for( i=0; i<iNumActorsInGroupInfoFrame; i++ )
|
||||
|
||||
CArray<Actor*,Actor*> apActorsInGroupInfoFrame;
|
||||
apActorsInGroupInfoFrame.Add( &m_sprBannerFrame );
|
||||
apActorsInGroupInfoFrame.Add( &m_Banner );
|
||||
apActorsInGroupInfoFrame.Add( &m_BPMDisplay );
|
||||
apActorsInGroupInfoFrame.Add( &m_textStage );
|
||||
apActorsInGroupInfoFrame.Add( &m_sprCDTitle );
|
||||
for( i=0; i<apActorsInGroupInfoFrame.GetSize(); i++ )
|
||||
{
|
||||
pActorsInGroupInfoFrame[i]->BeginTweeningQueued( TWEEN_TIME, TWEEN_BOUNCE_BEGIN );
|
||||
pActorsInGroupInfoFrame[i]->SetTweenX( pActorsInGroupInfoFrame[i]->GetX()-400 );
|
||||
apActorsInGroupInfoFrame[i]->BeginTweeningQueued( TWEEN_TIME, TWEEN_BOUNCE_BEGIN );
|
||||
apActorsInGroupInfoFrame[i]->SetTweenX( apActorsInGroupInfoFrame[i]->GetX()-400 );
|
||||
}
|
||||
|
||||
m_sprDifficultyFrame.BeginTweening( TWEEN_TIME );
|
||||
@@ -386,17 +400,45 @@ void ScreenSelectMusic::TweenOffScreen()
|
||||
m_MusicSortDisplay.BeginTweening( TWEEN_TIME );
|
||||
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||
|
||||
Actor* pActorsInScore[] = { &m_sprHighScoreFrame[0], &m_sprHighScoreFrame[1], &m_HighScore[0], &m_HighScore[1] };
|
||||
const int iNumActorsInScore = sizeof(pActorsInScore) / sizeof(Actor*);
|
||||
for( i=0; i<iNumActorsInScore; i++ )
|
||||
CArray<Actor*,Actor*> apActorsInScore;
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
pActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_BEGIN );
|
||||
pActorsInScore[i]->SetTweenX( pActorsInScore[i]->GetX()+400 );
|
||||
apActorsInScore.Add( &m_sprHighScoreFrame[p] );
|
||||
apActorsInScore.Add( &m_HighScore[p] );
|
||||
}
|
||||
for( i=0; i<apActorsInScore.GetSize(); i++ )
|
||||
{
|
||||
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END );
|
||||
apActorsInScore[i]->SetTweenX( SCORE_CONNECTED_TO_MUSIC_WHEEL ? apActorsInScore[i]->GetX()+400 : apActorsInScore[i]->GetX()-400 );
|
||||
}
|
||||
|
||||
m_MusicWheel.TweenOffScreen();
|
||||
}
|
||||
|
||||
void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
||||
{
|
||||
if( !SCORE_CONNECTED_TO_MUSIC_WHEEL )
|
||||
return; // do nothing
|
||||
|
||||
CArray<Actor*,Actor*> apActorsInScore;
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
apActorsInScore.Add( &m_sprHighScoreFrame[p] );
|
||||
apActorsInScore.Add( &m_HighScore[p] );
|
||||
}
|
||||
for( int i=0; i<apActorsInScore.GetSize(); i++ )
|
||||
{
|
||||
float fOriginalX = HIGH_SCORE_X(p);
|
||||
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_BIAS_END ); // tween off screen
|
||||
apActorsInScore[i]->SetTweenX( fOriginalX+400 );
|
||||
|
||||
apActorsInScore[i]->BeginTweeningQueued( 0.6f ); // sleep
|
||||
|
||||
apActorsInScore[i]->BeginTweeningQueued( 1, TWEEN_BIAS_BEGIN ); // tween back on screen
|
||||
apActorsInScore[i]->SetTweenX( fOriginalX );
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenSelectMusic::Update( float fDeltaTime )
|
||||
{
|
||||
Screen::Update( fDeltaTime );
|
||||
@@ -493,10 +535,11 @@ void ScreenSelectMusic::Input( const DeviceInput& DeviceI, const InputEventType
|
||||
if( m_MusicWheel.NextSort() )
|
||||
{
|
||||
MUSIC->Stop();
|
||||
// tween music sort off screen
|
||||
//m_MusicSortDisplay.SetEffectNone();
|
||||
|
||||
m_MusicSortDisplay.BeginTweening( 0.3f );
|
||||
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||
|
||||
TweenScoreOnAndOffAfterChangeSort();
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -631,10 +674,10 @@ void ScreenSelectMusic::MenuStart( PlayerNumber p )
|
||||
{
|
||||
MUSIC->Stop();
|
||||
|
||||
// tween music sort off screen
|
||||
//m_MusicSortDisplay.SetEffectNone();
|
||||
m_MusicSortDisplay.BeginTweening( 0.3f );
|
||||
m_MusicSortDisplay.SetTweenDiffuseColor( D3DXCOLOR(1,1,1,0) );
|
||||
|
||||
TweenScoreOnAndOffAfterChangeSort();
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -36,15 +36,16 @@ public:
|
||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||
|
||||
void TweenOnScreen();
|
||||
void TweenOffScreen();
|
||||
|
||||
void MenuLeft( PlayerNumber p, const InputEventType type );
|
||||
void MenuRight( PlayerNumber p, const InputEventType type );
|
||||
void MenuStart( PlayerNumber p );
|
||||
void MenuBack( PlayerNumber p );
|
||||
virtual void MenuLeft( PlayerNumber p, const InputEventType type );
|
||||
virtual void MenuRight( PlayerNumber p, const InputEventType type );
|
||||
virtual void MenuStart( PlayerNumber p );
|
||||
virtual void MenuBack( PlayerNumber p );
|
||||
|
||||
protected:
|
||||
void TweenOnScreen();
|
||||
void TweenOffScreen();
|
||||
void TweenScoreOnAndOffAfterChangeSort();
|
||||
|
||||
void EasierDifficulty( PlayerNumber p );
|
||||
void HarderDifficulty( PlayerNumber p );
|
||||
|
||||
|
||||
@@ -244,11 +244,12 @@ void ScreenSelectStyle::MenuStart( PlayerNumber p )
|
||||
GAMESTATE->m_CurStyle = GetSelectedStyle();
|
||||
|
||||
CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
|
||||
if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
sCurStyleName.MakeLower();
|
||||
if( -1!=sCurStyleName.Find("single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( -1!=sCurStyleName.Find("versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( -1!=sCurStyleName.Find("double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( -1!=sCurStyleName.Find("couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( -1!=sCurStyleName.Find("solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
|
||||
m_Menu.TweenOffScreenToMenu( SM_GoToNextScreen );
|
||||
|
||||
|
||||
@@ -273,11 +273,12 @@ void ScreenSelectStyle5th::MenuStart( PlayerNumber p )
|
||||
GAMESTATE->m_MasterPlayerNumber = p;
|
||||
|
||||
CString sCurStyleName = GAMESTATE->GetCurrentStyleDef()->m_szName;
|
||||
if( 0==stricmp(sCurStyleName,"single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( 0==stricmp(sCurStyleName,"versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( 0==stricmp(sCurStyleName,"double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( 0==stricmp(sCurStyleName,"couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( 0==stricmp(sCurStyleName,"solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
sCurStyleName.MakeLower();
|
||||
if( -1!=sCurStyleName.Find("single") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment single") );
|
||||
else if( -1!=sCurStyleName.Find("versus") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment versus") );
|
||||
else if( -1!=sCurStyleName.Find("double") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment double") );
|
||||
else if( -1!=sCurStyleName.Find("couple") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment couple") );
|
||||
else if( -1!=sCurStyleName.Find("solo") ) SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("select style comment solo") );
|
||||
|
||||
this->ClearMessageQueue();
|
||||
|
||||
|
||||
+324
-315
@@ -54,32 +54,11 @@ enum StageMode
|
||||
|
||||
ScreenStage::ScreenStage()
|
||||
{
|
||||
g_StageType = (StageType)STAGE_TYPE;
|
||||
|
||||
MUSIC->Stop();
|
||||
|
||||
//
|
||||
// Init common graphics
|
||||
//
|
||||
for( int i=0; i<4; i++ )
|
||||
{
|
||||
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers") );
|
||||
m_sprNumbers[i].StopAnimating();
|
||||
}
|
||||
m_sprStage.Load( THEME->GetPathTo("Graphics","stage stage") ); // we may load a different graphic into here later
|
||||
const float fStageHeight = m_sprStage.GetUnzoomedHeight();
|
||||
g_StageType = (StageType)STAGE_TYPE;
|
||||
|
||||
const float fStageOffScreenY = CENTER_Y+fStageHeight;
|
||||
|
||||
m_quadMask.SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadMask.StretchTo( CRect(SCREEN_LEFT, roundf(fStageOffScreenY-fStageHeight/2), SCREEN_RIGHT, roundf(fStageOffScreenY+fStageHeight/2)) );
|
||||
m_quadMask.SetZ( -1 ); // important: fill Z buffer with values that will cause subsequent draws to fail the Z test
|
||||
|
||||
m_frameStage.SetXY( CENTER_X, fStageOffScreenY );
|
||||
m_frameStage.BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_frameStage.SetTweenY( CENTER_Y );
|
||||
|
||||
|
||||
StageMode stage_mode;
|
||||
if( GAMESTATE->m_PlayMode == PLAY_MODE_ONI ) stage_mode = MODE_ONI;
|
||||
else if( GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS ) stage_mode = MODE_ENDLESS;
|
||||
@@ -117,28 +96,22 @@ ScreenStage::ScreenStage()
|
||||
}
|
||||
|
||||
|
||||
// Andy -
|
||||
// Is all this stuff only supposed to be initializing in MODE_NORMAL?
|
||||
// The final stage screens look goofy in TYPE_PUMP and TYPE_EZ2 because of this.
|
||||
// I'm going to make changes, but feel free to correct anything I good up.
|
||||
// - Chris
|
||||
|
||||
int ez2Final=0; // if we're 0 it's not a final stage. if we're 1 it is.
|
||||
// why do this? Ez2dancer uses NORMAL for it's final stage but just re-arranges
|
||||
// the elements. so the following takes us into NORMAL and just re-arranges stuff
|
||||
// the ez2Final is so that when we're in normal we can go and see if we're really
|
||||
// FINAL or not. at the end of normal, if we WERE FINAL, we set it back to final
|
||||
// hacky or what? =)
|
||||
if( g_StageType == STAGE_TYPE_EZ2 && stage_mode == MODE_FINAL )
|
||||
//
|
||||
// Init common graphics
|
||||
//
|
||||
this->AddSubActor( &m_sprSongBackground ); // add background first so it draws bottom-most
|
||||
this->AddSubActor( &m_quadMask ); // add quad mask before stage so that it will block out the stage sprites
|
||||
this->AddSubActor( &m_frameStage );
|
||||
|
||||
for( int i=0; i<4; i++ )
|
||||
{
|
||||
for( int i=0; i<4; i++ )
|
||||
{
|
||||
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers final") );
|
||||
m_sprNumbers[i].StopAnimating();
|
||||
}
|
||||
ez2Final=1;
|
||||
stage_mode = MODE_NORMAL;
|
||||
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers") );
|
||||
m_sprNumbers[i].StopAnimating();
|
||||
}
|
||||
m_sprStage.Load( THEME->GetPathTo("Graphics","stage stage") ); // we may load a different graphic into here later
|
||||
|
||||
|
||||
|
||||
switch( stage_mode )
|
||||
{
|
||||
@@ -186,259 +159,9 @@ ScreenStage::ScreenStage()
|
||||
}
|
||||
m_sprStage.SetX( fStageCenterX );
|
||||
|
||||
/////////////////////////
|
||||
// EZ2 TYPE DEFINITION //
|
||||
/////////////////////////
|
||||
|
||||
if ( g_StageType == STAGE_TYPE_EZ2) // Initialize and manipulate existing graphics for Ez2dancer Screen Type
|
||||
{
|
||||
for( i=0; i<iNumChars; i++ )
|
||||
{
|
||||
float fOffsetX = SCALE(i, 0, iNumChars-1, -(iNumChars-1)/2.0f*fFrameWidth, (iNumChars-1)/2.0f*fFrameWidth);
|
||||
m_sprNumbers[i].SetX( fCharsCenterX + fOffsetX + (150 * i) );
|
||||
}
|
||||
|
||||
|
||||
for( i=0; i<iNumChars; i++ ) // redefine the size of the numbers
|
||||
{
|
||||
m_sprNumbers[i].SetWidth( 200.0f );
|
||||
m_sprNumbers[i].SetHeight( 200.0f);
|
||||
}
|
||||
|
||||
m_frameStage.SetXY( CENTER_X - 140, CENTER_Y ); // align the big number
|
||||
|
||||
for( i=0; i<iNumChars; i++)
|
||||
{
|
||||
m_sprNumbers[i].SetZoom( 20.0f ); // make it really really big
|
||||
m_sprNumbers[i].SetRotation( 10 ); // make this thing rotated
|
||||
m_sprNumbers[i].BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_sprNumbers[i].SetTweenZoom( 1.0f ); // shrink it down to it's proper size
|
||||
m_sprNumbers[i].SetTweenRotationZ( 0 ); // make it rotate into place
|
||||
}
|
||||
|
||||
|
||||
// Background Blocks rotate their way in
|
||||
|
||||
int bg_modeoffset=0;
|
||||
float element_y_offsets=0.0f;
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
element_y_offsets = 25.0f;
|
||||
bg_modeoffset = 4; // shuffle graphics +4 in the elements file for FINAL graphics.
|
||||
}
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
m_sprbg[i].Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprbg[i].StopAnimating();
|
||||
m_sprbg[i].SetState( i+bg_modeoffset );
|
||||
}
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprbgxtra.Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprbgxtra.StopAnimating();
|
||||
m_sprbgxtra.SetState( bg_modeoffset );
|
||||
m_sprbgxtra.SetXY( fStageCenterX-30, 0+180);
|
||||
m_sprbgxtra.SetHeight( 30 );
|
||||
m_sprbgxtra.SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbgxtra.SetRotation( -20 );
|
||||
m_sprbgxtra.BeginTweening(0.3f);
|
||||
m_sprbgxtra.SetTweenRotationZ( 0 );
|
||||
}
|
||||
|
||||
|
||||
m_sprbg[0].SetXY( fStageCenterX-30, 0+150);
|
||||
if (ez2Final == 1)
|
||||
m_sprbg[0].SetXY( fStageCenterX-30, 0-160);
|
||||
m_sprbg[0].SetHeight( 100 );
|
||||
if (ez2Final == 1)
|
||||
m_sprbg[0].SetHeight( 30 );
|
||||
m_sprbg[0].SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbg[0].SetRotation( -20 );
|
||||
m_sprbg[0].BeginTweening(0.3f);
|
||||
m_sprbg[0].SetTweenRotationZ( 0 );
|
||||
|
||||
m_sprbg[1].SetXY( fStageCenterX-(SCREEN_WIDTH/2)-20, 0+element_y_offsets);
|
||||
m_sprbg[1].SetHeight( SCREEN_HEIGHT - 140 );
|
||||
m_sprbg[1].SetWidth( 130 );
|
||||
m_sprbg[1].SetRotation( -20 );
|
||||
m_sprbg[1].BeginTweening(0.3f);
|
||||
m_sprbg[1].SetTweenRotationZ( 0 );
|
||||
|
||||
m_sprbg[2].SetXY( fStageCenterX+430, 0+element_y_offsets);
|
||||
m_sprbg[2].SetHeight( SCREEN_HEIGHT - 140 );
|
||||
m_sprbg[2].SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbg[2].SetRotation( -20 );
|
||||
m_sprbg[2].BeginTweening(0.3f);
|
||||
m_sprbg[2].SetTweenX( fStageCenterX - 30 );
|
||||
m_sprbg[2].SetTweenRotationZ( 0 );
|
||||
|
||||
for (i=3; i>=0; i--) // work backwards as we wanna add em in reverse
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_sprbg[i] );
|
||||
}
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_sprbgxtra );
|
||||
}
|
||||
|
||||
// scroll in the name of the game (ez2dancer ukmove) across the top of the screen
|
||||
|
||||
for (i=0; i<2; i++) // specify the font file.
|
||||
{
|
||||
m_ez2ukm[i].LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_ez2ukm[i].TurnShadowOff();
|
||||
m_stagedesc[i].LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_stagedesc[i].TurnShadowOff();
|
||||
}
|
||||
|
||||
m_ez2ukm[0].SetXY( fStageCenterX-400, 0-220 ); // set the intiial UKMOVE positions
|
||||
m_ez2ukm[1].SetXY( fStageCenterX+400, 0+220 );
|
||||
m_stagedesc[0].SetXY( fStageCenterX-400, 0-150+element_y_offsets ); // set the intiial desc positions
|
||||
m_stagedesc[1].SetXY( fStageCenterX+400, 0+70+element_y_offsets );
|
||||
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagedesc[1].SetY( 140.0f );
|
||||
}
|
||||
|
||||
for (i=0; i<2; i++) // initialize the UK MOVE text and positions
|
||||
{
|
||||
m_ez2ukm[i].SetText( "STEPMANIA EZ2 MOVE" );
|
||||
m_ez2ukm[i].SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
m_ez2ukm[i].BeginTweening(0.5f);
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagedesc[i].SetText( "FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL" );
|
||||
m_stagedesc[i].SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*227.0f,1.0f/225.0f*228.0f,1/225.0f*255.0f,1) );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_stagedesc[i].SetText( "NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT" );
|
||||
m_stagedesc[i].SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*166.0f,1.0f/225.0f*83.0f,1/225.0f*16.0f,1) );
|
||||
}
|
||||
m_stagedesc[i].BeginTweening(0.5f);
|
||||
|
||||
}
|
||||
|
||||
m_ez2ukm[0].SetTweenX(fStageCenterX+90); // set their new locations
|
||||
m_ez2ukm[1].SetTweenX(fStageCenterX-170);
|
||||
m_stagedesc[0].SetTweenX(fStageCenterX+10); // set their new locations
|
||||
m_stagedesc[1].SetTweenX(fStageCenterX-100);
|
||||
|
||||
for (i=0; i<2; i++)
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_ez2ukm[i] );
|
||||
m_frameStage.AddSubActor( &m_stagedesc[i] );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 20 Scrolling Blobs come in one at a time from either side at the bottom in the following code:
|
||||
for( int j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprScrollingBlobs[j][i].StopAnimating();
|
||||
m_sprScrollingBlobs[j][i].SetState( 3+bg_modeoffset );
|
||||
}
|
||||
}
|
||||
|
||||
for( j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
if (j == 0)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetXY( fStageCenterX-(SCREEN_WIDTH/2)-500-((i*i)*4), 135 );
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetY( 0-160);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetXY( fStageCenterX+(SCREEN_WIDTH/2)+500-((i*i)*4), 170 );
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetY( 180 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].BeginTweening(0.2f * i / 7);
|
||||
if (j == 0)
|
||||
m_sprScrollingBlobs[j][i].SetTweenX(fStageCenterX-(SCREEN_WIDTH/2)+(i*30.0f));
|
||||
else
|
||||
m_sprScrollingBlobs[j][i].SetTweenX(fStageCenterX+(SCREEN_WIDTH/2)-70-(i*30.0f));
|
||||
|
||||
m_frameStage.AddSubActor( &m_sprScrollingBlobs[j][i] );
|
||||
}
|
||||
}
|
||||
|
||||
// write the stage name
|
||||
m_stagename.LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_stagename.TurnShadowOff();
|
||||
|
||||
m_stagename.SetXY( fStageCenterX+400, 0-30+element_y_offsets );
|
||||
|
||||
switch (iStageNo)
|
||||
{
|
||||
case 0: m_stagename.SetText( "THE NEXT STAGE" ); break;
|
||||
case 1: m_stagename.SetText( "THE FIRST STAGE" ); break;
|
||||
case 2: m_stagename.SetText( "THE SECOND STAGE" ); break;
|
||||
case 3: m_stagename.SetText( "THE THIRD STAGE" ); break;
|
||||
case 4: m_stagename.SetText( "THE FOURTH STAGE" ); break;
|
||||
case 5: m_stagename.SetText( "THE FIFTH STAGE" ); break;
|
||||
case 6: m_stagename.SetText( "THE SIXTH STAGE" ); break;
|
||||
case 7: m_stagename.SetText( "THE SEVENTH STAGE" ); break;
|
||||
default: m_stagename.SetText("THE NEXT STAGE"); break;
|
||||
}
|
||||
|
||||
if (iStageNo > 9) // if we're in two digits or more
|
||||
{
|
||||
m_stagename.SetText( "" ); // make this text disappear.
|
||||
}
|
||||
|
||||
m_stagename.SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*166.0f,1.0f/225.0f*83.0f,1/225.0f*16.0f,1) );
|
||||
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagename.SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*227.0f,1.0f/225.0f*228.0f,1/225.0f*255.0f,1) );
|
||||
m_stagename.SetText( "THE FINAL STAGE" );
|
||||
stage_mode = MODE_FINAL; // set back to final again.
|
||||
ez2Final = 0;
|
||||
}
|
||||
|
||||
m_stagename.BeginTweening(0.5f);
|
||||
|
||||
m_stagename.SetTweenX(fStageCenterX+70); // set their new locations
|
||||
m_frameStage.AddSubActor( &m_stagename );
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
// END EZ2 TYPE DEFINITION//
|
||||
////////////////////////////
|
||||
|
||||
////////////////
|
||||
// PUMP STUFF //
|
||||
////////////////
|
||||
m_pSong = GAMESTATE->m_pCurSong;
|
||||
m_sprSongBackground.Load( m_pSong->HasBackground() ? m_pSong->GetBackgroundPath() : THEME->GetPathTo("Graphics","fallback background"), true, 4, 0, true );
|
||||
m_sprSongBackground.StretchTo( CRect(SCREEN_LEFT,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
|
||||
for( i=0; i<iNumChars; i++ )
|
||||
m_frameStage.AddSubActor( &m_sprNumbers[i] );
|
||||
if ( STAGE_TYPE != STAGE_TYPE_EZ2 ) // DIE EVIL STAGEWORD! err, yea this shouldn't be here for Ez2 =)
|
||||
m_frameStage.AddSubActor( &m_sprStage );
|
||||
m_frameStage.AddSubActor( &m_sprStage );
|
||||
}
|
||||
break;
|
||||
case MODE_FINAL:
|
||||
@@ -465,8 +188,311 @@ ScreenStage::ScreenStage()
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
this->AddSubActor( &m_Fade ); // fade should draw last, on top of everything else
|
||||
m_Fade.SetOpened();
|
||||
|
||||
|
||||
//
|
||||
// Init dance-specific graphics
|
||||
//
|
||||
if( g_StageType == STAGE_TYPE_MAX )
|
||||
{
|
||||
const float fStageHeight = m_sprStage.GetUnzoomedHeight();
|
||||
|
||||
const float fStageOffScreenY = CENTER_Y+fStageHeight;
|
||||
|
||||
m_quadMask.SetDiffuseColor( D3DXCOLOR(0,0,0,0) );
|
||||
m_quadMask.StretchTo( CRect(SCREEN_LEFT, roundf(fStageOffScreenY-fStageHeight/2), SCREEN_RIGHT, roundf(fStageOffScreenY+fStageHeight/2)) );
|
||||
m_quadMask.SetZ( -1 ); // important: fill Z buffer with values that will cause subsequent draws to fail the Z test
|
||||
|
||||
m_frameStage.SetXY( CENTER_X, fStageOffScreenY );
|
||||
m_frameStage.BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_frameStage.SetTweenY( CENTER_Y );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Init pump-sepecific graphics
|
||||
//
|
||||
if( g_StageType == STAGE_TYPE_PUMP )
|
||||
{
|
||||
Song* pSong = GAMESTATE->m_pCurSong;
|
||||
m_sprSongBackground.Load( (pSong && pSong->HasBackground()) ? pSong->GetBackgroundPath() : THEME->GetPathTo("Graphics","fallback background") );
|
||||
m_sprSongBackground.StretchTo( CRect(SCREEN_LEFT,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
|
||||
m_frameStage.SetXY( CENTER_X, CENTER_Y+160 );
|
||||
m_frameStage.SetZoom( 0.5f );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Init ez2-specific graphics
|
||||
//
|
||||
if( g_StageType == STAGE_TYPE_EZ2 )
|
||||
{
|
||||
/*
|
||||
int ez2Final=0; // if we're 0 it's not a final stage. if we're 1 it is.
|
||||
// why do this? Ez2dancer uses NORMAL for it's final stage but just re-arranges
|
||||
// the elements. so the following takes us into NORMAL and just re-arranges stuff
|
||||
// the ez2Final is so that when we're in normal we can go and see if we're really
|
||||
// FINAL or not. at the end of normal, if we WERE FINAL, we set it back to final
|
||||
// hacky or what? =)
|
||||
if( g_StageType == STAGE_TYPE_EZ2 && stage_mode == MODE_FINAL )
|
||||
{
|
||||
for( int i=0; i<4; i++ )
|
||||
{
|
||||
m_sprNumbers[i].Load( THEME->GetPathTo("Graphics","stage numbers final") );
|
||||
m_sprNumbers[i].StopAnimating();
|
||||
}
|
||||
ez2Final=1;
|
||||
stage_mode = MODE_NORMAL;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Init Ez2 type-sepcific elements
|
||||
//
|
||||
|
||||
/////////////////////////
|
||||
// EZ2 TYPE DEFINITION //
|
||||
/////////////////////////
|
||||
|
||||
if ( g_StageType == STAGE_TYPE_EZ2) // Initialize and manipulate existing graphics for Ez2dancer Screen Type
|
||||
{
|
||||
for( i=0; i<iNumChars; i++ )
|
||||
{
|
||||
float fOffsetX = SCALE(i, 0, iNumChars-1, -(iNumChars-1)/2.0f*fFrameWidth, (iNumChars-1)/2.0f*fFrameWidth);
|
||||
m_sprNumbers[i].SetX( fCharsCenterX + fOffsetX + (150 * i) );
|
||||
}
|
||||
|
||||
|
||||
for( i=0; i<iNumChars; i++ ) // redefine the size of the numbers
|
||||
{
|
||||
m_sprNumbers[i].SetWidth( 200.0f );
|
||||
m_sprNumbers[i].SetHeight( 200.0f);
|
||||
}
|
||||
|
||||
m_frameStage.SetXY( CENTER_X - 140, CENTER_Y ); // align the big number
|
||||
|
||||
for( i=0; i<iNumChars; i++)
|
||||
{
|
||||
m_sprNumbers[i].SetZoom( 20.0f ); // make it really really big
|
||||
m_sprNumbers[i].SetRotation( 10 ); // make this thing rotated
|
||||
m_sprNumbers[i].BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
||||
m_sprNumbers[i].SetTweenZoom( 1.0f ); // shrink it down to it's proper size
|
||||
m_sprNumbers[i].SetTweenRotationZ( 0 ); // make it rotate into place
|
||||
}
|
||||
|
||||
|
||||
// Background Blocks rotate their way in
|
||||
|
||||
int bg_modeoffset=0;
|
||||
float element_y_offsets=0.0f;
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
element_y_offsets = 25.0f;
|
||||
bg_modeoffset = 4; // shuffle graphics +4 in the elements file for FINAL graphics.
|
||||
}
|
||||
|
||||
for (i=0; i<3; i++)
|
||||
{
|
||||
m_sprbg[i].Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprbg[i].StopAnimating();
|
||||
m_sprbg[i].SetState( i+bg_modeoffset );
|
||||
}
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprbgxtra.Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprbgxtra.StopAnimating();
|
||||
m_sprbgxtra.SetState( bg_modeoffset );
|
||||
m_sprbgxtra.SetXY( fStageCenterX-30, 0+180);
|
||||
m_sprbgxtra.SetHeight( 30 );
|
||||
m_sprbgxtra.SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbgxtra.SetRotation( -20 );
|
||||
m_sprbgxtra.BeginTweening(0.3f);
|
||||
m_sprbgxtra.SetTweenRotationZ( 0 );
|
||||
}
|
||||
|
||||
|
||||
m_sprbg[0].SetXY( fStageCenterX-30, 0+150);
|
||||
if (ez2Final == 1)
|
||||
m_sprbg[0].SetXY( fStageCenterX-30, 0-160);
|
||||
m_sprbg[0].SetHeight( 100 );
|
||||
if (ez2Final == 1)
|
||||
m_sprbg[0].SetHeight( 30 );
|
||||
m_sprbg[0].SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbg[0].SetRotation( -20 );
|
||||
m_sprbg[0].BeginTweening(0.3f);
|
||||
m_sprbg[0].SetTweenRotationZ( 0 );
|
||||
|
||||
m_sprbg[1].SetXY( fStageCenterX-(SCREEN_WIDTH/2)-20, 0+element_y_offsets);
|
||||
m_sprbg[1].SetHeight( SCREEN_HEIGHT - 140 );
|
||||
m_sprbg[1].SetWidth( 130 );
|
||||
m_sprbg[1].SetRotation( -20 );
|
||||
m_sprbg[1].BeginTweening(0.3f);
|
||||
m_sprbg[1].SetTweenRotationZ( 0 );
|
||||
|
||||
m_sprbg[2].SetXY( fStageCenterX+430, 0+element_y_offsets);
|
||||
m_sprbg[2].SetHeight( SCREEN_HEIGHT - 140 );
|
||||
m_sprbg[2].SetWidth( SCREEN_WIDTH + 50 );
|
||||
m_sprbg[2].SetRotation( -20 );
|
||||
m_sprbg[2].BeginTweening(0.3f);
|
||||
m_sprbg[2].SetTweenX( fStageCenterX - 30 );
|
||||
m_sprbg[2].SetTweenRotationZ( 0 );
|
||||
|
||||
for (i=3; i>=0; i--) // work backwards as we wanna add em in reverse
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_sprbg[i] );
|
||||
}
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_sprbgxtra );
|
||||
}
|
||||
|
||||
// scroll in the name of the game (ez2dancer ukmove) across the top of the screen
|
||||
|
||||
for (i=0; i<2; i++) // specify the font file.
|
||||
{
|
||||
m_ez2ukm[i].LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_ez2ukm[i].TurnShadowOff();
|
||||
m_stagedesc[i].LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_stagedesc[i].TurnShadowOff();
|
||||
}
|
||||
|
||||
m_ez2ukm[0].SetXY( fStageCenterX-400, 0-220 ); // set the intiial UKMOVE positions
|
||||
m_ez2ukm[1].SetXY( fStageCenterX+400, 0+220 );
|
||||
m_stagedesc[0].SetXY( fStageCenterX-400, 0-150+element_y_offsets ); // set the intiial desc positions
|
||||
m_stagedesc[1].SetXY( fStageCenterX+400, 0+70+element_y_offsets );
|
||||
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagedesc[1].SetY( 140.0f );
|
||||
}
|
||||
|
||||
for (i=0; i<2; i++) // initialize the UK MOVE text and positions
|
||||
{
|
||||
m_ez2ukm[i].SetText( "STEPMANIA EZ2 MOVE" );
|
||||
m_ez2ukm[i].SetDiffuseColor( D3DXCOLOR(1,1,1,1) );
|
||||
m_ez2ukm[i].BeginTweening(0.5f);
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagedesc[i].SetText( "FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL FINAL" );
|
||||
m_stagedesc[i].SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*227.0f,1.0f/225.0f*228.0f,1/225.0f*255.0f,1) );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_stagedesc[i].SetText( "NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT" );
|
||||
m_stagedesc[i].SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*166.0f,1.0f/225.0f*83.0f,1/225.0f*16.0f,1) );
|
||||
}
|
||||
m_stagedesc[i].BeginTweening(0.5f);
|
||||
|
||||
}
|
||||
|
||||
m_ez2ukm[0].SetTweenX(fStageCenterX+90); // set their new locations
|
||||
m_ez2ukm[1].SetTweenX(fStageCenterX-170);
|
||||
m_stagedesc[0].SetTweenX(fStageCenterX+10); // set their new locations
|
||||
m_stagedesc[1].SetTweenX(fStageCenterX-100);
|
||||
|
||||
for (i=0; i<2; i++)
|
||||
{
|
||||
m_frameStage.AddSubActor( &m_ez2ukm[i] );
|
||||
m_frameStage.AddSubActor( &m_stagedesc[i] );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 20 Scrolling Blobs come in one at a time from either side at the bottom in the following code:
|
||||
for( int j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].Load( THEME->GetPathTo("Graphics","stage elements") );
|
||||
m_sprScrollingBlobs[j][i].StopAnimating();
|
||||
m_sprScrollingBlobs[j][i].SetState( 3+bg_modeoffset );
|
||||
}
|
||||
}
|
||||
|
||||
for( j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
if (j == 0)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetXY( fStageCenterX-(SCREEN_WIDTH/2)-500-((i*i)*4), 135 );
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetY( 0-160);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetXY( fStageCenterX+(SCREEN_WIDTH/2)+500-((i*i)*4), 170 );
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].SetY( 180 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( j=0; j<2; j++)
|
||||
{
|
||||
for (i=0; i<20; i++)
|
||||
{
|
||||
m_sprScrollingBlobs[j][i].BeginTweening(0.2f * i / 7);
|
||||
if (j == 0)
|
||||
m_sprScrollingBlobs[j][i].SetTweenX(fStageCenterX-(SCREEN_WIDTH/2)+(i*30.0f));
|
||||
else
|
||||
m_sprScrollingBlobs[j][i].SetTweenX(fStageCenterX+(SCREEN_WIDTH/2)-70-(i*30.0f));
|
||||
|
||||
m_frameStage.AddSubActor( &m_sprScrollingBlobs[j][i] );
|
||||
}
|
||||
}
|
||||
|
||||
// write the stage name
|
||||
m_stagename.LoadFromFont( THEME->GetPathTo("Fonts","stage") );
|
||||
m_stagename.TurnShadowOff();
|
||||
|
||||
m_stagename.SetXY( fStageCenterX+400, 0-30+element_y_offsets );
|
||||
|
||||
switch (iStageNo)
|
||||
{
|
||||
case 0: m_stagename.SetText( "THE NEXT STAGE" ); break;
|
||||
case 1: m_stagename.SetText( "THE FIRST STAGE" ); break;
|
||||
case 2: m_stagename.SetText( "THE SECOND STAGE" ); break;
|
||||
case 3: m_stagename.SetText( "THE THIRD STAGE" ); break;
|
||||
case 4: m_stagename.SetText( "THE FOURTH STAGE" ); break;
|
||||
case 5: m_stagename.SetText( "THE FIFTH STAGE" ); break;
|
||||
case 6: m_stagename.SetText( "THE SIXTH STAGE" ); break;
|
||||
case 7: m_stagename.SetText( "THE SEVENTH STAGE" ); break;
|
||||
default: m_stagename.SetText("THE NEXT STAGE"); break;
|
||||
}
|
||||
|
||||
if (iStageNo > 9) // if we're in two digits or more
|
||||
{
|
||||
m_stagename.SetText( "" ); // make this text disappear.
|
||||
}
|
||||
|
||||
m_stagename.SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*166.0f,1.0f/225.0f*83.0f,1/225.0f*16.0f,1) );
|
||||
|
||||
if (ez2Final == 1)
|
||||
{
|
||||
m_stagename.SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*227.0f,1.0f/225.0f*228.0f,1/225.0f*255.0f,1) );
|
||||
m_stagename.SetText( "THE FINAL STAGE" );
|
||||
stage_mode = MODE_FINAL; // set back to final again.
|
||||
ez2Final = 0;
|
||||
}
|
||||
|
||||
m_stagename.BeginTweening(0.5f);
|
||||
|
||||
m_stagename.SetTweenX(fStageCenterX+70); // set their new locations
|
||||
m_frameStage.AddSubActor( &m_stagename );
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
this->SendScreenMessage( SM_DoneFadingIn, 1.0f );
|
||||
this->SendScreenMessage( SM_StartFadingOut, 4.0f );
|
||||
}
|
||||
@@ -474,35 +500,18 @@ ScreenStage::ScreenStage()
|
||||
void ScreenStage::Update( float fDeltaTime )
|
||||
{
|
||||
Screen::Update( fDeltaTime );
|
||||
|
||||
m_quadMask.Update( fDeltaTime );
|
||||
m_frameStage.Update( fDeltaTime );
|
||||
m_Fade.Update( fDeltaTime );
|
||||
m_sprSongBackground.Update( fDeltaTime );
|
||||
}
|
||||
|
||||
void ScreenStage::DrawPrimitives()
|
||||
{
|
||||
switch( g_StageType )
|
||||
{
|
||||
case STAGE_TYPE_MAX:
|
||||
// Enable Zbuffering for the mask in the dance mode
|
||||
if( g_StageType == STAGE_TYPE_MAX )
|
||||
DISPLAY->EnableZBuffer();
|
||||
m_quadMask.Draw();
|
||||
m_frameStage.Draw();
|
||||
|
||||
Screen::DrawPrimitives();
|
||||
|
||||
if( g_StageType == STAGE_TYPE_MAX )
|
||||
DISPLAY->DisableZBuffer();
|
||||
break;
|
||||
case STAGE_TYPE_PUMP:
|
||||
m_sprSongBackground.Draw();
|
||||
break;
|
||||
case STAGE_TYPE_EZ2:
|
||||
m_frameStage.Draw();
|
||||
// m_sprSongBackground.Draw();
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
m_Fade.Draw();
|
||||
}
|
||||
|
||||
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
|
||||
|
||||
@@ -26,11 +26,11 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
// Global Elements
|
||||
// Common Elements
|
||||
|
||||
ActorFrame m_frameStage;
|
||||
Sprite m_sprNumbers[4]; // up to 3 numbers and suffix
|
||||
Sprite m_sprStage; // "Stage"
|
||||
Sprite m_sprStage; // "Stage", "Final Stage", etc.
|
||||
|
||||
// Ez2 Elements
|
||||
|
||||
@@ -50,7 +50,6 @@ private:
|
||||
TransitionFade m_Fade;
|
||||
|
||||
protected:
|
||||
Song* m_pSong;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ const CString g_sStatisticsFileName = "statistics.ini";
|
||||
#define GROUP_COLOR_5 THEME->GetMetricC("SongManager","GroupColor5")
|
||||
#define GROUP_COLOR_6 THEME->GetMetricC("SongManager","GroupColor6")
|
||||
#define GROUP_COLOR_7 THEME->GetMetricC("SongManager","GroupColor7")
|
||||
#define EXTRA_COLOR THEME->GetMetricC("SongManager","GroupColor7")
|
||||
#define EXTRA_COLOR THEME->GetMetricC("SongManager","ExtraColor")
|
||||
|
||||
const int NUM_GROUP_COLORS = 7;
|
||||
D3DXCOLOR GROUP_COLORS[NUM_GROUP_COLORS];
|
||||
|
||||
@@ -624,14 +624,6 @@ SOURCE=.\GrooveRadar.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GroupInfoFrame.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GroupInfoFrame.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GroupList.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
@@ -628,12 +628,6 @@
|
||||
<File
|
||||
RelativePath="GrooveRadar.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="GroupInfoFrame.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="GroupInfoFrame.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="GroupList.cpp">
|
||||
</File>
|
||||
|
||||
Reference in New Issue
Block a user