Gametype ScreenStages now look like they do on their respective machines. Ez2dancer metric is still in the works though.

This commit is contained in:
Andrew Livy
2002-08-18 00:15:03 +00:00
parent 4558db37bb
commit 9b45ff8afe
4 changed files with 195 additions and 3 deletions
+1
View File
@@ -2,6 +2,7 @@
UseCautionOrSelectPlayer=0
UseNormalOrEZ2SelectStyle=0
SkipSelectDifficulty=0
StageScreenType=0
[TitleMenu]
ChoicesX=320
+1 -1
View File
@@ -603,7 +603,7 @@ StyleDef g_StyleDefs[NUM_STYLES] =
{ TRACK_2, GAME_CONTROLLER_1, EZ2_BUTTON_HANDUPLEFT, -EZ2_COL_SPACING*1 },
{ TRACK_3, GAME_CONTROLLER_1, EZ2_BUTTON_FOOTDOWN, +EZ2_COL_SPACING*0 },
{ TRACK_4, GAME_CONTROLLER_1, EZ2_BUTTON_HANDUPRIGHT, +EZ2_COL_SPACING*1 },
{ TRACK_5, GAME_CONTROLLER_1, EZ2_BUTTON_HANDUPRIGHT, +EZ2_COL_SPACING*2 },
{ TRACK_5, GAME_CONTROLLER_1, EZ2_BUTTON_FOOTUPRIGHT, +EZ2_COL_SPACING*2 },
},
{ // PLAYER_2
{ TRACK_1, GAME_CONTROLLER_2, EZ2_BUTTON_FOOTUPLEFT, -EZ2_COL_SPACING*2 },
+176 -1
View File
@@ -26,11 +26,20 @@
#include "AnnouncerManager.h"
#include "GameState.h"
#define STAGE_SCREEN_TYPE THEME->GetMetricI("General","StageScreenType")
enum StageScreenTypes // magic number nuker! for use with the metrics
{
SCREENTYPE_DANCE,
SCREENTYPE_PUMP,
SCREENTYPE_EZ2
};
const ScreenMessage SM_StartFadingOut = ScreenMessage(SM_User + 1);
const ScreenMessage SM_DoneFadingIn = ScreenMessage(SM_User + 2);
const ScreenMessage SM_GoToNextState = ScreenMessage(SM_User + 3);
enum StageType
{
TYPE_NORMAL,
@@ -156,6 +165,164 @@ ScreenStage::ScreenStage()
}
m_sprStage.SetX( fStageCenterX );
/////////////////////////
// EZ2 TYPE DEFINITION //
/////////////////////////
if ( STAGE_SCREEN_TYPE == SCREENTYPE_EZ2) // Initialize and manipulate existing graphics for Ez2dancer Screen Type
{
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
}
// 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_ez2ukm[0].SetXY( fStageCenterX-400, 0-220 ); // set the intiial UKMOVE positions
m_ez2ukm[1].SetXY( fStageCenterX+400, 0+220 );
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);
}
m_ez2ukm[0].SetTweenX(fStageCenterX+90); // set their new locations
m_ez2ukm[1].SetTweenX(fStageCenterX-170);
for (i=0; i<2; i++)
{
m_frameStage.AddSubActor( &m_ez2ukm[i] );
}
// Background Blocks rotate their way in
for (i=0; i<3; i++)
{
m_sprbg[i].Load( THEME->GetPathTo("Graphics","stage elements") );
m_sprbg[i].StopAnimating();
m_sprbg[i].SetState( i );
}
m_sprbg[0].SetXY( fStageCenterX-30, 0+150);
m_sprbg[0].SetHeight( 100 );
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);
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);
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] );
}
// 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 );
}
}
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 );
else
m_sprScrollingBlobs[j][i].SetXY( fStageCenterX+(SCREEN_WIDTH/2)+500-((i*i)*4), 170 );
}
}
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+20 );
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;
}
m_stagename.SetDiffuseColor( D3DXCOLOR(1.0f/225.0f*166.0f,1.0f/225.0f*83.0f,1/225.0f*16.0f,1) );
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] );
m_frameStage.AddSubActor( &m_sprStage );
@@ -195,18 +362,26 @@ 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()
{
DISPLAY->EnableZBuffer();
m_quadMask.Draw();
if ( STAGE_SCREEN_TYPE == SCREENTYPE_DANCE) // only DANCE uses the quadmask
m_quadMask.Draw();
m_frameStage.Draw();
DISPLAY->DisableZBuffer();
m_Fade.Draw();
if ( STAGE_SCREEN_TYPE == SCREENTYPE_PUMP) // only PUMP uses the song background on the stage screen
m_sprSongBackground.Draw();
}
void ScreenStage::HandleScreenMessage( const ScreenMessage SM )
+17 -1
View File
@@ -13,7 +13,7 @@
#include "ActorFrame.h"
#include "Actor.h"
#include "TransitionFade.h"
#include "Song.h"
class ScreenStage : public Screen
{
@@ -26,15 +26,31 @@ public:
private:
// Global Elements
ActorFrame m_frameStage;
Sprite m_sprNumbers[4]; // up to 3 numbers and suffix
Sprite m_sprStage; // "Stage"
// Ez2 Elements
Sprite m_sprbg[3];
Sprite m_sprScrollingBlobs[2][20];
BitmapText m_ez2ukm[2];
BitmapText m_stagename;
// Pump Elements
Sprite m_sprSongBackground;
Quad m_quadMask; // write this into ZBuffer as a mask
TransitionFade m_Fade;
Screen* m_pNextScreen;
protected:
Song* m_pSong;
};