Refactor running game server into own function
This commit is contained in:
parent
4055d85d99
commit
43d688a728
1 changed files with 28 additions and 23 deletions
|
@ -9,11 +9,12 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
|
||||||
#include "net.h"
|
#include "net.h"
|
||||||
#include "filesystem.h"
|
#include "filesystem.h"
|
||||||
|
|
||||||
int runServer(int argc, char* argv[])
|
CTTRTSGame &RunServerForGame(CTTRTSGame &game)
|
||||||
{
|
{
|
||||||
std::cout<<"Setting up server on port "<<TTRTS_PORT<< std::endl;
|
std::cout<<"Setting up server on port "<<TTRTS_PORT<< std::endl;
|
||||||
|
|
||||||
|
@ -64,9 +65,6 @@ int runServer(int argc, char* argv[])
|
||||||
// max is usually set to 5
|
// max is usually set to 5
|
||||||
listen(sockfd,5);
|
listen(sockfd,5);
|
||||||
|
|
||||||
// Set up game
|
|
||||||
CTTRTSGame game = GetGameFromFile("Tiny2Player.txt");
|
|
||||||
|
|
||||||
std::vector<player_t> players = game.GetPlayers();
|
std::vector<player_t> players = game.GetPlayers();
|
||||||
unsigned int numClients = players.size();
|
unsigned int numClients = players.size();
|
||||||
auto player_iterator = players.begin();
|
auto player_iterator = players.begin();
|
||||||
|
@ -160,20 +158,27 @@ int runServer(int argc, char* argv[])
|
||||||
|
|
||||||
// Send final state to all the clients
|
// Send final state to all the clients
|
||||||
SendGameInfoToClients(myClients, game, gameMutex);
|
SendGameInfoToClients(myClients, game, gameMutex);
|
||||||
|
return game;
|
||||||
|
}
|
||||||
|
|
||||||
|
int runServer(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
// Set up game
|
||||||
|
CTTRTSGame game = GetGameFromFile(argv[1]);
|
||||||
|
if(game.GetNumUnits() == 0)
|
||||||
|
fatal_error("game not valid");
|
||||||
|
|
||||||
|
RunServerForGame(game);
|
||||||
|
|
||||||
// Get the winning player
|
// Get the winning player
|
||||||
player_t winningPlayer = game.GetWinningPlayer();
|
player_t winningPlayer = game.GetWinningPlayer();
|
||||||
|
|
||||||
// Print the winner!
|
// Print the winner!
|
||||||
if ( winningPlayer != player_t::NUM_INVALID )
|
if ( winningPlayer != player_t::NUM_INVALID )
|
||||||
{
|
|
||||||
std::cout<<"Game over! Winner:"<<(int) winningPlayer <<std::endl;
|
std::cout<<"Game over! Winner:"<<(int) winningPlayer <<std::endl;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
std::cout<<"Game over! It was a draw!"<<std::endl;
|
std::cout<<"Game over! It was a draw!"<<std::endl;
|
||||||
}
|
|
||||||
|
|
||||||
// Return
|
// Return
|
||||||
return 0;
|
return (int)winningPlayer;
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue