update
This commit is contained in:
@@ -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<OptionRowDefinition>
|
||||
vector<OptionRowDefinition> vDefs;
|
||||
vDefs.resize( m_vMenuRows.size() );
|
||||
vector<OptionRowHandler*> vHands;
|
||||
for( unsigned r=0; r<m_vMenuRows.size(); r++ )
|
||||
{
|
||||
OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull();
|
||||
|
||||
const MenuRowDef &mr = m_vMenuRows[r];
|
||||
OptionRowDefinition &def = vDefs[r];
|
||||
OptionRowDefinition &def = pHand->m_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<OptionRowHandler*> vHands( vDefs.size(), NULL );
|
||||
ScreenOptions::InitMenu( vDefs, vHands );
|
||||
ScreenOptions::InitMenu( vHands );
|
||||
}
|
||||
|
||||
void ScreenMiniMenu::AfterChangeValueOrRow( PlayerNumber pn )
|
||||
|
||||
@@ -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<OptionRowHandler*> 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<OptionRowDefinition> vDefs( &g_NetworkOptionsLines[0], &g_NetworkOptionsLines[ARRAYSIZE(g_NetworkOptionsLines)] );
|
||||
vector<OptionRowHandler*> vHands( vDefs.size(), NULL );
|
||||
|
||||
InitMenu( vDefs, vHands );
|
||||
InitMenu( vHands );
|
||||
|
||||
m_pRows[PO_SCOREBOARD]->SetOneSharedSelection(PREFSMAN->m_bEnableScoreboard);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user