fix FadeToFail

do FadeToFail for LIFE_TIME
This commit is contained in:
Chris Danford
2005-05-09 02:58:30 +00:00
parent 4a3a87e25b
commit 68c6b6a126
5 changed files with 34 additions and 5 deletions
+10
View File
@@ -169,9 +169,19 @@ void NoteField::Update( float fDeltaTime )
cur->m_ReceptorArrowRow.Update( fDeltaTime ); cur->m_ReceptorArrowRow.Update( fDeltaTime );
cur->m_GhostArrowRow.Update( fDeltaTime ); cur->m_GhostArrowRow.Update( fDeltaTime );
cur->m_ReceptorArrowRow.Update( fDeltaTime );
if( m_fPercentFadeToFail >= 0 ) if( m_fPercentFadeToFail >= 0 )
m_fPercentFadeToFail = min( m_fPercentFadeToFail + fDeltaTime/1.5f, 1 ); // take 1.5 seconds to totally fade m_fPercentFadeToFail = min( m_fPercentFadeToFail + fDeltaTime/1.5f, 1 ); // take 1.5 seconds to totally fade
// Update fade to failed
FOREACHM( CString, NoteDisplayCols*, m_NoteDisplays, iter )
{
iter->second->m_ReceptorArrowRow.SetFadeToFailPercent( m_fPercentFadeToFail );
}
RefreshBeatToNoteSkin(); RefreshBeatToNoteSkin();
/* /*
+7 -1
View File
@@ -14,6 +14,9 @@
ReceptorArrowRow::ReceptorArrowRow() ReceptorArrowRow::ReceptorArrowRow()
{ {
m_iNumCols = 0; m_iNumCols = 0;
m_pPlayerState = NULL;
m_fYReverseOffsetPixels = 0;
m_fFadeToFailPercent = 0;
} }
void ReceptorArrowRow::Load( const PlayerState* pPlayerState, float fYReverseOffset ) void ReceptorArrowRow::Load( const PlayerState* pPlayerState, float fYReverseOffset )
@@ -37,7 +40,10 @@ void ReceptorArrowRow::Update( float fDeltaTime )
for( int c=0; c<m_iNumCols; c++ ) for( int c=0; c<m_iNumCols; c++ )
{ {
m_ReceptorArrow[c].Update( fDeltaTime ); m_ReceptorArrow[c].Update( fDeltaTime );
m_ReceptorArrow[c].SetBaseAlpha( 1 - m_pPlayerState->m_CurrentPlayerOptions.m_fDark );
// m_fDark==1 or m_fFadeToFailPercent==1 should make fBaseAlpha==0
float fBaseAlpha = (1 - m_pPlayerState->m_CurrentPlayerOptions.m_fDark) * (1 - m_fFadeToFailPercent);
m_ReceptorArrow[c].SetBaseAlpha( fBaseAlpha );
// set arrow XYZ // set arrow XYZ
const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 ); const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 );
+3
View File
@@ -24,10 +24,13 @@ public:
void Step( int iCol, TapNoteScore score ); void Step( int iCol, TapNoteScore score );
void SetPressed( int iCol ); void SetPressed( int iCol );
void SetFadeToFailPercent( float fFadeToFailPercent ) { m_fFadeToFailPercent = fFadeToFailPercent; }
protected: protected:
int m_iNumCols; int m_iNumCols;
const PlayerState* m_pPlayerState; const PlayerState* m_pPlayerState;
float m_fYReverseOffsetPixels; float m_fYReverseOffsetPixels;
float m_fFadeToFailPercent;
ReceptorArrow m_ReceptorArrow[MAX_NOTE_TRACKS]; ReceptorArrow m_ReceptorArrow[MAX_NOTE_TRACKS];
}; };
+12 -2
View File
@@ -1436,8 +1436,18 @@ void ScreenGameplay::Update( float fDeltaTime )
LOG->Trace("Player %d failed", (int)pn); LOG->Trace("Player %d failed", (int)pn);
STATSMAN->m_CurStageStats.m_player[pn].bFailed = true; // fail STATSMAN->m_CurStageStats.m_player[pn].bFailed = true; // fail
if( lt == SongOptions::LIFE_BATTERY && //
ft == SongOptions::FAIL_IMMEDIATE ) // Check for and do Oni die.
//
bool bAllowOniDie = false;
switch( lt )
{
case SongOptions::LIFE_BATTERY:
case SongOptions::LIFE_TIME:
bAllowOniDie = true;
break;
}
if( bAllowOniDie && ft == SongOptions::FAIL_IMMEDIATE )
{ {
if( !STATSMAN->m_CurStageStats.AllFailedEarlier() ) // if not the last one to fail if( !STATSMAN->m_CurStageStats.AllFailedEarlier() ) // if not the last one to fail
{ {