diff --git a/stepmania/src/ModeChoice.cpp b/stepmania/src/ModeChoice.cpp index 45be9b1de5..cd8b87bddf 100644 --- a/stepmania/src/ModeChoice.cpp +++ b/stepmania/src/ModeChoice.cpp @@ -19,6 +19,7 @@ void ModeChoice::Init() m_style = STYLE_INVALID; m_pm = PLAY_MODE_INVALID; m_dc = DIFFICULTY_INVALID; + m_sModifiers = ""; m_sAnnouncer = ""; m_sName = ""; m_sScreen = ""; @@ -110,21 +111,20 @@ void ModeChoice::Load( int iIndex, CString sChoice ) } if( sName == "announcer" ) - { m_sAnnouncer = sValue; - } - /* Hmm. I feel like I'm overloading ModeChoice here; this makes it - * a generic menu choice. */ if( sName == "name" ) - { m_sName = sValue; - } - if( sName == "screen" ) + if( sName == "mod" ) { - m_sScreen = sValue; + if( m_sModifiers != "" ) + m_sModifiers += ","; + m_sModifiers += sValue; } + + if( sName == "screen" ) + m_sScreen = sValue; } } @@ -204,6 +204,9 @@ void ModeChoice::Apply( PlayerNumber pn ) GAMESTATE->m_PreferredDifficulty[pn] = m_dc; if( m_sAnnouncer != "" ) ANNOUNCER->SwitchAnnouncer( m_sAnnouncer ); + if( m_sModifiers != "" ) + for( int pn=0; pnApplyModifiers( (PlayerNumber)pn, m_sModifiers ); // HACK: Set life type to BATTERY just once here so it happens once and // we don't override the user's changes if they back out. diff --git a/stepmania/src/ModeChoice.h b/stepmania/src/ModeChoice.h index c61a293d0b..b205ba6258 100644 --- a/stepmania/src/ModeChoice.h +++ b/stepmania/src/ModeChoice.h @@ -34,6 +34,7 @@ struct ModeChoice // used in SelectMode PlayMode m_pm; Difficulty m_dc; CString m_sAnnouncer; + CString m_sModifiers; CString m_sScreen; CString m_sName; };