diff --git a/stepmania/src/OptionRow.h b/stepmania/src/OptionRow.h index c3583a807c..82efba34e1 100644 --- a/stepmania/src/OptionRow.h +++ b/stepmania/src/OptionRow.h @@ -40,6 +40,7 @@ struct OptionRowDefinition LayoutType layoutType; vector choices; set m_vEnabledForPlayers; // only players in this set may change focus to this row + bool m_bExportOnChange; void UpdateEnabledForPlayers( set vEnabledForPlayers, @@ -63,6 +64,7 @@ struct OptionRowDefinition m_vEnabledForPlayers.clear(); FOREACH_PlayerNumber( pn ) m_vEnabledForPlayers.insert( pn ); + m_bExportOnChange = false; } OptionRowDefinition( const char *n, bool b, const char *c0=NULL, const char *c1=NULL, const char *c2=NULL, const char *c3=NULL, const char *c4=NULL, const char *c5=NULL, const char *c6=NULL, const char *c7=NULL, const char *c8=NULL, const char *c9=NULL, const char *c10=NULL, const char *c11=NULL, const char *c12=NULL, const char *c13=NULL, const char *c14=NULL, const char *c15=NULL, const char *c16=NULL, const char *c17=NULL, const char *c18=NULL, const char *c19=NULL ) : diff --git a/stepmania/src/OptionRowHandler.h b/stepmania/src/OptionRowHandler.h index 309a5dcb04..7f644cb06d 100644 --- a/stepmania/src/OptionRowHandler.h +++ b/stepmania/src/OptionRowHandler.h @@ -13,7 +13,6 @@ class OptionRowHandler { public: CString m_sName; - bool m_bExportOnChange; vector m_vsRefreshRowNames; // refresh these rows when the value of this row changes OptionRowHandler::OptionRowHandler() { Init(); } @@ -21,7 +20,6 @@ public: { m_sName = ""; m_vsRefreshRowNames.clear(); - m_bExportOnChange = false; } virtual void ImportOption( const OptionRowDefinition &row, PlayerNumber pn, vector &vbSelectedOut ) const = 0; /* Returns an OPT mask. */ diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index 2ff63d40f4..8f845acad5 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -1023,6 +1023,9 @@ void ScreenOptions::ChangeValueInRow( PlayerNumber pn, int iDelta, bool Repeat ) if( m_OptionsNavigation != NAV_THREE_KEY_MENU ) m_SoundChangeCol.Play(); + + if( row.GetRowDef().m_bExportOnChange ) + ExportOptions( iCurRow ); } diff --git a/stepmania/src/ScreenOptionsMaster.cpp b/stepmania/src/ScreenOptionsMaster.cpp index 95b266953f..fbdc68321e 100644 --- a/stepmania/src/ScreenOptionsMaster.cpp +++ b/stepmania/src/ScreenOptionsMaster.cpp @@ -289,9 +289,6 @@ void ScreenOptionsMaster::ChangeValueInRow( PlayerNumber pn, int iDelta, bool Re const OptionRowHandler *pHand = OptionRowHandlers[iRow]; - if( pHand->m_bExportOnChange || !pHand->m_vsRefreshRowNames.empty() ) - ExportOptions( iRow ); - FOREACH_CONST( CString, pHand->m_vsRefreshRowNames, sRowToRefreshName ) { for( unsigned r=0; r