add disqualifying "cover" modifier: don't show the song background
This commit is contained in:
@@ -34,16 +34,16 @@
|
||||
|
||||
const float FADE_SECONDS = 1.0f;
|
||||
|
||||
#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 LEFT_EDGE THEME->GetMetricF("Background","LeftEdge")
|
||||
#define TOP_EDGE THEME->GetMetricF("Background","TopEdge")
|
||||
#define RIGHT_EDGE THEME->GetMetricF("Background","RightEdge")
|
||||
#define BOTTOM_EDGE THEME->GetMetricF("Background","BottomEdge")
|
||||
CachedThemeMetricB BLINK_DANGER_ALL("Background","BlinkDangerAll");
|
||||
CachedThemeMetricB DANGER_ALL_IS_OPAQUE("Background","DangerAllIsOpaque");
|
||||
|
||||
#define RECT_BACKGROUND RectI(LEFT_EDGE,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE)
|
||||
|
||||
#define RECT_BACKGROUND RectF(LEFT_EDGE,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE)
|
||||
|
||||
static float g_fBackgroundCenterWidth = 40;
|
||||
const CString STATIC_BACKGROUND = "static background";
|
||||
|
||||
Background::Background()
|
||||
@@ -64,18 +64,6 @@ Background::Background()
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
m_DeadPlayer[p].LoadFromAniDir( THEME->GetPathToB(ssprintf("ScreenGameplay dead p%d",p+1)) );
|
||||
|
||||
m_quadBGBrightness.StretchTo( RECT_BACKGROUND );
|
||||
m_quadBGBrightness.SetDiffuse( RageColor(0,0,0,1-PREFSMAN->m_fBGBrightness) );
|
||||
|
||||
m_quadBorder[0].StretchTo( RectI(SCREEN_LEFT,SCREEN_TOP,LEFT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[0].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[1].StretchTo( RectI(LEFT_EDGE,SCREEN_TOP,RIGHT_EDGE,TOP_EDGE) );
|
||||
m_quadBorder[1].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[2].StretchTo( RectI(RIGHT_EDGE,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
m_quadBorder[2].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[3].StretchTo( RectI(LEFT_EDGE,BOTTOM_EDGE,RIGHT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[3].SetDiffuse( RageColor(0,0,0,1) );
|
||||
|
||||
bool bOneOrMoreChars = false;
|
||||
bool bShowingBeginnerHelper = false;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
@@ -94,6 +82,8 @@ Background::Background()
|
||||
m_pDancingCharacters = new DancingCharacters;
|
||||
else
|
||||
m_pDancingCharacters = NULL;
|
||||
|
||||
this->AddChild( &m_Brightness );
|
||||
}
|
||||
|
||||
Background::~Background()
|
||||
@@ -564,8 +554,6 @@ void Background::Update( float fDeltaTime )
|
||||
|
||||
if( m_pDancingCharacters )
|
||||
m_pDancingCharacters->Update( fDeltaTime );
|
||||
|
||||
m_quadBGBrightness.Update( fDeltaTime );
|
||||
}
|
||||
|
||||
void Background::DrawPrimitives()
|
||||
@@ -573,8 +561,6 @@ void Background::DrawPrimitives()
|
||||
if( PREFSMAN->m_fBGBrightness == 0 )
|
||||
return;
|
||||
|
||||
ActorFrame::DrawPrimitives();
|
||||
|
||||
if( IsDangerAllVisible() )
|
||||
{
|
||||
// Since this only shows when DANGER is visible, it will flash red on it's own accord :)
|
||||
@@ -604,9 +590,7 @@ void Background::DrawPrimitives()
|
||||
if( m_pDancingCharacters )
|
||||
m_pDancingCharacters->Draw();
|
||||
|
||||
m_quadBGBrightness.Draw();
|
||||
for( int i=0; i<4; i++ )
|
||||
m_quadBorder[i].Draw();
|
||||
ActorFrame::DrawPrimitives();
|
||||
}
|
||||
|
||||
bool Background::IsDangerAllVisible()
|
||||
@@ -647,15 +631,76 @@ bool Background::IsDeadPlayerVisible( PlayerNumber pn )
|
||||
}
|
||||
|
||||
|
||||
void Background::FadeIn()
|
||||
BrightnessOverlay::BrightnessOverlay()
|
||||
{
|
||||
m_quadBGBrightness.BeginTweening( 0.5f );
|
||||
m_quadBGBrightness.SetDiffuse( RageColor(0,0,0,1-PREFSMAN->m_fBGBrightness) );
|
||||
float fQuadWidth = (RIGHT_EDGE-LEFT_EDGE)/2;
|
||||
fQuadWidth -= g_fBackgroundCenterWidth/2;
|
||||
|
||||
m_quadBGBrightness[0].StretchTo( RectF(LEFT_EDGE,TOP_EDGE,LEFT_EDGE+fQuadWidth,BOTTOM_EDGE) );
|
||||
m_quadBGBrightnessFade.StretchTo( RectF(LEFT_EDGE+fQuadWidth,TOP_EDGE,RIGHT_EDGE-fQuadWidth,BOTTOM_EDGE) );
|
||||
m_quadBGBrightness[1].StretchTo( RectF(RIGHT_EDGE-fQuadWidth,TOP_EDGE,RIGHT_EDGE,BOTTOM_EDGE) );
|
||||
|
||||
m_quadBorder[0].StretchTo( RectF(SCREEN_LEFT,SCREEN_TOP,LEFT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[0].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[1].StretchTo( RectF(LEFT_EDGE,SCREEN_TOP,RIGHT_EDGE,TOP_EDGE) );
|
||||
m_quadBorder[1].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[2].StretchTo( RectF(RIGHT_EDGE,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) );
|
||||
m_quadBorder[2].SetDiffuse( RageColor(0,0,0,1) );
|
||||
m_quadBorder[3].StretchTo( RectF(LEFT_EDGE,BOTTOM_EDGE,RIGHT_EDGE,SCREEN_BOTTOM) );
|
||||
m_quadBorder[3].SetDiffuse( RageColor(0,0,0,1) );
|
||||
|
||||
this->AddChild( &m_quadBGBrightness[0] );
|
||||
this->AddChild( &m_quadBGBrightness[1] );
|
||||
this->AddChild( &m_quadBGBrightnessFade );
|
||||
|
||||
this->AddChild( &m_quadBorder[0] );
|
||||
this->AddChild( &m_quadBorder[1] );
|
||||
this->AddChild( &m_quadBorder[2] );
|
||||
this->AddChild( &m_quadBorder[3] );
|
||||
|
||||
SetBackgrounds();
|
||||
}
|
||||
|
||||
void Background::FadeOut()
|
||||
void BrightnessOverlay::Update( float fDeltaTime )
|
||||
{
|
||||
m_quadBGBrightness.BeginTweening( 0.5f );
|
||||
m_quadBGBrightness.SetDiffuse( RageColor(0,0,0,1-0.5f) );
|
||||
ActorFrame::Update( fDeltaTime );
|
||||
SetBackgrounds();
|
||||
}
|
||||
|
||||
void BrightnessOverlay::SetBackgrounds()
|
||||
{
|
||||
float fLeftBrightness = 1-GAMESTATE->m_PlayerOptions[PLAYER_1].m_fCover;
|
||||
float fRightBrightness = 1-GAMESTATE->m_PlayerOptions[PLAYER_2].m_fCover;
|
||||
|
||||
fLeftBrightness *= PREFSMAN->m_fBGBrightness;
|
||||
fRightBrightness *= PREFSMAN->m_fBGBrightness;
|
||||
|
||||
if( !GAMESTATE->IsHumanPlayer(PLAYER_1) )
|
||||
fLeftBrightness = fRightBrightness;
|
||||
if( !GAMESTATE->IsHumanPlayer(PLAYER_2) )
|
||||
fRightBrightness = fLeftBrightness;
|
||||
|
||||
RageColor LeftColor( 0,0,0,1-fLeftBrightness );
|
||||
RageColor RightColor( 0,0,0,1-fRightBrightness );
|
||||
|
||||
m_quadBGBrightness[PLAYER_1].SetDiffuse( LeftColor );
|
||||
m_quadBGBrightness[PLAYER_2].SetDiffuse( RightColor );
|
||||
m_quadBGBrightnessFade.SetDiffuseLeftEdge( LeftColor );
|
||||
m_quadBGBrightnessFade.SetDiffuseRightEdge( RightColor );
|
||||
}
|
||||
|
||||
void BrightnessOverlay::FadeIn()
|
||||
{
|
||||
FOREACH_PlayerNumber(pn)
|
||||
m_quadBGBrightness[pn].BeginTweening( 0.5f );
|
||||
SetBackgrounds();
|
||||
}
|
||||
|
||||
void BrightnessOverlay::FadeOut()
|
||||
{
|
||||
FOREACH_PlayerNumber(pn)
|
||||
{
|
||||
m_quadBGBrightness[pn].BeginTweening( 0.5f );
|
||||
m_quadBGBrightness[pn].SetDiffuse( RageColor(0,0,0,1-0.5f) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,20 @@
|
||||
#include <deque>
|
||||
class DancingCharacters;
|
||||
|
||||
class BrightnessOverlay: public ActorFrame
|
||||
{
|
||||
Quad m_quadBGBrightness[NUM_PLAYERS];
|
||||
Quad m_quadBGBrightnessFade;
|
||||
Quad m_quadBorder[4]; // l, t, r, b - cover up the edge of animations that might hang outside of the background rectangle
|
||||
void SetBackgrounds();
|
||||
|
||||
public:
|
||||
BrightnessOverlay();
|
||||
void Update( float fDeltaTime );
|
||||
|
||||
void FadeIn();
|
||||
void FadeOut();
|
||||
};
|
||||
|
||||
class Background : public ActorFrame
|
||||
{
|
||||
@@ -33,8 +47,8 @@ public:
|
||||
virtual void Update( float fDeltaTime );
|
||||
virtual void DrawPrimitives();
|
||||
|
||||
void FadeIn();
|
||||
void FadeOut();
|
||||
void FadeIn() { m_Brightness.FadeIn(); }
|
||||
void FadeOut() { m_Brightness.FadeOut(); }
|
||||
|
||||
DancingCharacters* GetDancingCharacters() { return m_pDancingCharacters; };
|
||||
|
||||
@@ -48,6 +62,7 @@ protected:
|
||||
bool IsDangerAllVisible();
|
||||
bool IsDeadPlayerVisible( PlayerNumber pn );
|
||||
void UpdateCurBGChange( float fCurrentTime );
|
||||
void SetBackgrounds();
|
||||
|
||||
DancingCharacters* m_pDancingCharacters;
|
||||
|
||||
@@ -68,8 +83,7 @@ protected:
|
||||
float m_fSecsLeftInFade;
|
||||
float m_fLastMusicSeconds;
|
||||
|
||||
Quad m_quadBGBrightness;
|
||||
Quad m_quadBorder[4]; // l, t, r, b - cover up the edge of animations that might hang outside of the background rectangle
|
||||
BrightnessOverlay m_Brightness;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ void PlayerOptions::Init()
|
||||
ZERO( m_fScrolls ); ONE( m_SpeedfScrolls );
|
||||
m_fDark = 0; m_SpeedfDark = 1.0f;
|
||||
m_fBlind = 0; m_SpeedfBlind = 1.0f;
|
||||
m_fCover = 0; m_SpeedfCover = 1.0f;
|
||||
m_fPerspectiveTilt = 0; m_SpeedfPerspectiveTilt = 1.0f;
|
||||
m_fSkew = 0; m_SpeedfSkew = 1.0f;
|
||||
m_fPassmark = 0; m_SpeedfPassmark = 1.0f;
|
||||
@@ -62,6 +63,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
|
||||
APP( fScrollSpeed );
|
||||
APP( fDark );
|
||||
APP( fBlind );
|
||||
APP( fCover );
|
||||
APP( fPerspectiveTilt );
|
||||
APP( fSkew );
|
||||
APP( fPassmark );
|
||||
@@ -134,6 +136,7 @@ CString PlayerOptions::GetString() const
|
||||
sReturn += AddPart( m_fDark, "Dark");
|
||||
|
||||
sReturn += AddPart( m_fBlind, "Blind");
|
||||
sReturn += AddPart( m_fCover, "Cover");
|
||||
|
||||
sReturn += AddPart( m_fPassmark, "Passmark");
|
||||
|
||||
@@ -297,6 +300,7 @@ void PlayerOptions::FromString( CString sOptions )
|
||||
else if( sBit == "nomines" ) m_bTransforms[TRANSFORM_NOMINES] = on;
|
||||
else if( sBit == "dark" ) SET_FLOAT( fDark )
|
||||
else if( sBit == "blind" ) SET_FLOAT( fBlind )
|
||||
else if( sBit == "cover" ) SET_FLOAT( fCover )
|
||||
else if( sBit == "passmark" ) SET_FLOAT( fPassmark )
|
||||
else if( sBit == "protiming") m_bProTiming = on;
|
||||
else if( sBit == "overhead" ) { m_fSkew = 0; m_fPerspectiveTilt = 0; m_SpeedfSkew = m_SpeedfPerspectiveTilt = speed; }
|
||||
@@ -516,6 +520,7 @@ bool PlayerOptions::operator==( const PlayerOptions &other ) const
|
||||
COMPARE(m_fScrollBPM);
|
||||
COMPARE(m_fDark);
|
||||
COMPARE(m_fBlind);
|
||||
COMPARE(m_fCover);
|
||||
COMPARE(m_bProTiming);
|
||||
COMPARE(m_fPerspectiveTilt);
|
||||
COMPARE(m_fSkew);
|
||||
@@ -561,6 +566,7 @@ bool PlayerOptions::IsEasierForSongAndSteps( Song* pSong, Steps* pSteps )
|
||||
// This makes songs with sparse notes easier.
|
||||
if( m_bTransforms[TRANSFORM_ECHO] ) return true;
|
||||
|
||||
if( m_fCover ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@ struct PlayerOptions
|
||||
float m_fScrolls[NUM_SCROLLS],m_SpeedfScrolls[NUM_SCROLLS];
|
||||
float m_fDark, m_SpeedfDark;
|
||||
float m_fBlind, m_SpeedfBlind;
|
||||
float m_fCover, m_SpeedfCover; // hide the background per-player--can't think of a good name
|
||||
float m_fPerspectiveTilt, m_SpeedfPerspectiveTilt; // -1 = near, 0 = overhead, +1 = space
|
||||
float m_fSkew, m_SpeedfSkew; // 0 = vanish point is in center of player, 1 = vanish point is in center of screen
|
||||
|
||||
|
||||
Reference in New Issue
Block a user