From 56bd5bd008b2135e15a171af9742c7770966c71d Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 2 Apr 2004 00:58:26 +0000 Subject: [PATCH] fix CODE_CANCEL_ALL_PLAYER_OPTIONS resets both players --- stepmania/src/ScreenOptionsMaster.cpp | 18 ++++++++++++++++++ stepmania/src/ScreenOptionsMaster.h | 1 + stepmania/src/ScreenPlayerOptions.cpp | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/stepmania/src/ScreenOptionsMaster.cpp b/stepmania/src/ScreenOptionsMaster.cpp index a0bf88581c..b23a5c7847 100644 --- a/stepmania/src/ScreenOptionsMaster.cpp +++ b/stepmania/src/ScreenOptionsMaster.cpp @@ -438,6 +438,24 @@ void ScreenOptionsMaster::ImportOptions() } } +/* Import only settings specific to the given player. */ +void ScreenOptionsMaster::ImportOptionsForPlayer( PlayerNumber pn ) +{ + if( !GAMESTATE->IsHumanPlayer(pn) ) + return; + + for( unsigned i = 0; i < OptionRowHandlers.size(); ++i ) + { + const OptionRowHandler &hand = OptionRowHandlers[i]; + const OptionRowData &data = m_OptionRowAlloc[i]; + Row &row = *m_Rows[i]; + + if( data.bOneChoiceForAllPlayers ) + continue; + ImportOption( data, hand, pn, i, row.m_vbSelected[pn] ); + } +} + int GetOneSelection( const vector &vbSelected ) { for( unsigned i=0; iImportOptions(); + this->ImportOptionsForPlayer( pn ); this->PositionUnderlines(); }