FailEndOfSong sounds like "fail at the end of the song", but
actually means "fail immediately, but you can play the rest of the song anyway". Rename FAIL_END_OF_SONG to FAIL_IMMEDIATE_CONTINUE, to reflect this better.
This commit is contained in:
@@ -1199,7 +1199,7 @@ SongOptions::FailType GameState::GetPlayerFailType( const PlayerState *pPlayerSt
|
||||
if( IsCourseMode() )
|
||||
{
|
||||
if( PREFSMAN->m_bMinimum1FullSongInCourses && GetCourseSongIndex()==0 )
|
||||
ft = max( ft, SongOptions::FAIL_END_OF_SONG ); // take the least harsh of the two FailTypes
|
||||
ft = max( ft, SongOptions::FAIL_IMMEDIATE_CONTINUE ); // take the least harsh of the two FailTypes
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1209,9 +1209,9 @@ SongOptions::FailType GameState::GetPlayerFailType( const PlayerState *pPlayerSt
|
||||
|
||||
bool bFirstStage = !IsEventMode() && m_iCurrentStageIndex == 0;
|
||||
|
||||
/* Easy and beginner are never harder than FAIL_END_OF_SONG. */
|
||||
/* Easy and beginner are never harder than FAIL_IMMEDIATE_CONTINUE. */
|
||||
if( dc <= DIFFICULTY_EASY )
|
||||
setmax( ft, SongOptions::FAIL_END_OF_SONG );
|
||||
setmax( ft, SongOptions::FAIL_IMMEDIATE_CONTINUE );
|
||||
|
||||
if( dc <= DIFFICULTY_EASY && bFirstStage && PREFSMAN->m_bFailOffForFirstStageEasy )
|
||||
setmax( ft, SongOptions::FAIL_OFF );
|
||||
|
||||
@@ -450,7 +450,7 @@ static void DefaultFailType( int &sel, bool ToSel, const ConfOption *pConfOption
|
||||
switch( sel )
|
||||
{
|
||||
case 0: so.m_FailType = SongOptions::FAIL_IMMEDIATE; break;
|
||||
case 1: so.m_FailType = SongOptions::FAIL_END_OF_SONG; break;
|
||||
case 1: so.m_FailType = SongOptions::FAIL_IMMEDIATE_CONTINUE; break;
|
||||
case 2: so.m_FailType = SongOptions::FAIL_OFF; break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
|
||||
@@ -60,7 +60,7 @@ void SongOptions::GetMods( vector<RString> &AddTo ) const
|
||||
switch( m_FailType )
|
||||
{
|
||||
case FAIL_IMMEDIATE: break;
|
||||
case FAIL_END_OF_SONG: AddTo.push_back("FailEndOfSong"); break;
|
||||
case FAIL_IMMEDIATE_CONTINUE: AddTo.push_back("FailImmediateContinue"); break;
|
||||
case FAIL_OFF: AddTo.push_back("FailOff"); break;
|
||||
default: ASSERT(0);
|
||||
}
|
||||
@@ -152,7 +152,8 @@ void SongOptions::FromString( const RString &sOptions )
|
||||
else if( sBit == "normal-drain" ) m_DrainType = DRAIN_NORMAL;
|
||||
else if( sBit == "failarcade" ||
|
||||
sBit == "failimmediate" ) m_FailType = FAIL_IMMEDIATE;
|
||||
else if( sBit == "failendofsong" ) m_FailType = FAIL_END_OF_SONG;
|
||||
else if( sBit == "failendofsong" ||
|
||||
sBit == "failimmediatecontinue" ) m_FailType = FAIL_IMMEDIATE_CONTINUE;
|
||||
else if( sBit == "failoff" ) m_FailType = FAIL_OFF;
|
||||
|
||||
else if( sBit == "faildefault" )
|
||||
|
||||
@@ -23,8 +23,8 @@ public:
|
||||
DrainType m_DrainType; // only used with LifeBar
|
||||
int m_iBatteryLives;
|
||||
enum FailType {
|
||||
FAIL_IMMEDIATE=0, // fail when life touches 0
|
||||
FAIL_END_OF_SONG, // fail on end of song if life touched 0
|
||||
FAIL_IMMEDIATE=0, // fail immediately when life touches 0
|
||||
FAIL_IMMEDIATE_CONTINUE, // fail immediately when life touches 0, but allow playing the rest of the song
|
||||
FAIL_OFF }; // never fail
|
||||
FailType m_FailType;
|
||||
float m_fMusicRate, m_SpeedfMusicRate;
|
||||
|
||||
Reference in New Issue
Block a user