From 05757f9d46bf1fb9b405153673e8570425da2948 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 30 Apr 2005 00:23:47 +0000 Subject: [PATCH] 2x overdraw on the whole life meter stream so that translucency is even --- stepmania/src/LifeMeterBar.cpp | 5 ++++- stepmania/src/LifeMeterTime.cpp | 5 ++++- stepmania/src/StreamDisplay.cpp | 20 ++++++++++++++++---- stepmania/src/StreamDisplay.h | 5 ++++- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/stepmania/src/LifeMeterBar.cpp b/stepmania/src/LifeMeterBar.cpp index 28b814c981..fd01054942 100644 --- a/stepmania/src/LifeMeterBar.cpp +++ b/stepmania/src/LifeMeterBar.cpp @@ -80,7 +80,10 @@ LifeMeterBar::LifeMeterBar() NUM_CHAMBERS, THEME->GetPathG(sType,sExtra+"normal"), THEME->GetPathG(sType,sExtra+"hot"), - THEME->GetPathG(sType,sExtra+"passing") + THEME->GetPathG(sType,sExtra+"passing"), + THEME->GetMetricA(sType,"StreamNormalOnCommand"), + THEME->GetMetricA(sType,"StreamHotOnCommand"), + THEME->GetMetricA(sType,"StreamPassingOnCommand") ); this->AddChild( m_pStream ); diff --git a/stepmania/src/LifeMeterTime.cpp b/stepmania/src/LifeMeterTime.cpp index 22f84aef47..a832009c4b 100644 --- a/stepmania/src/LifeMeterTime.cpp +++ b/stepmania/src/LifeMeterTime.cpp @@ -54,7 +54,10 @@ void LifeMeterTime::Load( PlayerNumber pn ) NUM_CHAMBERS, THEME->GetPathG(sType,sExtra+"normal"), THEME->GetPathG(sType,sExtra+"hot"), - THEME->GetPathG(sType,sExtra+"passing") + THEME->GetPathG(sType,sExtra+"passing"), + THEME->GetMetricA(sType,"StreamNormalOnCommand"), + THEME->GetMetricA(sType,"StreamHotOnCommand"), + THEME->GetMetricA(sType,"StreamPassingOnCommand") ); this->AddChild( m_pStream ); diff --git a/stepmania/src/StreamDisplay.cpp b/stepmania/src/StreamDisplay.cpp index 1bcfde987b..a0df92f6cb 100644 --- a/stepmania/src/StreamDisplay.cpp +++ b/stepmania/src/StreamDisplay.cpp @@ -10,7 +10,10 @@ void StreamDisplay::Load( int iNumChambers, const CString &sNormalPath, const CString &sHotPath, - const CString &sPassingPath + const CString &sPassingPath, + const apActorCommands &acNormalOnCommand, + const apActorCommands &acHotOnCommand, + const apActorCommands &acPassingOnCommand ) { m_fMeterWidth = fMeterWidth; @@ -30,14 +33,17 @@ void StreamDisplay::Load( ID.filename = sNormalPath; m_sprStreamNormal.Load( ID ); m_sprStreamNormal.SetUseZBuffer( true ); + m_sprStreamNormal.RunCommands( acNormalOnCommand ); ID.filename = sHotPath; m_sprStreamHot.Load( ID ); m_sprStreamHot.SetUseZBuffer( true ); + m_sprStreamHot.RunCommands( acHotOnCommand ); ID.filename = sPassingPath; m_sprStreamPassing.Load( ID ); m_sprStreamPassing.SetUseZBuffer( true ); + m_sprStreamPassing.RunCommands( acPassingOnCommand ); } void StreamDisplay::Update( float fDeltaSecs ) @@ -89,7 +95,7 @@ void StreamDisplay::DrawPrimitives() float fPercentOffset = fmodf( GAMESTATE->m_fSongBeat/4+1000, fPercentBetweenStrips ); ASSERT( fPercentOffset >= 0 && fPercentOffset <= fPercentBetweenStrips ); - for( float f=fPercentOffset+1; f>=0; f-=fPercentBetweenStrips ) + for( float f=fPercentOffset+2; f>=0; f-=fPercentBetweenStrips ) { DrawMask( f ); DrawStrip( f ); @@ -187,14 +193,20 @@ void StreamDisplay::DrawStrip( float fRightEdgePercent ) m_sprStreamPassing.SetCustomTextureRect( frectCustomTexRect ); m_sprStreamHot.SetCustomTextureRect( frectCustomTexRect ); - m_sprStreamPassing.SetDiffuse( RageColor(1,1,1,m_fPassingAlpha) ); - m_sprStreamHot.SetDiffuse( RageColor(1,1,1,m_fHotAlpha) ); + float fOrigPassingAlpha = m_sprStreamPassing.GetDiffuse().a; + float fOrigHotAlpha = m_sprStreamHot.GetDiffuse().a; + + m_sprStreamPassing.SetDiffuseAlpha( m_fPassingAlpha * fOrigPassingAlpha ); + m_sprStreamHot.SetDiffuseAlpha( m_fHotAlpha * fOrigHotAlpha ); if( m_fPassingAlpha < 1 && m_fHotAlpha < 1) m_sprStreamNormal.Draw(); if( m_fHotAlpha < 1) m_sprStreamPassing.Draw(); m_sprStreamHot.Draw(); + + m_sprStreamPassing.SetDiffuseAlpha( fOrigPassingAlpha ); + m_sprStreamHot.SetDiffuseAlpha( fOrigHotAlpha ); } void StreamDisplay::DrawMask( float fPercent ) diff --git a/stepmania/src/StreamDisplay.h b/stepmania/src/StreamDisplay.h index 8184a940a5..1040a35d44 100644 --- a/stepmania/src/StreamDisplay.h +++ b/stepmania/src/StreamDisplay.h @@ -27,7 +27,10 @@ public: int iNumChambers, const CString &sNormalPath, const CString &sHotPath, - const CString &sPassingPath + const CString &sPassingPath, + const apActorCommands &acNormalOnCommand, + const apActorCommands &acHotOnCommand, + const apActorCommands &acPassingOnCommand ); void DrawPrimitives();