From ebbdf05f9ae98d6ba87b57f1b9360d50fefcbab3 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 8 Apr 2004 00:18:13 +0000 Subject: [PATCH] metric to specify what brightness to fade the background from --- stepmania/Themes/default/metrics.ini | 6 ++++++ stepmania/src/Background.cpp | 18 ++++++++++-------- stepmania/src/Background.h | 9 ++++----- stepmania/src/ScreenGameplay.cpp | 6 +++++- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 402881672e..ceeab383cc 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -906,6 +906,12 @@ NextScreenOni=ScreenEvaluationOni NextScreenEndless=ScreenEvaluationEndless NextScreenBattle=ScreenEvaluationBattle NextScreenRave=ScreenEvaluationRave +InitialBackgroundBrightnessArcade=1 +InitialBackgroundBrightnessNonstop=1 +InitialBackgroundBrightnessOni=1 +InitialBackgroundBrightnessEndless=1 +InitialBackgroundBrightnessBattle=1 +InitialBackgroundBrightnessRave=1 BPMDisplayX=999 // don't show by default BPMDisplayY=999 BPMDisplayOnCommand=zoom,0 diff --git a/stepmania/src/Background.cpp b/stepmania/src/Background.cpp index 5c33993763..95443e1283 100644 --- a/stepmania/src/Background.cpp +++ b/stepmania/src/Background.cpp @@ -663,7 +663,10 @@ BrightnessOverlay::BrightnessOverlay() void BrightnessOverlay::Update( float fDeltaTime ) { ActorFrame::Update( fDeltaTime ); - SetBackgrounds(); + /* If we're actually playing, then we're past fades, etc; update the background + * brightness to follow Cover. */ + if( GAMESTATE->m_bPastHereWeGo ) + SetBackgrounds(); } void BrightnessOverlay::SetBackgrounds() @@ -688,18 +691,17 @@ void BrightnessOverlay::SetBackgrounds() m_quadBGBrightnessFade.SetDiffuseRightEdge( RightColor ); } -void BrightnessOverlay::FadeIn() +void BrightnessOverlay::Set( float fBrightness ) { FOREACH_PlayerNumber(pn) - m_quadBGBrightness[pn].BeginTweening( 0.5f ); - SetBackgrounds(); + m_quadBGBrightness[pn].SetDiffuse( RageColor(0,0,0,1-fBrightness) ); + m_quadBGBrightnessFade.SetDiffuse( RageColor(0,0,0,1-fBrightness) ); } -void BrightnessOverlay::FadeOut() +void BrightnessOverlay::FadeToActualBrightness() { FOREACH_PlayerNumber(pn) - { m_quadBGBrightness[pn].BeginTweening( 0.5f ); - m_quadBGBrightness[pn].SetDiffuse( RageColor(0,0,0,1-0.5f) ); - } + m_quadBGBrightnessFade.BeginTweening( 0.5f ); + SetBackgrounds(); } diff --git a/stepmania/src/Background.h b/stepmania/src/Background.h index 524abe7b65..0ce1f31845 100644 --- a/stepmania/src/Background.h +++ b/stepmania/src/Background.h @@ -31,8 +31,8 @@ public: BrightnessOverlay(); void Update( float fDeltaTime ); - void FadeIn(); - void FadeOut(); + void FadeToActualBrightness(); + void Set( float fBrightness ); }; class Background : public ActorFrame @@ -47,8 +47,8 @@ public: virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); - void FadeIn() { m_Brightness.FadeIn(); } - void FadeOut() { m_Brightness.FadeOut(); } + void FadeToActualBrightness() { m_Brightness.FadeToActualBrightness(); } + void SetBrightness( float fBrightness ) { m_Brightness.Set(fBrightness); } /* overrides pref and Cover */ DancingCharacters* GetDancingCharacters() { return m_pDancingCharacters; }; @@ -62,7 +62,6 @@ protected: bool IsDangerAllVisible(); bool IsDeadPlayerVisible( PlayerNumber pn ); void UpdateCurBGChange( float fCurrentTime ); - void SetBackgrounds(); DancingCharacters* m_pDancingCharacters; diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 7379815409..4b8932a1b9 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -60,6 +60,9 @@ #define EVAL_ON_FAIL THEME->GetMetricB("ScreenGameplay","ShowEvaluationOnFail") #define SHOW_SCORE_IN_RAVE THEME->GetMetricB("ScreenGameplay","ShowScoreInRave") #define SONG_POSITION_METER_WIDTH THEME->GetMetricF("ScreenGameplay","SongPositionMeterWidth") +/* XXX: This is ugly; most people don't need to override this per-mode. This will + * go away eventually, once metrics can redirect to Lua calls. */ +#define INITIAL_BACKGROUND_BRIGHTNESS( play_mode ) THEME->GetMetricF("ScreenGameplay","InitialBackgroundBrightness"+Capitalize(PlayModeToString(play_mode))) static CachedThemeMetricF SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBetweenComments"); static CachedThemeMetricF TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds"); @@ -1015,6 +1018,7 @@ void ScreenGameplay::LoadNextSong() { /* BeginnerHelper disabled/failed to load. */ m_Background.LoadFromSong( GAMESTATE->m_pCurSong ); + m_Background.SetBrightness( INITIAL_BACKGROUND_BRIGHTNESS(GAMESTATE->m_PlayMode) ); } m_Foreground.LoadFromSong( GAMESTATE->m_pCurSong ); @@ -1902,7 +1906,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) switch( SM ) { case SM_PlayReady: - m_Background.FadeIn(); + m_Background.FadeToActualBrightness(); SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay ready") ); m_Ready.StartTransitioning( SM_PlayGo ); break;