turn off autofail by default for beginner/easy; turn off failure

completely for beginner first stage
This commit is contained in:
Glenn Maynard
2003-02-05 01:26:46 +00:00
parent 06be98567b
commit 7f59ed4ba5
2 changed files with 32 additions and 0 deletions
+31
View File
@@ -532,6 +532,36 @@ void ScreenSelectMusic::HarderDifficulty( PlayerNumber pn )
AfterNotesChange( pn );
}
void ScreenSelectMusic::AdjustOptions()
{
/* Find the easiest difficulty notes selected by either player. */
Difficulty dc = DIFFICULTY_INVALID;
for( int p=0; p<NUM_PLAYERS; p++ )
{
if( !GAMESTATE->IsPlayerEnabled(p) )
continue; // skip
dc = min(dc, GAMESTATE->m_pCurNotes[p]->GetDifficulty());
}
/* In event mode, switch to fail-end-of-stage if either chose beginner or easy. */
if(PREFSMAN->m_bEventMode && dc <= DIFFICULTY_EASY)
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FailType::FAIL_END_OF_SONG;
/* Otherwise, if either chose beginner's steps, and this is the first stage,
* turn off failure completely (always give a second shot). */
else if(dc == DIFFICULTY_BEGINNER)
{
/* Beginners get a freebie and then end-of-song. */
if(GAMESTATE->m_iCurrentStageIndex == 0)
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FailType::FAIL_OFF;
else
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FailType::FAIL_END_OF_SONG;
}
/* Easy is always end-of-song. */
else if(dc == DIFFICULTY_EASY)
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FailType::FAIL_END_OF_SONG;
}
void ScreenSelectMusic::HandleScreenMessage( const ScreenMessage SM )
{
@@ -665,6 +695,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
m_Menu.TweenOffScreenToBlack( SM_None, false );
m_Menu.StopTimer();
AdjustOptions();
this->SendScreenMessage( SM_GoToNextScreen, 2.5f );
break;
+1
View File
@@ -53,6 +53,7 @@ protected:
void SortOrderChanged();
void UpdateOptionsDisplays();
void AdjustOptions();
vector<Notes*> m_arrayNotes[NUM_PLAYERS];
int m_iSelection[NUM_PLAYERS];