Placed command lines in. And put in support to make a in-game connect
or disconnect for connect to SM Server. (If it ever comes up)
This commit is contained in:
@@ -32,7 +32,7 @@
|
|||||||
#include "GameState.h"
|
#include "GameState.h"
|
||||||
|
|
||||||
|
|
||||||
#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenSelectMusic","NextScreen"+Capitalize(PlayModeToString(play_mode)))
|
#define NEXT_SCREEN THEME->GetMetric ("ScreenSelectMusic","NextScreen")
|
||||||
//Used for advancing to gameplay screen
|
//Used for advancing to gameplay screen
|
||||||
|
|
||||||
NetworkSyncManager::NetworkSyncManager()
|
NetworkSyncManager::NetworkSyncManager()
|
||||||
@@ -54,11 +54,20 @@ NetworkSyncManager::~NetworkSyncManager ()
|
|||||||
delete NetPlayerClient;
|
delete NetPlayerClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkSyncManager::StartUp()
|
void NetworkSyncManager::CloseConnection()
|
||||||
{
|
{
|
||||||
CString ServerIP;
|
if (!useSMserver)
|
||||||
|
return ;
|
||||||
|
m_ServerVersion = 0;
|
||||||
|
useSMserver = false;
|
||||||
|
m_startupStatus = 0;
|
||||||
|
NetPlayerClient->close();
|
||||||
|
}
|
||||||
|
|
||||||
if( GetCommandlineArgument( "netip", &ServerIP ) )
|
void NetworkSyncManager::PostStartUp(CString ServerIP)
|
||||||
|
{
|
||||||
|
CloseConnection();
|
||||||
|
if( ServerIP!="LISTEN" )
|
||||||
{
|
{
|
||||||
if( !Connect(ServerIP.c_str(),8765) )
|
if( !Connect(ServerIP.c_str(),8765) )
|
||||||
{
|
{
|
||||||
@@ -67,9 +76,7 @@ void NetworkSyncManager::StartUp()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else if( GetCommandlineArgument( "listen" ) )
|
|
||||||
{
|
|
||||||
if( !Listen(8765) )
|
if( !Listen(8765) )
|
||||||
{
|
{
|
||||||
m_startupStatus = 2;
|
m_startupStatus = 2;
|
||||||
@@ -78,8 +85,6 @@ void NetworkSyncManager::StartUp()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return;
|
|
||||||
|
|
||||||
useSMserver = true;
|
useSMserver = true;
|
||||||
|
|
||||||
@@ -118,6 +123,21 @@ void NetworkSyncManager::StartUp()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void NetworkSyncManager::StartUp()
|
||||||
|
{
|
||||||
|
CString ServerIP;
|
||||||
|
|
||||||
|
if( GetCommandlineArgument( "netip", &ServerIP ) )
|
||||||
|
{
|
||||||
|
PostStartUp(ServerIP);
|
||||||
|
}
|
||||||
|
else if( GetCommandlineArgument( "listen" ) )
|
||||||
|
{
|
||||||
|
PostStartUp("LISTEN");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool NetworkSyncManager::Connect(const CString& addy, unsigned short port)
|
bool NetworkSyncManager::Connect(const CString& addy, unsigned short port)
|
||||||
{
|
{
|
||||||
LOG->Info("Beginning to connect");
|
LOG->Info("Beginning to connect");
|
||||||
@@ -295,6 +315,65 @@ void NetworkSyncManager::SendSongs()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ArgSetMode (CString cmdLineMode)
|
||||||
|
{
|
||||||
|
CString PlayerModeStr;
|
||||||
|
int loc=0;
|
||||||
|
int loc2=1;
|
||||||
|
|
||||||
|
while (loc2>=0) {
|
||||||
|
loc2=cmdLineMode.Find(",",loc);
|
||||||
|
if (loc2<0)
|
||||||
|
PlayerModeStr = cmdLineMode.substr(loc,loc2-loc);
|
||||||
|
else
|
||||||
|
PlayerModeStr = cmdLineMode.substr(loc,loc2-loc);
|
||||||
|
|
||||||
|
if (PlayerModeStr.CompareNoCase("1")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
|
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("2")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||||
|
GAMESTATE->m_MasterPlayerNumber = PLAYER_2;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("VERSUS")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_VERSUS;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("VERSUS")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_VERSUS;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("DOUBLE")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_DOUBLE;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("COUPLE")==0) {
|
||||||
|
GAMESTATE->m_CurStyle = STYLE_DANCE_COUPLE;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_2] = true;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("FAILOFF")==0) {
|
||||||
|
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FAIL_OFF;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("FAILENDOFSONG")==0) {
|
||||||
|
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FAIL_END_OF_SONG;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("FAILARCADE")==0) {
|
||||||
|
GAMESTATE->m_SongOptions.m_FailType = SongOptions::FAIL_ARCADE;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("ARCADE")==0) {
|
||||||
|
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("NONSTOP")==0) {
|
||||||
|
GAMESTATE->m_PlayMode = PLAY_MODE_NONSTOP;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("ONI")==0) {
|
||||||
|
GAMESTATE->m_PlayMode = PLAY_MODE_ONI;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("BATTLE")==0) {
|
||||||
|
GAMESTATE->m_PlayMode = PLAY_MODE_BATTLE;
|
||||||
|
} else if (PlayerModeStr.CompareNoCase("RAVE")==0) {
|
||||||
|
GAMESTATE->m_PlayMode = PLAY_MODE_RAVE;
|
||||||
|
}
|
||||||
|
loc = loc2+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//I am adding this for Network support
|
//I am adding this for Network support
|
||||||
//Feel free to change the way --course is used
|
//Feel free to change the way --course is used
|
||||||
//I am not building any part of SMOnline specific to this yet.
|
//I am not building any part of SMOnline specific to this yet.
|
||||||
@@ -306,13 +385,28 @@ void ArgStartCourse(CString CourseName)
|
|||||||
if (desCourse == 0)
|
if (desCourse == 0)
|
||||||
{
|
{
|
||||||
LOG->Info ("Desired Course not found!");
|
LOG->Info ("Desired Course not found!");
|
||||||
|
SCREENMAN->SystemMessage("Failed to find course");
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
--PLAYERS=
|
||||||
|
1 -> STYLE_DANCE_SINGLE, (Default)
|
||||||
|
2 -> STYLE_DANCE_SINGLE,
|
||||||
|
VERSUS -> STYLE_DANCE_VERSUS,
|
||||||
|
DOUBLE -> STYLE_DANCE_DOUBLE,
|
||||||
|
COUPLE -> STYLE_DANCE_COUPLE,
|
||||||
|
*/
|
||||||
|
if ((!GAMESTATE->m_bSideIsJoined[PLAYER_1]) && (!GAMESTATE->m_bSideIsJoined[PLAYER_2]))
|
||||||
|
{
|
||||||
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
|
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
|
||||||
//Need to add more functionality eventually
|
|
||||||
GAMESTATE->m_pCurCourse = desCourse;
|
|
||||||
GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE;
|
GAMESTATE->m_CurStyle = STYLE_DANCE_SINGLE;
|
||||||
|
GAMESTATE->m_bSideIsJoined[PLAYER_1] = true; //Default
|
||||||
|
//Also take Default Fail Type
|
||||||
|
}
|
||||||
|
|
||||||
|
GAMESTATE->m_pCurCourse = desCourse;
|
||||||
|
|
||||||
GAMESTATE->m_PlayMode = desCourse->GetPlayMode();
|
GAMESTATE->m_PlayMode = desCourse->GetPlayMode();
|
||||||
if (desCourse->IsOni())
|
if (desCourse->IsOni())
|
||||||
@@ -325,7 +419,7 @@ void ArgStartCourse(CString CourseName)
|
|||||||
GAMESTATE->PlayersFinalized();
|
GAMESTATE->PlayersFinalized();
|
||||||
|
|
||||||
//Go to Gameplay Screen
|
//Go to Gameplay Screen
|
||||||
SCREENMAN->SetNewScreen( THEME->GetMetric ("ScreenSelectMusic","NextScreen") );
|
SCREENMAN->SetNewScreen(NEXT_SCREEN);
|
||||||
|
|
||||||
//Not sure if this is correct, it may make more sense
|
//Not sure if this is correct, it may make more sense
|
||||||
//to have a metric to allow/disallow user options at this point.
|
//to have a metric to allow/disallow user options at this point.
|
||||||
@@ -352,7 +446,6 @@ void NetworkSyncManager::DisplayStartupStatus()
|
|||||||
sMessage = "Connection failed.";
|
sMessage = "Connection failed.";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// SCREENMAN->RefreshCreditsMessages();
|
|
||||||
SCREENMAN->SystemMessage(sMessage);
|
SCREENMAN->SystemMessage(sMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
void NSSendSongs();
|
void NSSendSongs();
|
||||||
void ArgStartCourse(CString CourseName);
|
void ArgStartCourse(CString CourseName);
|
||||||
|
void ArgSetMode (CString cmdLineMode);
|
||||||
|
|
||||||
class EzSockets;
|
class EzSockets;
|
||||||
|
|
||||||
@@ -33,11 +34,15 @@ public:
|
|||||||
bool Connect(const CString& addy, unsigned short port); // Connect to SM Server
|
bool Connect(const CString& addy, unsigned short port); // Connect to SM Server
|
||||||
void SendSongs(); //Send song list to server (And exit)
|
void SendSongs(); //Send song list to server (And exit)
|
||||||
|
|
||||||
|
void PostStartUp(CString ServerIP);
|
||||||
|
void CloseConnection();
|
||||||
|
|
||||||
void DisplayStartupStatus(); //Used to note user if connect attempt was sucessful or not.
|
void DisplayStartupStatus(); //Used to note user if connect attempt was sucessful or not.
|
||||||
|
|
||||||
int m_playerLife[NUM_PLAYERS]; //Life
|
int m_playerLife[NUM_PLAYERS]; //Life
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void StartUp();
|
void StartUp();
|
||||||
|
|
||||||
int m_playerID; //these are currently unused, but need to stay
|
int m_playerID; //these are currently unused, but need to stay
|
||||||
|
|||||||
@@ -919,11 +919,17 @@ static void ProcessArgsSecond()
|
|||||||
//"ArgStartCourse", is in the NSManager
|
//"ArgStartCourse", is in the NSManager
|
||||||
//bacause Networked StepMania will
|
//bacause Networked StepMania will
|
||||||
//use it a lot.
|
//use it a lot.
|
||||||
if( GetCommandlineArgument( "course", & Argument ) )
|
if( GetCommandlineArgument( "mode",& Argument ) )
|
||||||
ArgStartCourse(Argument);
|
ArgSetMode(Argument);
|
||||||
|
|
||||||
if( GetCommandlineArgument( "netip" ) )
|
if( GetCommandlineArgument( "netip" ) )
|
||||||
NSMAN->DisplayStartupStatus(); //If we're using networking show what happend
|
NSMAN->DisplayStartupStatus(); //If we're using networking show what happend
|
||||||
|
|
||||||
|
if( GetCommandlineArgument( "course", & Argument ) )
|
||||||
|
ArgStartCourse(Argument);
|
||||||
|
|
||||||
|
if( GetCommandlineArgument( "jumpscreen", & Argument ) )
|
||||||
|
SCREENMAN->SetNewScreen(Argument);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
|
|||||||
Reference in New Issue
Block a user