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_GhostArrowRow.Update( fDeltaTime );
cur->m_ReceptorArrowRow.Update( fDeltaTime );
if( m_fPercentFadeToFail >= 0 )
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();
/*
+1 -1
View File
@@ -273,7 +273,7 @@ public:
bool m_bSmoothLines;
CString m_sSoundDrivers;
int m_iSoundWriteAhead;
CString m_iSoundDevice;
CString m_iSoundDevice;
float m_fSoundVolume;
int m_iSoundResampleQuality;
CString m_sInputDrivers;
+7 -1
View File
@@ -14,6 +14,9 @@
ReceptorArrowRow::ReceptorArrowRow()
{
m_iNumCols = 0;
m_pPlayerState = NULL;
m_fYReverseOffsetPixels = 0;
m_fFadeToFailPercent = 0;
}
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++ )
{
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
const float fX = ArrowEffects::GetXPos( m_pPlayerState, c, 0 );
+3
View File
@@ -24,10 +24,13 @@ public:
void Step( int iCol, TapNoteScore score );
void SetPressed( int iCol );
void SetFadeToFailPercent( float fFadeToFailPercent ) { m_fFadeToFailPercent = fFadeToFailPercent; }
protected:
int m_iNumCols;
const PlayerState* m_pPlayerState;
float m_fYReverseOffsetPixels;
float m_fFadeToFailPercent;
ReceptorArrow m_ReceptorArrow[MAX_NOTE_TRACKS];
};
+13 -3
View File
@@ -1411,7 +1411,7 @@ void ScreenGameplay::Update( float fDeltaTime )
{
case STATE_DANCING:
/* Set STATSMAN->m_CurStageStats.bFailed for failed players. In, FAIL_IMMEDIATE, send
* SM_BeginFailed if all players failed, and kill dead Oni players. */
* SM_BeginFailed if all players failed, and kill dead Oni players. */
FOREACH_EnabledPlayer( pn )
{
SongOptions::FailType ft = GAMESTATE->GetPlayerFailType(pn);
@@ -1436,8 +1436,18 @@ void ScreenGameplay::Update( float fDeltaTime )
LOG->Trace("Player %d failed", (int)pn);
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
{