pkg_mapinfo.len fixed in send_mapinfo

origin
stpohle 22 years ago
parent 31b48aedc7
commit 14872e49d8

@ -278,6 +278,8 @@ do_servermode (struct pkg_servermode *s_mod, _net_addr * addr)
map.size.y = s_mod->fieldsize_y; map.size.y = s_mod->fieldsize_y;
} }
strncpy (map.tileset, s_mod->tileset, LEN_TILESETNAME);
bman.updatestatusbar = 1; bman.updatestatusbar = 1;
}; };
@ -303,6 +305,7 @@ send_servermode (_net_addr * addr, int pl_nr)
s_mod.last_winner = bman.lastwinner; s_mod.last_winner = bman.lastwinner;
s_mod.fieldsize_x = map.size.x; s_mod.fieldsize_x = map.size.x;
s_mod.fieldsize_y = map.size.y; s_mod.fieldsize_y = map.size.y;
strncpy (s_mod.tileset, map.tileset, LEN_TILESETNAME);
send_pkg ((struct pkg *) &s_mod, addr); send_pkg ((struct pkg *) &s_mod, addr);
}; };
@ -995,7 +998,7 @@ send_mapinfo (_net_addr * addr)
struct pkg_mapinfo map_pkg; struct pkg_mapinfo map_pkg;
map_pkg.h.typ = PKG_mapinfo; map_pkg.h.typ = PKG_mapinfo;
map_pkg.h.len = sizeof (struct pkg_special); map_pkg.h.len = sizeof (struct pkg_mapinfo);
map_pkg.h.flags = PKGF_ackreq; map_pkg.h.flags = PKGF_ackreq;
map_pkg.size_x = map.size.x; map_pkg.size_x = map.size.x;
map_pkg.size_y = map.size.y; map_pkg.size_y = map.size.y;
@ -1021,10 +1024,10 @@ send_mapinfo (_net_addr * addr)
void void
do_mapinfo (struct pkg_mapinfo *map_pkg, _net_addr * addr) do_mapinfo (struct pkg_mapinfo *map_pkg, _net_addr * addr)
{ {
d_printf ("do_mapinfo (addr %d, pl_nr %d)\n", addr->pl_nr, addr->pl_nr); d_printf ("do_mapinfo (addr %d) size[%d,%d]\n", addr->pl_nr,map_pkg->size_x,map_pkg->size_y);
/* check if the server send this information */ /* check if the server send this information */
if (addr->pl_nr == 0) if (addr->pl_nr != 0)
return; return;
if (map_pkg->tileset[0] == 0) { if (map_pkg->tileset[0] == 0) {

@ -89,6 +89,7 @@ struct pkg_servermode {
signed char last_winner; signed char last_winner;
signed char fieldsize_x; signed char fieldsize_x;
signed char fieldsize_y; signed char fieldsize_y;
char tileset[LEN_TILESETNAME];
signed char pl_nr; /* if the server sends this to a client... signed char pl_nr; /* if the server sends this to a client...
it will be the clients in_nr number it will be the clients in_nr number
(-1) for not set */ (-1) for not set */

Loading…
Cancel
Save