diff --git a/Themes/_fallback/Languages/en.ini b/Themes/_fallback/Languages/en.ini index 091d55a73c..f06cafabd8 100644 --- a/Themes/_fallback/Languages/en.ini +++ b/Themes/_fallback/Languages/en.ini @@ -345,6 +345,7 @@ AllowExtraStage=When enabled (and Event Mode isn't on), allows the player to ear AllowSongDeletion=Allow players to permanently delete songs from the system by pressing Ctrl+Backspace when browsing the music wheel. AllowW1=Enable or disable fantastic judgement. NEVER - never show Fantastic, COURSES ONLY - only during nonstop/oni modes, ALWAYS - all modes of play. AllowMultipleHighScoreWithSameName=If turned off, only the highest score with a given name will be saved. If turned on, it will allow mutliple high scores with a given name to be saved. +AllowMultipleToasties=Allow multiple toasties to be shown in one song. Announcer=Choose from this list of installed announcer packs. Appearance=Appearance Appearance Options=Change the theme, announcer, and other style options. @@ -943,6 +944,7 @@ AllowExtraStage=Allow Extra Stage AllowSongDeletion=Allow Song Deletion AllowW1=Fantastic Timing AllowMultipleHighScoreWithSameName=Competitive Mode +AllowMultipleToasties=Extra Toast Alter=Alter Announcer=Announcer Appearance=Appearance diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index f77f37ff9e..126610b484 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -3100,7 +3100,7 @@ Fallback="ScreenOptionsServiceChild" NextScreen="ScreenOptionsService" PrevScreen="ScreenOptionsService" # stuff tied to arcade features -LineNames="1,2,3,4,5,6,7,8,9,HHLP,10,11,12,13,14" +LineNames="1,2,3,4,5,6,7,8,AMT,9,HHLP,10,11,12,13,14" Line1="conf,GetRankingName" Line2="conf,CoinMode" Line3="conf,SongsPerPlay" @@ -3109,6 +3109,7 @@ Line5="conf,Premium" Line6="conf,EventMode" Line7="conf,AllowMultipleHighScoreWithSameName" Line8="conf,ComboContinuesBetweenSongs" +LineAMT="conf,AllowMultipleToasties" Line9="conf,Disqualification" LineHHLP="conf,HarshHotLifePenalty" Line10="conf,FailOffForFirstStageEasy" diff --git a/src/PrefsManager.cpp b/src/PrefsManager.cpp index 2bdb98f58a..8d14c32e9d 100644 --- a/src/PrefsManager.cpp +++ b/src/PrefsManager.cpp @@ -223,6 +223,7 @@ PrefsManager::PrefsManager() : m_iSongsPerPlay ( "SongsPerPlay", 3, ValidateSongsPerPlay ), m_bDelayedCreditsReconcile ( "DelayedCreditsReconcile", false ), m_bComboContinuesBetweenSongs ( "ComboContinuesBetweenSongs", false ), + m_AllowMultipleToasties("AllowMultipleToasties", true), m_MinTNSToHideNotes("MinTNSToHideNotes", TNS_W3), m_ShowSongOptions ( "ShowSongOptions", Maybe_NO ), m_bDancePointsForOni ( "DancePointsForOni", true ), diff --git a/src/PrefsManager.h b/src/PrefsManager.h index 4aded80335..f710a1c2dd 100644 --- a/src/PrefsManager.h +++ b/src/PrefsManager.h @@ -215,6 +215,7 @@ public: Preference m_iSongsPerPlay; Preference m_bDelayedCreditsReconcile; // zuh? Preference m_bComboContinuesBetweenSongs; + Preference m_AllowMultipleToasties; Preference m_MinTNSToHideNotes; Preference m_ShowSongOptions; Preference m_bDancePointsForOni; diff --git a/src/ScoreKeeperNormal.cpp b/src/ScoreKeeperNormal.cpp index 7713e9e7f0..98131d1e1b 100644 --- a/src/ScoreKeeperNormal.cpp +++ b/src/ScoreKeeperNormal.cpp @@ -582,8 +582,9 @@ void ScoreKeeperNormal::HandleTapRowScore( const NoteData &nd, int iRow ) msg.SetParam("ToastyCombo", m_cur_toasty_combo); msg.SetParam("Level", m_cur_toasty_level); MESSAGEMAN->Broadcast(msg); - // TODO: keep a pointer to the Profile. Don't index with m_PlayerNumber SCREENMAN->PostMessageToTopScreen(SM_PlayToasty, 0); + // TODO: keep a pointer to the Profile. Don't index with m_PlayerNumber + // TODO: Make the profile count the level and combo of the toasty. -Kyz PROFILEMAN->IncrementToastiesCount(m_pPlayerState->m_PlayerNumber); m_next_toasty_at= CalcNextToastyAt(m_cur_toasty_level); } diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index 1035ec5f91..f5a0065131 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -2874,10 +2874,14 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) } else if( SM == SM_PlayToasty ) { - if( g_bEasterEggs ) + if(g_bEasterEggs) { - m_Toasty.Reset(); - m_Toasty.StartTransitioning(); + if(PREFSMAN->m_AllowMultipleToasties || + m_Toasty.IsWaiting()) + { + m_Toasty.Reset(); + m_Toasty.StartTransitioning(); + } } } else if( ScreenMessageHelpers::ScreenMessageToString(SM).find("0Combo") != string::npos ) diff --git a/src/ScreenOptionsMasterPrefs.cpp b/src/ScreenOptionsMasterPrefs.cpp index cb87d495dd..1d2f1775ad 100644 --- a/src/ScreenOptionsMasterPrefs.cpp +++ b/src/ScreenOptionsMasterPrefs.cpp @@ -785,6 +785,7 @@ static void InitializeConfOptions() ADD( ConfOption( "AllowExtraStage", MovePref, "Off","On" ) ); ADD( ConfOption( "AllowMultipleHighScoreWithSameName", MovePref, "Off", "On" ) ); ADD( ConfOption( "ComboContinuesBetweenSongs", MovePref, "Off", "On") ); + ADD(ConfOption("AllowMultipleToasties", MovePref, "Off", "On")); ADD( ConfOption( "Disqualification", MovePref, "Off","On" ) ); ADD( ConfOption( "HarshHotLifePenalty", MovePref, "Off", "On") ); ADD( ConfOption( "FailOffForFirstStageEasy", MovePref, "Off","On" ) ); diff --git a/src/Transition.h b/src/Transition.h index 460eae535f..b39c2dba9d 100644 --- a/src/Transition.h +++ b/src/Transition.h @@ -22,6 +22,7 @@ public: virtual float GetTweenTimeLeft() const; void Reset(); // explicitly allow transitioning again + bool IsWaiting() const { return m_State == waiting; }; bool IsTransitioning() const { return m_State == transitioning; }; bool IsFinished() const { return m_State == finished; };