From ccdf67187053bc6ce04d8984096dfd9557161ab2 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Tue, 17 Jan 2006 22:10:03 +0000 Subject: [PATCH] update --- stepmania/src/ScreenMiniMenu.cpp | 13 +++-- stepmania/src/ScreenNetworkOptions.cpp | 78 +++++++++++++------------- 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/stepmania/src/ScreenMiniMenu.cpp b/stepmania/src/ScreenMiniMenu.cpp index 2db90215c1..e84c7396fc 100644 --- a/stepmania/src/ScreenMiniMenu.cpp +++ b/stepmania/src/ScreenMiniMenu.cpp @@ -7,6 +7,7 @@ #include "ScreenDimensions.h" #include "GameState.h" #include "FontCharAliases.h" +#include "OptionRowHandler.h" AutoScreenMessage( SM_GoToOK ) AutoScreenMessage( SM_GoToCancel ) @@ -35,12 +36,13 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef ) m_vMenuRows = pDef->rows; // Convert from m_vMenuRows to vector - vector vDefs; - vDefs.resize( m_vMenuRows.size() ); + vector vHands; for( unsigned r=0; rm_Def; def.m_sName = mr.sName; FontCharAliases::ReplaceMarkers( def.m_sName ); // Allow special characters @@ -56,7 +58,7 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef ) def.m_vEnabledForPlayers.clear(); } - def.m_bOneChoiceForAllPlayers = true; + pHand->m_Def.m_bOneChoiceForAllPlayers = true; def.m_selectType = SELECT_ONE; def.m_layoutType = LAYOUT_SHOW_ONE_IN_ROW; def.m_bExportOnChange = false; @@ -68,8 +70,7 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef ) FontCharAliases::ReplaceMarkers( *c ); // Allow special characters } - vector vHands( vDefs.size(), NULL ); - ScreenOptions::InitMenu( vDefs, vHands ); + ScreenOptions::InitMenu( vHands ); } void ScreenMiniMenu::AfterChangeValueOrRow( PlayerNumber pn ) diff --git a/stepmania/src/ScreenNetworkOptions.cpp b/stepmania/src/ScreenNetworkOptions.cpp index 33e62c1967..4ea3c3daca 100644 --- a/stepmania/src/ScreenNetworkOptions.cpp +++ b/stepmania/src/ScreenNetworkOptions.cpp @@ -12,6 +12,7 @@ #include "ScreenPrompt.h" #include "NetworkSyncServer.h" #include "LocalizedString.h" +#include "OptionRowHandler.h" enum { PO_CONNECTION, @@ -32,13 +33,6 @@ enum NO_SCOREBOARD_ON }; -OptionRowDefinition g_NetworkOptionsLines[NUM_NETWORK_OPTIONS_LINES] = { - OptionRowDefinition( "Connection", true, "Press Start" ), - OptionRowDefinition( "Server", true, "Press Start" ), - OptionRowDefinition( "Scoreboard", true, "Press Start" ), - OptionRowDefinition( "Servers", true, "Press Start" ) -}; - AutoScreenMessage( SM_DoneConnecting ) AutoScreenMessage( SM_ServerNameEnter ) @@ -50,40 +44,48 @@ void ScreenNetworkOptions::Init() { ScreenOptions::Init(); - g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.clear(); - if ( NSMAN->useSMserver ) - g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.push_back("Disconnect"); - else - g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.push_back("Connect"); + vector vHands; + { + OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull(); + vHands.push_back( pHand ); + pHand->m_Def.m_sName = "Connection"; + pHand->m_Def.m_bOneChoiceForAllPlayers = true; + if ( NSMAN->useSMserver ) + pHand->m_Def.m_vsChoices.push_back("Disconnect"); + else + pHand->m_Def.m_vsChoices.push_back("Connect"); + } + { + OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull(); + vHands.push_back( pHand ); + pHand->m_Def.m_bAllowThemeItems = false; + pHand->m_Def.m_sName = "Server"; + pHand->m_Def.m_vsChoices.push_back("Stop"); + pHand->m_Def.m_vsChoices.push_back("Start"); + } + { + OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull(); + vHands.push_back( pHand ); + pHand->m_Def.m_sName = "Scoreboard"; + pHand->m_Def.m_vsChoices.clear(); + pHand->m_Def.m_vsChoices.push_back("Off"); + pHand->m_Def.m_vsChoices.push_back("On"); + } + { + OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull(); + vHands.push_back( pHand ); + pHand->m_Def.m_sName = "Servers"; - g_NetworkOptionsLines[PO_SERVER].m_vsChoices.clear(); - g_NetworkOptionsLines[PO_SERVER].m_vsChoices.push_back("Stop"); - g_NetworkOptionsLines[PO_SERVER].m_vsChoices.push_back("Start"); + // Get info on all received servers from NSMAN. + NSMAN->GetListOfLANServers( AllServers ); + if( AllServers.size() == 0 ) + pHand->m_Def.m_vsChoices.push_back( "-none-" ); - g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.clear(); - g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.push_back("Off"); - g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.push_back("On"); - - //Get info on all received servers from NSMAN. - g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.clear(); - g_NetworkOptionsLines[PO_SERVERS].m_bAllowThemeItems = false; + for( unsigned int j = 0; j < AllServers.size(); j++ ) + pHand->m_Def.m_vsChoices.push_back( AllServers[j].Name ); + } - NSMAN->GetListOfLANServers( AllServers ); - if ( AllServers.size() == 0 ) - g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.push_back( "-none-" ); - - for ( unsigned int j = 0; j < AllServers.size(); j++ ) - g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.push_back( AllServers[j].Name ); - - //Enable all lines for all players - for ( unsigned int i = 0; i < NUM_NETWORK_OPTIONS_LINES; i++ ) - FOREACH_PlayerNumber( pn ) - g_NetworkOptionsLines[i].m_vEnabledForPlayers.insert( pn ); - - vector vDefs( &g_NetworkOptionsLines[0], &g_NetworkOptionsLines[ARRAYSIZE(g_NetworkOptionsLines)] ); - vector vHands( vDefs.size(), NULL ); - - InitMenu( vDefs, vHands ); + InitMenu( vHands ); m_pRows[PO_SCOREBOARD]->SetOneSharedSelection(PREFSMAN->m_bEnableScoreboard); }