From a970766dff1377a037404ae064e396021447ef9f Mon Sep 17 00:00:00 2001 From: Chris Gomez Date: Mon, 25 Aug 2003 17:15:47 +0000 Subject: [PATCH] Add support for a few announcer triggers; gameplay oni fail gameplay oni fail halfway (may as well, used in extreme) gameplay combo overflow (for multiples of 100 over 1000) Hm. neither of the oni fail ones are actually oni-specific (are used with any course mode). --- stepmania/src/ScoreKeeperMAX2.cpp | 2 ++ stepmania/src/ScreenGameplay.cpp | 20 +++++++++++++++++--- stepmania/src/ScreenGameplay.h | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/stepmania/src/ScoreKeeperMAX2.cpp b/stepmania/src/ScoreKeeperMAX2.cpp index d1cc55d923..8cb2a785f6 100644 --- a/stepmania/src/ScoreKeeperMAX2.cpp +++ b/stepmania/src/ScoreKeeperMAX2.cpp @@ -401,6 +401,8 @@ void ScoreKeeperMAX2::HandleTapRowScore( TapNoteScore scoreOfLastTap, int iNumTa SCREENMAN->PostMessageToTopScreen( SM_900Combo, 0 ); else if( CROSSED(1000)) SCREENMAN->PostMessageToTopScreen( SM_1000Combo, 0 ); + else if( (iOldCombo / 100) < (iCurCombo / 100) && iCurCombo > 1000 ) + SCREENMAN->PostMessageToTopScreen( SM_ComboContinuing, 0 ); // new max combo GAMESTATE->m_CurStageStats.iMaxCombo[m_PlayerNumber] = max(GAMESTATE->m_CurStageStats.iMaxCombo[m_PlayerNumber], iCurCombo); diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index dd59001bf0..7eda30e3c9 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -572,6 +572,7 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") m_announcer900Combo.Load( ANNOUNCER->GetPathTo("gameplay 900 combo") ); m_announcer1000Combo.Load( ANNOUNCER->GetPathTo("gameplay 1000 combo") ); m_announcerComboStopped.Load( ANNOUNCER->GetPathTo("gameplay combo stopped") ); + m_announcerComboContinuing.Load(ANNOUNCER->GetPathTo("gameplay combo overflow") ); m_soundAssistTick.Load( THEME->GetPathToS("ScreenGameplay assist tick") ); switch( GAMESTATE->m_PlayMode ) @@ -1663,7 +1664,13 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) m_fTimeLeftBeforeDancingComment = SECONDS_BETWEEN_COMMENTS; } break; - + case SM_ComboContinuing: + if( SECS_SINCE_LAST_COMMENT > 2 ) + { + m_announcerComboContinuing.PlayRandom(); + m_fTimeLeftBeforeDancingComment = SECONDS_BETWEEN_COMMENTS; + } + break; case SM_BattleTrickLevel1: if( SECS_SINCE_LAST_COMMENT > 3 ) { @@ -1766,8 +1773,15 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) if (PREFSMAN->m_bUseUnlockSystem) GAMESTATE->m_pUnlockingSys->UnlockFailExtraStage(); } - - SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay failed") ); + + // Feels hackish. Feel free to make cleaner. + if(GAMESTATE->IsCourseMode()) + if(GAMESTATE->GetCourseSongIndex() > (int(m_apSongsQueue.size() / 2) - 1 ) && GAMESTATE->GetCourseSongIndex() < (int(m_apSongsQueue.size() / 2) + 1)) + SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo( "gameplay oni failed halfway" ) ); + else + SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo( "gameplay oni failed" ) ); + else + SOUND->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay failed") ); break; case SM_GoToScreenAfterFail: diff --git a/stepmania/src/ScreenGameplay.h b/stepmania/src/ScreenGameplay.h index 52d1937eca..935266a55f 100644 --- a/stepmania/src/ScreenGameplay.h +++ b/stepmania/src/ScreenGameplay.h @@ -43,6 +43,7 @@ const ScreenMessage SM_800Combo = ScreenMessage(SM_User+207); const ScreenMessage SM_900Combo = ScreenMessage(SM_User+208); const ScreenMessage SM_1000Combo = ScreenMessage(SM_User+209); const ScreenMessage SM_ComboStopped = ScreenMessage(SM_User+210); +const ScreenMessage SM_ComboContinuing = ScreenMessage(SM_User+211); const ScreenMessage SM_BattleTrickLevel1 = ScreenMessage(SM_User+301); const ScreenMessage SM_BattleTrickLevel2 = ScreenMessage(SM_User+302); @@ -169,6 +170,7 @@ protected: RandomSample m_announcer900Combo; RandomSample m_announcer1000Combo; RandomSample m_announcerComboStopped; + RandomSample m_announcerComboContinuing; RandomSample m_announcerBattleTrickLevel1; RandomSample m_announcerBattleTrickLevel2; RandomSample m_announcerBattleTrickLevel3;