diff --git a/src/gamesrv.c b/src/gamesrv.c index 87fa0d8..1e0f457 100644 --- a/src/gamesrv.c +++ b/src/gamesrv.c @@ -318,6 +318,7 @@ gamesrv_getglist () return rebuild; } +/* Returns a Box of all Players in a game */ void gamesrv_playerinfo (struct game_entry *gse) { @@ -352,8 +353,9 @@ gamesrv_playerinfo (struct game_entry *gse) d_printf ("Got %d Players active after %d\n", pl, i ); if (!pl) return; // game not found - - for (j = 0; j < pl; j++) { + // read players from packet + if (!pl>MAX_PLAYERS) pl=MAX_PLAYERS; + for (j = 0; j < pl ; j++) { pos++; for (i = 1; (i - 1 < LEN_GAMENAME) && (pos[i] != 0) && (pos[i] != '\n'); i++) @@ -361,7 +363,7 @@ gamesrv_playerinfo (struct game_entry *gse) bman.players[j].name[i - 1] = 0;pos+=i-1; d_printf ("Name: %s\n", bman.players[j].name); } - + // draw box and players j=pl*font[0].size.y+font[1].size.y+50; draw_menubox (400, j); x = gfx.res.x / 2; @@ -383,6 +385,7 @@ gamesrv_playerinfo (struct game_entry *gse) y = y + 2 + font[0].size.y; } SDL_Flip (gfx.screen); + // wait for any key keybinput_new (&ki); eventstate=0; while (event.type!=SDL_KEYDOWN) { @@ -527,8 +530,8 @@ gamesrv_sendmode (int maxplayer, int curplayers) else sprintf (data, "%sI6\n", data); sprintf (data, "%sN%s\n", data, bman.gamename); - for (i = 0; i < curplayers; i++) - sprintf (data, "%sR%s\n", data, bman.players[i].name); + for (i = 0; i < MAX_PLAYERS; i++) + if PS_IS_used (bman.players[i].state) sprintf (data, "%sR%s\n", data, bman.players[i].name); len = strlen (data); network_server_port (bman.gamemaster, host, LEN_SERVERNAME, port, LEN_PORT);