90 lines
2.1 KiB
C++
90 lines
2.1 KiB
C++
#define ASIO_STANDALONE
|
||
|
||
#include <iostream>
|
||
#include <getopt.h>
|
||
#include <asio.hpp>
|
||
#include <cstdlib>
|
||
|
||
#include "opengl.hpp"
|
||
#include "game_window.hpp"
|
||
#include "network/server.hpp"
|
||
#include "options.hpp"
|
||
|
||
uint64_t optionsFlags;
|
||
|
||
using asio::ip::tcp;
|
||
|
||
int main(int argc, char *argv[])
|
||
{
|
||
bool devMode = false;
|
||
char port[]="3490";
|
||
|
||
static struct option long_options[] =
|
||
{
|
||
/* These options set a flag. */
|
||
// {"verbose", no_argument, &verbose_flag, 1},
|
||
// {"brief", no_argument, &verbose_flag, 0},
|
||
/* These options don’t set a flag.
|
||
We distinguish them by their indices. */
|
||
// {"add", no_argument, 0, 'a'},
|
||
// {"append", no_argument, 0, 'b'},
|
||
// {"delete", required_argument, 0, 'd'},
|
||
{"autorun", required_argument, 0, 'a'},
|
||
{"port", required_argument, 0, 'p'},
|
||
{"fps", no_argument, 0, 'f'},
|
||
{"dev", no_argument, 0, 'd'},
|
||
{0, 0, 0, 0}
|
||
};
|
||
|
||
int option_index = 0;
|
||
|
||
while(1){
|
||
char c = getopt_long (argc, argv, "p:fad",
|
||
long_options, &option_index);
|
||
if (c == -1)
|
||
break;
|
||
|
||
switch (c)
|
||
{
|
||
case 'f':
|
||
SET_FLAG(SHOW_FPS,true);
|
||
break;
|
||
case 'd':
|
||
std::cout<<"enabling developer mode" << std::endl;
|
||
devMode = true;
|
||
break;
|
||
|
||
case 'p':
|
||
strcpy(port,optarg);
|
||
break;
|
||
|
||
case 'a':
|
||
SET_FLAG(TEST_AUTORUN, true);
|
||
break;
|
||
|
||
case '?':
|
||
/* getopt_long already printed an error message. */
|
||
break;
|
||
|
||
default:
|
||
abort();
|
||
}
|
||
}
|
||
|
||
Game game;
|
||
game.state()->setDeveloperMode(devMode);
|
||
|
||
asio::io_service io_service;
|
||
Server s(io_service, game.state(), atoi(port) );
|
||
|
||
GameWindow window(500, 500, &game);
|
||
window.set_maxfps(60.0);
|
||
window.open();
|
||
|
||
while(window.running()){
|
||
window.poll();
|
||
io_service.poll();
|
||
}
|
||
|
||
return 0;
|
||
}
|