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
+1
View File
@@ -42,6 +42,7 @@ const ScreenMessage SM_ChangeSong = ScreenMessage(SM_User+5);
NetworkSyncManager::NetworkSyncManager( LoadingWindow *ld )
{
LANserver = NULL; //So we know if it has been created yet
if( GetCommandlineArgument( "runserver" )) {
ld->SetText("Initilizing server...");
LANserver = new StepManiaLanServer;
+2 -4
View File
@@ -84,6 +84,8 @@ public:
int m_iSelectMode;
void SelectUserSong();
bool isLanServer; //Must be public for ScreenNetworkOptions
StepManiaLanServer *LANserver;
private:
#if !defined(WITHOUT_NETWORKING)
@@ -112,10 +114,6 @@ private:
bool Listen(unsigned short port);
PacketFunctions m_packet;
bool isLanServer;
StepManiaLanServer *LANserver;
#endif
};
+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 )
{
@@ -34,6 +43,11 @@ ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions
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,
g_NetworkOptionsLines,
@@ -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 );
}