Added server options to ScreenNetworkOptions

This commit is contained in:
Charles Lohr
2004-08-28 22:12:56 +00:00
parent 73b99e583a
commit ffc99a4648
3 changed files with 43 additions and 4 deletions
+40
View File
@@ -8,10 +8,12 @@
#include "ScreenManager.h"
#include "ScreenTextEntry.h"
#include "ScreenPrompt.h"
#include "NetworkSyncServer.h"
enum {
PO_CONNECTION,
PO_SERVER,
NUM_NETWORK_OPTIONS_LINES
};
@@ -20,11 +22,18 @@ enum {
NO_CONNECT
};
enum {
NO_STOP_SERVER=0,
NO_START_SERVER
};
OptionRowData g_NetworkOptionsLines[NUM_NETWORK_OPTIONS_LINES] = {
OptionRowData( "Connection", true, "PRESS START" ),
OptionRowData( "Server", true, "PRESS START" )
};
const ScreenMessage SM_DoneConnecting = ScreenMessage(SM_User+1);
const ScreenMessage SM_ServerNameEnter = ScreenMessage(SM_User+2);
ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions( sClassName )
{
@@ -33,6 +42,11 @@ ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions
g_NetworkOptionsLines[PO_CONNECTION].choices.clear();
g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Disconnect");
g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Connect...");
g_NetworkOptionsLines[PO_SERVER].choices.clear();
g_NetworkOptionsLines[PO_SERVER].choices.push_back("Stop");
g_NetworkOptionsLines[PO_SERVER].choices.push_back("Start...");
Init(
INPUTMODE_SHARE_CURSOR,
@@ -65,6 +79,20 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM )
NSMAN->DisplayStartupStatus();
}
break;
case SM_ServerNameEnter:
if( !ScreenTextEntry::s_bCancelledLast )
{
if ( NSMAN->LANserver == NULL)
NSMAN->LANserver = new StepManiaLanServer;
NSMAN->LANserver->servername = ScreenTextEntry::s_sLastAnswer;
if (NSMAN->LANserver->ServerStart())
{
NSMAN->isLanServer = true;
SCREENMAN->SystemMessage( "Server Started." );
}
else
SCREENMAN->SystemMessage( "Server FAILED to start." );
}
}
ScreenOptions::HandleScreenMessage( SM );
@@ -87,6 +115,18 @@ void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type
break;
}
break;
case PO_SERVER:
switch (m_Rows[GetCurrentRow()]->GetOneSharedSelection())
{
case NO_START_SERVER:
SCREENMAN->TextEntry( SM_ServerNameEnter, "Enter a server name...", "", NULL );
break;
case NO_STOP_SERVER:
if ( NSMAN->LANserver != NULL )
NSMAN->LANserver->ServerStop();
break;
}
break;
default:
ScreenOptions::MenuStart( pn, type );
}