Merge remote-tracking branch 'origin/GameServer' into GameClient
Conflicts: Code/Game/GameClient/GameClientState/NetLoadState.cpp
This commit is contained in:
commit
e37dd606ba
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ShowAllFiles>false</ShowAllFiles>
|
<ShowAllFiles>true</ShowAllFiles>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LocalDebuggerWorkingDirectory>$(OutDir)</LocalDebuggerWorkingDirectory>
|
<LocalDebuggerWorkingDirectory>$(OutDir)</LocalDebuggerWorkingDirectory>
|
||||||
|
|
|
@ -38,7 +38,12 @@ namespace DanBias
|
||||||
|
|
||||||
void SetGameDesc(const LobbyLevelData& desc);
|
void SetGameDesc(const LobbyLevelData& desc);
|
||||||
void GetGameDesc(LobbyLevelData& desc);
|
void GetGameDesc(LobbyLevelData& desc);
|
||||||
bool StartGameSession();
|
/**
|
||||||
|
* If param is true, the server will start a game session regardless of clients connected.
|
||||||
|
*/
|
||||||
|
bool StartGameSession( bool forceStart );
|
||||||
|
|
||||||
|
int GetGameSessionClientCount();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ParseProtocol(Oyster::Network::CustomNetProtocol& p, Oyster::Network::NetworkClient* c);
|
void ParseProtocol(Oyster::Network::CustomNetProtocol& p, Oyster::Network::NetworkClient* c);
|
||||||
|
|
|
@ -66,8 +66,13 @@ namespace DanBias
|
||||||
static const wchar_t* GameGetGameMode();
|
static const wchar_t* GameGetGameMode();
|
||||||
static const wchar_t* GameGetGameName();
|
static const wchar_t* GameGetGameName();
|
||||||
static const wchar_t* GameGetMapName();
|
static const wchar_t* GameGetMapName();
|
||||||
|
static int GetConnectedClientCount();
|
||||||
|
|
||||||
static bool GameStart();
|
/* Starts a game
|
||||||
|
* @param forceStart If forceStart is true, server will start with or without clients.
|
||||||
|
* If there are clients not "ready" the will be stareted anyways.
|
||||||
|
*/
|
||||||
|
static bool GameStart(bool forceStart);
|
||||||
|
|
||||||
|
|
||||||
};//End class DanBiasServer
|
};//End class DanBiasServer
|
||||||
|
|
|
@ -44,7 +44,7 @@ namespace DanBias
|
||||||
virtual~GameSession();
|
virtual~GameSession();
|
||||||
|
|
||||||
/** Initiates and creates a game session. */
|
/** Initiates and creates a game session. */
|
||||||
bool Create(GameDescription& desc);
|
bool Create(GameDescription& desc, bool forceStart);
|
||||||
|
|
||||||
/** Runs the game session (ie starts the game loop). */
|
/** Runs the game session (ie starts the game loop). */
|
||||||
void Run();
|
void Run();
|
||||||
|
@ -58,7 +58,7 @@ namespace DanBias
|
||||||
|
|
||||||
inline bool IsCreated() const { return this->isCreated; }
|
inline bool IsCreated() const { return this->isCreated; }
|
||||||
inline bool IsRunning() const { return this->isRunning; }
|
inline bool IsRunning() const { return this->isRunning; }
|
||||||
operator bool() { return (this->isCreated && this->isRunning); }
|
operator bool() { return (this->isCreated && this->isRunning); }
|
||||||
|
|
||||||
//Private member functions
|
//Private member functions
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -65,40 +65,47 @@ void GameLobby::GetGameDesc(LobbyLevelData& desc)
|
||||||
desc.gameMode = this->description.gameMode;
|
desc.gameMode = this->description.gameMode;
|
||||||
|
|
||||||
}
|
}
|
||||||
bool GameLobby::StartGameSession( )
|
bool GameLobby::StartGameSession( bool forceStart )
|
||||||
{
|
{
|
||||||
//Check if all clients is ready
|
//Check if all clients is ready, in not force start
|
||||||
if(this->GetClientCount() && this->GetClientCount() == this->readyList.Size())
|
if(!forceStart)
|
||||||
{
|
{
|
||||||
GameSession::GameDescription desc;
|
if(!this->GetClientCount())
|
||||||
desc.maxClients = this->description.maxClients;
|
{ /*None connected*/ return false;}
|
||||||
desc.gameMode = this->description.gameMode;
|
else if( this->GetClientCount() != this->readyList.Size() )
|
||||||
desc.gameTimeMinutes = this->description.gameTimeInMinutes;
|
{ /*Not enough connected*/ return false; }
|
||||||
//desc.mapName = this->description.mapNumber;
|
}
|
||||||
desc.owner = this;
|
|
||||||
desc.clients = this->gClients;
|
|
||||||
|
|
||||||
if(desc.gameTimeMinutes == 0)
|
GameSession::GameDescription desc;
|
||||||
desc.gameTimeMinutes = 10; //note: should be fetched from somewhere.
|
desc.maxClients = this->description.maxClients;
|
||||||
|
desc.gameMode = this->description.gameMode;
|
||||||
|
desc.gameTimeMinutes = this->description.gameTimeInMinutes;
|
||||||
|
desc.mapName = this->description.mapName;
|
||||||
|
desc.owner = this;
|
||||||
|
desc.clients = this->gClients;
|
||||||
|
|
||||||
if(desc.maxClients == 0)
|
if(desc.gameTimeMinutes == 0)
|
||||||
desc.maxClients = 10; //note: should be fetched somewhere else..
|
desc.gameTimeMinutes = 10; //note: should be fetched from somewhere.
|
||||||
|
|
||||||
this->gClients.Clear(); //Remove clients from lobby list
|
if(desc.maxClients == 0)
|
||||||
|
desc.maxClients = 10; //note: should be fetched somewhere else..
|
||||||
|
|
||||||
|
this->gClients.Clear(); //Remove clients from lobby list
|
||||||
|
|
||||||
if(this->gameSession.Create(desc))
|
if(this->gameSession.Create(desc, forceStart))
|
||||||
{
|
|
||||||
this->gameSession.Run();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
//?
|
this->gameSession.Run();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
int GameLobby::GetGameSessionClientCount()
|
||||||
|
{
|
||||||
|
return this->gameSession.GetClientCount();
|
||||||
|
}
|
||||||
|
|
||||||
void GameLobby::ClientEventCallback(NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e)
|
void GameLobby::ClientEventCallback(NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,12 +184,15 @@ const wchar_t* GameServerAPI::GameGetGameName()
|
||||||
lobby.GetGameDesc(d);
|
lobby.GetGameDesc(d);
|
||||||
return d.gameName.c_str();
|
return d.gameName.c_str();
|
||||||
}
|
}
|
||||||
|
int GameServerAPI::GetConnectedClientCount()
|
||||||
bool GameServerAPI::GameStart()
|
|
||||||
{
|
{
|
||||||
if(lobby.StartGameSession())
|
return lobby.GetGameSessionClientCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GameServerAPI::GameStart( bool forceStart )
|
||||||
|
{
|
||||||
|
if(lobby.StartGameSession( forceStart ))
|
||||||
{
|
{
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -54,13 +54,13 @@ GameSession::~GameSession()
|
||||||
this->isRunning = false;
|
this->isRunning = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GameSession::Create(GameDescription& desc)
|
bool GameSession::Create(GameDescription& desc, bool forceStart)
|
||||||
{
|
{
|
||||||
this->description = desc;
|
this->description = desc;
|
||||||
/* Do some error checking */
|
/* Do some error checking */
|
||||||
if(desc.clients.Size() == 0) return false;
|
if(!forceStart && desc.clients.Size() == 0) return false;
|
||||||
if(!desc.owner) return false;
|
if(!desc.owner) return false;
|
||||||
if(this->isCreated) return false;
|
if(this->isCreated) return false;
|
||||||
|
|
||||||
/* standard initialization of some data */
|
/* standard initialization of some data */
|
||||||
this->gClients.Resize((unsigned int)desc.maxClients);
|
this->gClients.Resize((unsigned int)desc.maxClients);
|
||||||
|
@ -125,12 +125,10 @@ void GameSession::Run()
|
||||||
{
|
{
|
||||||
if(this->isRunning) return;
|
if(this->isRunning) return;
|
||||||
|
|
||||||
if(this->clients.Size() > 0)
|
this->worker.Start();
|
||||||
{
|
this->worker.SetPriority(OYSTER_THREAD_PRIORITY_1);
|
||||||
this->worker.Start();
|
this->isRunning = true;
|
||||||
this->worker.SetPriority(OYSTER_THREAD_PRIORITY_1);
|
|
||||||
this->isRunning = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameSession::ThreadEntry( )
|
void GameSession::ThreadEntry( )
|
||||||
|
|
|
@ -120,7 +120,14 @@ String^ StandaloneGameServerCLI::GameGetGameName()
|
||||||
return gcnew String( DanBias::GameServerAPI::GameGetGameName());
|
return gcnew String( DanBias::GameServerAPI::GameGetGameName());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StandaloneGameServerCLI::GameStart()
|
bool StandaloneGameServerCLI::GameStart(bool f)
|
||||||
{
|
{
|
||||||
return DanBias::GameServerAPI::GameStart();
|
return DanBias::GameServerAPI::GameStart(f);
|
||||||
}
|
}
|
||||||
|
int StandaloneGameServerCLI::GetClientsConnectedCount()
|
||||||
|
{
|
||||||
|
return DanBias::GameServerAPI::GetConnectedClientCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,8 @@ namespace System { namespace Windows { namespace Interop
|
||||||
System::String^ GameGetMapName();
|
System::String^ GameGetMapName();
|
||||||
System::String^ GameGetGameMode();
|
System::String^ GameGetGameMode();
|
||||||
System::String^ GameGetGameName();
|
System::String^ GameGetGameName();
|
||||||
bool GameStart();
|
bool GameStart( bool forceStart );
|
||||||
|
int GetClientsConnectedCount();
|
||||||
};
|
};
|
||||||
|
|
||||||
} } }
|
} } }
|
||||||
|
|
|
@ -36,30 +36,32 @@
|
||||||
this.label_listenPort = new System.Windows.Forms.Label();
|
this.label_listenPort = new System.Windows.Forms.Label();
|
||||||
this.panel_serverOptions = new System.Windows.Forms.Panel();
|
this.panel_serverOptions = new System.Windows.Forms.Panel();
|
||||||
this.panel_commands = new System.Windows.Forms.Panel();
|
this.panel_commands = new System.Windows.Forms.Panel();
|
||||||
|
this.mapName = new System.Windows.Forms.TextBox();
|
||||||
|
this.timeLimit = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.gameModes = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.forceStart = new System.Windows.Forms.CheckBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.nrOfClients = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.buttonStartGame = new System.Windows.Forms.Button();
|
||||||
this.panel_clientArea = new System.Windows.Forms.Panel();
|
this.panel_clientArea = new System.Windows.Forms.Panel();
|
||||||
this.ServerInfoTextArea = new System.Windows.Forms.RichTextBox();
|
this.ServerInfoTextArea = new System.Windows.Forms.RichTextBox();
|
||||||
this.splitter1 = new System.Windows.Forms.Splitter();
|
this.splitter1 = new System.Windows.Forms.Splitter();
|
||||||
this.clientInfoBox = new System.Windows.Forms.ListBox();
|
this.clientInfoBox = new System.Windows.Forms.ListBox();
|
||||||
this.buttonStartGame = new System.Windows.Forms.Button();
|
this.labelClientsConnected = new System.Windows.Forms.Label();
|
||||||
this.nrOfClients = new System.Windows.Forms.NumericUpDown();
|
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
|
||||||
this.gameModes = new System.Windows.Forms.ComboBox();
|
|
||||||
this.timeLimit = new System.Windows.Forms.NumericUpDown();
|
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
|
||||||
this.mapName = new System.Windows.Forms.TextBox();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.listenPort)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.listenPort)).BeginInit();
|
||||||
this.panel_serverOptions.SuspendLayout();
|
this.panel_serverOptions.SuspendLayout();
|
||||||
this.panel_commands.SuspendLayout();
|
this.panel_commands.SuspendLayout();
|
||||||
this.panel_clientArea.SuspendLayout();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nrOfClients)).BeginInit();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.timeLimit)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.timeLimit)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nrOfClients)).BeginInit();
|
||||||
|
this.panel_clientArea.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// serverToggle
|
// serverToggle
|
||||||
//
|
//
|
||||||
this.serverToggle.Location = new System.Drawing.Point(9, 81);
|
this.serverToggle.Location = new System.Drawing.Point(9, 106);
|
||||||
this.serverToggle.Name = "serverToggle";
|
this.serverToggle.Name = "serverToggle";
|
||||||
this.serverToggle.Size = new System.Drawing.Size(75, 23);
|
this.serverToggle.Size = new System.Drawing.Size(75, 23);
|
||||||
this.serverToggle.TabIndex = 0;
|
this.serverToggle.TabIndex = 0;
|
||||||
|
@ -111,7 +113,7 @@
|
||||||
this.listenPort.Size = new System.Drawing.Size(95, 20);
|
this.listenPort.Size = new System.Drawing.Size(95, 20);
|
||||||
this.listenPort.TabIndex = 5;
|
this.listenPort.TabIndex = 5;
|
||||||
this.listenPort.Value = new decimal(new int[] {
|
this.listenPort.Value = new decimal(new int[] {
|
||||||
2048,
|
15151,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
|
@ -135,7 +137,7 @@
|
||||||
this.panel_serverOptions.Controls.Add(this.label_serverName);
|
this.panel_serverOptions.Controls.Add(this.label_serverName);
|
||||||
this.panel_serverOptions.Location = new System.Drawing.Point(12, 12);
|
this.panel_serverOptions.Location = new System.Drawing.Point(12, 12);
|
||||||
this.panel_serverOptions.Name = "panel_serverOptions";
|
this.panel_serverOptions.Name = "panel_serverOptions";
|
||||||
this.panel_serverOptions.Size = new System.Drawing.Size(183, 113);
|
this.panel_serverOptions.Size = new System.Drawing.Size(183, 141);
|
||||||
this.panel_serverOptions.TabIndex = 6;
|
this.panel_serverOptions.TabIndex = 6;
|
||||||
//
|
//
|
||||||
// panel_commands
|
// panel_commands
|
||||||
|
@ -144,17 +146,137 @@
|
||||||
this.panel_commands.Controls.Add(this.timeLimit);
|
this.panel_commands.Controls.Add(this.timeLimit);
|
||||||
this.panel_commands.Controls.Add(this.gameModes);
|
this.panel_commands.Controls.Add(this.gameModes);
|
||||||
this.panel_commands.Controls.Add(this.label3);
|
this.panel_commands.Controls.Add(this.label3);
|
||||||
|
this.panel_commands.Controls.Add(this.forceStart);
|
||||||
this.panel_commands.Controls.Add(this.label2);
|
this.panel_commands.Controls.Add(this.label2);
|
||||||
this.panel_commands.Controls.Add(this.label4);
|
this.panel_commands.Controls.Add(this.label4);
|
||||||
|
this.panel_commands.Controls.Add(this.labelClientsConnected);
|
||||||
this.panel_commands.Controls.Add(this.label1);
|
this.panel_commands.Controls.Add(this.label1);
|
||||||
this.panel_commands.Controls.Add(this.nrOfClients);
|
this.panel_commands.Controls.Add(this.nrOfClients);
|
||||||
this.panel_commands.Controls.Add(this.buttonStartGame);
|
this.panel_commands.Controls.Add(this.buttonStartGame);
|
||||||
this.panel_commands.Location = new System.Drawing.Point(12, 131);
|
this.panel_commands.Location = new System.Drawing.Point(12, 159);
|
||||||
this.panel_commands.Name = "panel_commands";
|
this.panel_commands.Name = "panel_commands";
|
||||||
this.panel_commands.Size = new System.Drawing.Size(183, 230);
|
this.panel_commands.Size = new System.Drawing.Size(183, 202);
|
||||||
this.panel_commands.TabIndex = 7;
|
this.panel_commands.TabIndex = 7;
|
||||||
this.panel_commands.Visible = false;
|
this.panel_commands.Visible = false;
|
||||||
//
|
//
|
||||||
|
// mapName
|
||||||
|
//
|
||||||
|
this.mapName.Location = new System.Drawing.Point(78, 7);
|
||||||
|
this.mapName.Name = "mapName";
|
||||||
|
this.mapName.Size = new System.Drawing.Size(98, 20);
|
||||||
|
this.mapName.TabIndex = 12;
|
||||||
|
this.mapName.Text = "Unknown";
|
||||||
|
//
|
||||||
|
// timeLimit
|
||||||
|
//
|
||||||
|
this.timeLimit.Location = new System.Drawing.Point(109, 94);
|
||||||
|
this.timeLimit.Minimum = new decimal(new int[] {
|
||||||
|
5,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.timeLimit.Name = "timeLimit";
|
||||||
|
this.timeLimit.Size = new System.Drawing.Size(68, 20);
|
||||||
|
this.timeLimit.TabIndex = 11;
|
||||||
|
this.timeLimit.ThousandsSeparator = true;
|
||||||
|
this.timeLimit.Value = new decimal(new int[] {
|
||||||
|
15,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
//
|
||||||
|
// gameModes
|
||||||
|
//
|
||||||
|
this.gameModes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.gameModes.FormattingEnabled = true;
|
||||||
|
this.gameModes.Items.AddRange(new object[] {
|
||||||
|
"Free-for-all",
|
||||||
|
"Team death-match"});
|
||||||
|
this.gameModes.Location = new System.Drawing.Point(78, 66);
|
||||||
|
this.gameModes.Name = "gameModes";
|
||||||
|
this.gameModes.Size = new System.Drawing.Size(99, 21);
|
||||||
|
this.gameModes.TabIndex = 10;
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(8, 96);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(95, 13);
|
||||||
|
this.label3.TabIndex = 9;
|
||||||
|
this.label3.Text = "Time limit (minutes)";
|
||||||
|
//
|
||||||
|
// forceStart
|
||||||
|
//
|
||||||
|
this.forceStart.AutoSize = true;
|
||||||
|
this.forceStart.Checked = true;
|
||||||
|
this.forceStart.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.forceStart.Location = new System.Drawing.Point(12, 120);
|
||||||
|
this.forceStart.Name = "forceStart";
|
||||||
|
this.forceStart.Size = new System.Drawing.Size(115, 17);
|
||||||
|
this.forceStart.TabIndex = 1;
|
||||||
|
this.forceStart.Text = "Ignore empty lobby";
|
||||||
|
this.forceStart.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(8, 69);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(64, 13);
|
||||||
|
this.label2.TabIndex = 9;
|
||||||
|
this.label2.Text = "Game mode";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(9, 15);
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(57, 13);
|
||||||
|
this.label4.TabIndex = 8;
|
||||||
|
this.label4.Text = "Map name";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(8, 38);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(53, 13);
|
||||||
|
this.label1.TabIndex = 8;
|
||||||
|
this.label1.Text = "Client limit";
|
||||||
|
//
|
||||||
|
// nrOfClients
|
||||||
|
//
|
||||||
|
this.nrOfClients.Location = new System.Drawing.Point(78, 36);
|
||||||
|
this.nrOfClients.Maximum = new decimal(new int[] {
|
||||||
|
20,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.nrOfClients.Minimum = new decimal(new int[] {
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.nrOfClients.Name = "nrOfClients";
|
||||||
|
this.nrOfClients.Size = new System.Drawing.Size(39, 20);
|
||||||
|
this.nrOfClients.TabIndex = 7;
|
||||||
|
this.nrOfClients.Value = new decimal(new int[] {
|
||||||
|
10,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
//
|
||||||
|
// buttonStartGame
|
||||||
|
//
|
||||||
|
this.buttonStartGame.Location = new System.Drawing.Point(9, 176);
|
||||||
|
this.buttonStartGame.Name = "buttonStartGame";
|
||||||
|
this.buttonStartGame.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.buttonStartGame.TabIndex = 6;
|
||||||
|
this.buttonStartGame.Text = "Start game";
|
||||||
|
this.buttonStartGame.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonStartGame.Click += new System.EventHandler(this.buttonStartGame_Click);
|
||||||
|
//
|
||||||
// panel_clientArea
|
// panel_clientArea
|
||||||
//
|
//
|
||||||
this.panel_clientArea.Controls.Add(this.ServerInfoTextArea);
|
this.panel_clientArea.Controls.Add(this.ServerInfoTextArea);
|
||||||
|
@ -197,110 +319,14 @@
|
||||||
this.clientInfoBox.Size = new System.Drawing.Size(303, 147);
|
this.clientInfoBox.Size = new System.Drawing.Size(303, 147);
|
||||||
this.clientInfoBox.TabIndex = 0;
|
this.clientInfoBox.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// buttonStartGame
|
// labelClientsConnected
|
||||||
//
|
//
|
||||||
this.buttonStartGame.Location = new System.Drawing.Point(53, 195);
|
this.labelClientsConnected.AutoSize = true;
|
||||||
this.buttonStartGame.Name = "buttonStartGame";
|
this.labelClientsConnected.Location = new System.Drawing.Point(9, 149);
|
||||||
this.buttonStartGame.Size = new System.Drawing.Size(75, 23);
|
this.labelClientsConnected.Name = "labelClientsConnected";
|
||||||
this.buttonStartGame.TabIndex = 6;
|
this.labelClientsConnected.Size = new System.Drawing.Size(104, 13);
|
||||||
this.buttonStartGame.Text = "Start game";
|
this.labelClientsConnected.TabIndex = 8;
|
||||||
this.buttonStartGame.UseVisualStyleBackColor = true;
|
this.labelClientsConnected.Text = "Clients connected: 0";
|
||||||
this.buttonStartGame.Click += new System.EventHandler(this.buttonStartGame_Click);
|
|
||||||
//
|
|
||||||
// nrOfClients
|
|
||||||
//
|
|
||||||
this.nrOfClients.Location = new System.Drawing.Point(78, 36);
|
|
||||||
this.nrOfClients.Maximum = new decimal(new int[] {
|
|
||||||
20,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0});
|
|
||||||
this.nrOfClients.Minimum = new decimal(new int[] {
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0});
|
|
||||||
this.nrOfClients.Name = "nrOfClients";
|
|
||||||
this.nrOfClients.Size = new System.Drawing.Size(39, 20);
|
|
||||||
this.nrOfClients.TabIndex = 7;
|
|
||||||
this.nrOfClients.Value = new decimal(new int[] {
|
|
||||||
2,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0});
|
|
||||||
//
|
|
||||||
// label1
|
|
||||||
//
|
|
||||||
this.label1.AutoSize = true;
|
|
||||||
this.label1.Location = new System.Drawing.Point(8, 38);
|
|
||||||
this.label1.Name = "label1";
|
|
||||||
this.label1.Size = new System.Drawing.Size(53, 13);
|
|
||||||
this.label1.TabIndex = 8;
|
|
||||||
this.label1.Text = "Client limit";
|
|
||||||
//
|
|
||||||
// label2
|
|
||||||
//
|
|
||||||
this.label2.AutoSize = true;
|
|
||||||
this.label2.Location = new System.Drawing.Point(8, 69);
|
|
||||||
this.label2.Name = "label2";
|
|
||||||
this.label2.Size = new System.Drawing.Size(64, 13);
|
|
||||||
this.label2.TabIndex = 9;
|
|
||||||
this.label2.Text = "Game mode";
|
|
||||||
//
|
|
||||||
// gameModes
|
|
||||||
//
|
|
||||||
this.gameModes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.gameModes.FormattingEnabled = true;
|
|
||||||
this.gameModes.Items.AddRange(new object[] {
|
|
||||||
"Free-for-all",
|
|
||||||
"Team death-match"});
|
|
||||||
this.gameModes.Location = new System.Drawing.Point(78, 66);
|
|
||||||
this.gameModes.Name = "gameModes";
|
|
||||||
this.gameModes.Size = new System.Drawing.Size(99, 21);
|
|
||||||
this.gameModes.TabIndex = 10;
|
|
||||||
//
|
|
||||||
// timeLimit
|
|
||||||
//
|
|
||||||
this.timeLimit.Location = new System.Drawing.Point(109, 94);
|
|
||||||
this.timeLimit.Minimum = new decimal(new int[] {
|
|
||||||
5,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0});
|
|
||||||
this.timeLimit.Name = "timeLimit";
|
|
||||||
this.timeLimit.Size = new System.Drawing.Size(68, 20);
|
|
||||||
this.timeLimit.TabIndex = 11;
|
|
||||||
this.timeLimit.ThousandsSeparator = true;
|
|
||||||
this.timeLimit.Value = new decimal(new int[] {
|
|
||||||
5,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0});
|
|
||||||
//
|
|
||||||
// label3
|
|
||||||
//
|
|
||||||
this.label3.AutoSize = true;
|
|
||||||
this.label3.Location = new System.Drawing.Point(8, 96);
|
|
||||||
this.label3.Name = "label3";
|
|
||||||
this.label3.Size = new System.Drawing.Size(95, 13);
|
|
||||||
this.label3.TabIndex = 9;
|
|
||||||
this.label3.Text = "Time limit (minutes)";
|
|
||||||
//
|
|
||||||
// label4
|
|
||||||
//
|
|
||||||
this.label4.AutoSize = true;
|
|
||||||
this.label4.Location = new System.Drawing.Point(9, 15);
|
|
||||||
this.label4.Name = "label4";
|
|
||||||
this.label4.Size = new System.Drawing.Size(57, 13);
|
|
||||||
this.label4.TabIndex = 8;
|
|
||||||
this.label4.Text = "Map name";
|
|
||||||
//
|
|
||||||
// mapName
|
|
||||||
//
|
|
||||||
this.mapName.Location = new System.Drawing.Point(78, 7);
|
|
||||||
this.mapName.Name = "mapName";
|
|
||||||
this.mapName.Size = new System.Drawing.Size(98, 20);
|
|
||||||
this.mapName.TabIndex = 12;
|
|
||||||
//
|
//
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
|
@ -312,14 +338,15 @@
|
||||||
this.Controls.Add(this.panel_serverOptions);
|
this.Controls.Add(this.panel_serverOptions);
|
||||||
this.Name = "Form1";
|
this.Name = "Form1";
|
||||||
this.Text = "Form1";
|
this.Text = "Form1";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormClosingEvent);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.listenPort)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.listenPort)).EndInit();
|
||||||
this.panel_serverOptions.ResumeLayout(false);
|
this.panel_serverOptions.ResumeLayout(false);
|
||||||
this.panel_serverOptions.PerformLayout();
|
this.panel_serverOptions.PerformLayout();
|
||||||
this.panel_commands.ResumeLayout(false);
|
this.panel_commands.ResumeLayout(false);
|
||||||
this.panel_commands.PerformLayout();
|
this.panel_commands.PerformLayout();
|
||||||
this.panel_clientArea.ResumeLayout(false);
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nrOfClients)).EndInit();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.timeLimit)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.timeLimit)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.nrOfClients)).EndInit();
|
||||||
|
this.panel_clientArea.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -347,6 +374,8 @@
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.TextBox mapName;
|
private System.Windows.Forms.TextBox mapName;
|
||||||
|
private System.Windows.Forms.CheckBox forceStart;
|
||||||
|
private System.Windows.Forms.Label labelClientsConnected;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace StandAloneLauncher
|
||||||
public Form1()
|
public Form1()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
this.gameModes.SelectedIndex = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ namespace StandAloneLauncher
|
||||||
|
|
||||||
//Do some stuff
|
//Do some stuff
|
||||||
this.gameServer.ServerUpdate();
|
this.gameServer.ServerUpdate();
|
||||||
|
this.labelClientsConnected.Text = "Clients connected: " + this.gameServer.GetClientsConnectedCount().ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@ namespace StandAloneLauncher
|
||||||
this.gameServer.GameSetGameTime((int)this.timeLimit.Value);
|
this.gameServer.GameSetGameTime((int)this.timeLimit.Value);
|
||||||
//this.gameServer.GameSetMapId(0);
|
//this.gameServer.GameSetMapId(0);
|
||||||
this.gameServer.GameSetMaxClients((int)this.nrOfClients.Value);
|
this.gameServer.GameSetMaxClients((int)this.nrOfClients.Value);
|
||||||
if (!this.gameServer.GameStart())
|
if (!this.gameServer.GameStart( this.forceStart.Checked ))
|
||||||
{
|
{
|
||||||
this.ServerInfoTextArea.AppendText(DateTime.Now.ToUniversalTime() + "\n\t" + "Failed to start the game session!\n");
|
this.ServerInfoTextArea.AppendText(DateTime.Now.ToUniversalTime() + "\n\t" + "Failed to start the game session!\n");
|
||||||
}
|
}
|
||||||
|
@ -98,5 +99,13 @@ namespace StandAloneLauncher
|
||||||
this.ServerInfoTextArea.AppendText(DateTime.Now.ToUniversalTime() + "\n\t" + "Game session started!\n");
|
this.ServerInfoTextArea.AppendText(DateTime.Now.ToUniversalTime() + "\n\t" + "Game session started!\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void FormClosingEvent(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
if (serverIsRunning)
|
||||||
|
{
|
||||||
|
this.gameServer.ServerStop();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue