merge dupe code

This commit is contained in:
Glenn Maynard
2006-01-18 04:56:39 +00:00
parent 74e36431b4
commit aab0edf1c2
2 changed files with 26 additions and 45 deletions
+25 -45
View File
@@ -162,6 +162,27 @@ void OptionRow::LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown )
FOREACH_CONST( CString, m_pHand->m_vsReloadRowMessages, m )
MESSAGEMAN->Subscribe( this, *m );
ChoicesChanged();
}
void OptionRow::LoadExit()
{
m_RowType = OptionRow::RowType_Exit;
OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull();
pHand->m_Def.m_selectType = SELECT_NONE;
pHand->m_Def.m_sName = EXIT_NAME;
pHand->m_Def.m_vsChoices.push_back( "Exit" );
pHand->m_Def.m_layoutType = LAYOUT_SHOW_ONE_IN_ROW;
pHand->m_Def.m_bOneChoiceForAllPlayers = true;
m_pHand = pHand;
ChoicesChanged();
}
void OptionRow::ChoicesChanged()
{
ASSERT( !m_pHand->m_Def.m_vsChoices.empty() );
FOREACH_PlayerNumber( p )
{
vector<bool> &vbSelected = m_vbSelected[p];
@@ -184,25 +205,6 @@ void OptionRow::LoadNormal( OptionRowHandler *pHand, bool bFirstItemGoesDown )
InitText();
}
void OptionRow::LoadExit()
{
m_RowType = OptionRow::RowType_Exit;
OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull();
pHand->m_Def.m_selectType = SELECT_NONE;
pHand->m_Def.m_sName = EXIT_NAME;
pHand->m_Def.m_vsChoices.push_back( "Exit" );
pHand->m_Def.m_layoutType = LAYOUT_SHOW_ONE_IN_ROW;
pHand->m_Def.m_bOneChoiceForAllPlayers = true;
m_pHand = pHand;
FOREACH_PlayerNumber( p )
{
vector<bool> &vbSelected = m_vbSelected[p];
vbSelected.resize( m_pHand->m_Def.m_vsChoices.size(), false );
}
InitText();
}
CString OptionRow::GetRowTitle() const
{
CString sLineName = m_pHand->m_Def.m_sName;
@@ -888,10 +890,6 @@ void OptionRow::Reload()
{
case OptionRow::RowType_Normal:
{
vector<PlayerNumber> vpns;
FOREACH_HumanPlayer( p )
vpns.push_back( p );
// TODO: Nothing uses this yet and it causes skips when changing options.
//if( m_pHand->m_Def.m_bExportOnChange )
//{
@@ -902,30 +900,12 @@ void OptionRow::Reload()
if( !m_pHand->Reload() )
break;
ASSERT( !m_pHand->m_Def.m_vsChoices.empty() );
FOREACH_PlayerNumber( p )
{
vector<bool> &vbSelected = m_vbSelected[p];
vbSelected.resize( 0 );
vbSelected.resize( m_pHand->m_Def.m_vsChoices.size(), false );
// set select the first item if a SELECT_ONE row
if( vbSelected.size() && m_pHand->m_Def.m_selectType == SELECT_ONE )
vbSelected[0] = true;
}
// TRICKY: Insert a down arrow as the first choice in the row.
if( m_bFirstItemGoesDown )
{
m_pHand->m_Def.m_vsChoices.insert( m_pHand->m_Def.m_vsChoices.begin(), NEXT_ROW_NAME );
FOREACH_PlayerNumber( p )
m_vbSelected[p].insert( m_vbSelected[p].begin(), false );
}
/* Update the text to show the options we just updated. */
InitText();
ChoicesChanged();
vector<PlayerNumber> vpns;
FOREACH_HumanPlayer( p )
vpns.push_back( p );
ImportOptions( vpns );
AfterImportOptions();
+1
View File
@@ -145,6 +145,7 @@ public:
void InitText();
void AfterImportOptions();
void ChoicesChanged();
void PositionUnderlines( PlayerNumber pn );
void PositionIcons();
void UpdateText();