update
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
#include "ScreenDimensions.h"
|
#include "ScreenDimensions.h"
|
||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
#include "FontCharAliases.h"
|
#include "FontCharAliases.h"
|
||||||
|
#include "OptionRowHandler.h"
|
||||||
|
|
||||||
AutoScreenMessage( SM_GoToOK )
|
AutoScreenMessage( SM_GoToOK )
|
||||||
AutoScreenMessage( SM_GoToCancel )
|
AutoScreenMessage( SM_GoToCancel )
|
||||||
@@ -35,12 +36,13 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef )
|
|||||||
m_vMenuRows = pDef->rows;
|
m_vMenuRows = pDef->rows;
|
||||||
|
|
||||||
// Convert from m_vMenuRows to vector<OptionRowDefinition>
|
// Convert from m_vMenuRows to vector<OptionRowDefinition>
|
||||||
vector<OptionRowDefinition> vDefs;
|
vector<OptionRowHandler*> vHands;
|
||||||
vDefs.resize( m_vMenuRows.size() );
|
|
||||||
for( unsigned r=0; r<m_vMenuRows.size(); r++ )
|
for( unsigned r=0; r<m_vMenuRows.size(); r++ )
|
||||||
{
|
{
|
||||||
|
OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull();
|
||||||
|
|
||||||
const MenuRowDef &mr = m_vMenuRows[r];
|
const MenuRowDef &mr = m_vMenuRows[r];
|
||||||
OptionRowDefinition &def = vDefs[r];
|
OptionRowDefinition &def = pHand->m_Def;
|
||||||
|
|
||||||
def.m_sName = mr.sName;
|
def.m_sName = mr.sName;
|
||||||
FontCharAliases::ReplaceMarkers( def.m_sName ); // Allow special characters
|
FontCharAliases::ReplaceMarkers( def.m_sName ); // Allow special characters
|
||||||
@@ -56,7 +58,7 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef )
|
|||||||
def.m_vEnabledForPlayers.clear();
|
def.m_vEnabledForPlayers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
def.m_bOneChoiceForAllPlayers = true;
|
pHand->m_Def.m_bOneChoiceForAllPlayers = true;
|
||||||
def.m_selectType = SELECT_ONE;
|
def.m_selectType = SELECT_ONE;
|
||||||
def.m_layoutType = LAYOUT_SHOW_ONE_IN_ROW;
|
def.m_layoutType = LAYOUT_SHOW_ONE_IN_ROW;
|
||||||
def.m_bExportOnChange = false;
|
def.m_bExportOnChange = false;
|
||||||
@@ -68,8 +70,7 @@ void ScreenMiniMenu::LoadMenu( const MenuDef* pDef )
|
|||||||
FontCharAliases::ReplaceMarkers( *c ); // Allow special characters
|
FontCharAliases::ReplaceMarkers( *c ); // Allow special characters
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<OptionRowHandler*> vHands( vDefs.size(), NULL );
|
ScreenOptions::InitMenu( vHands );
|
||||||
ScreenOptions::InitMenu( vDefs, vHands );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScreenMiniMenu::AfterChangeValueOrRow( PlayerNumber pn )
|
void ScreenMiniMenu::AfterChangeValueOrRow( PlayerNumber pn )
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "ScreenPrompt.h"
|
#include "ScreenPrompt.h"
|
||||||
#include "NetworkSyncServer.h"
|
#include "NetworkSyncServer.h"
|
||||||
#include "LocalizedString.h"
|
#include "LocalizedString.h"
|
||||||
|
#include "OptionRowHandler.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PO_CONNECTION,
|
PO_CONNECTION,
|
||||||
@@ -32,13 +33,6 @@ enum
|
|||||||
NO_SCOREBOARD_ON
|
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_DoneConnecting )
|
||||||
AutoScreenMessage( SM_ServerNameEnter )
|
AutoScreenMessage( SM_ServerNameEnter )
|
||||||
|
|
||||||
@@ -50,40 +44,48 @@ void ScreenNetworkOptions::Init()
|
|||||||
{
|
{
|
||||||
ScreenOptions::Init();
|
ScreenOptions::Init();
|
||||||
|
|
||||||
g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.clear();
|
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 )
|
if ( NSMAN->useSMserver )
|
||||||
g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.push_back("Disconnect");
|
pHand->m_Def.m_vsChoices.push_back("Disconnect");
|
||||||
else
|
else
|
||||||
g_NetworkOptionsLines[PO_CONNECTION].m_vsChoices.push_back("Connect");
|
pHand->m_Def.m_vsChoices.push_back("Connect");
|
||||||
|
}
|
||||||
g_NetworkOptionsLines[PO_SERVER].m_vsChoices.clear();
|
{
|
||||||
g_NetworkOptionsLines[PO_SERVER].m_vsChoices.push_back("Stop");
|
OptionRowHandler *pHand = OptionRowHandlerUtil::MakeNull();
|
||||||
g_NetworkOptionsLines[PO_SERVER].m_vsChoices.push_back("Start");
|
vHands.push_back( pHand );
|
||||||
|
pHand->m_Def.m_bAllowThemeItems = false;
|
||||||
g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.clear();
|
pHand->m_Def.m_sName = "Server";
|
||||||
g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.push_back("Off");
|
pHand->m_Def.m_vsChoices.push_back("Stop");
|
||||||
g_NetworkOptionsLines[PO_SCOREBOARD].m_vsChoices.push_back("On");
|
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";
|
||||||
|
|
||||||
// Get info on all received servers from NSMAN.
|
// Get info on all received servers from NSMAN.
|
||||||
g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.clear();
|
|
||||||
g_NetworkOptionsLines[PO_SERVERS].m_bAllowThemeItems = false;
|
|
||||||
|
|
||||||
NSMAN->GetListOfLANServers( AllServers );
|
NSMAN->GetListOfLANServers( AllServers );
|
||||||
if( AllServers.size() == 0 )
|
if( AllServers.size() == 0 )
|
||||||
g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.push_back( "-none-" );
|
pHand->m_Def.m_vsChoices.push_back( "-none-" );
|
||||||
|
|
||||||
for( unsigned int j = 0; j < AllServers.size(); j++ )
|
for( unsigned int j = 0; j < AllServers.size(); j++ )
|
||||||
g_NetworkOptionsLines[PO_SERVERS].m_vsChoices.push_back( AllServers[j].Name );
|
pHand->m_Def.m_vsChoices.push_back( AllServers[j].Name );
|
||||||
|
}
|
||||||
|
|
||||||
//Enable all lines for all players
|
InitMenu( vHands );
|
||||||
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 );
|
|
||||||
|
|
||||||
m_pRows[PO_SCOREBOARD]->SetOneSharedSelection(PREFSMAN->m_bEnableScoreboard);
|
m_pRows[PO_SCOREBOARD]->SetOneSharedSelection(PREFSMAN->m_bEnableScoreboard);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user