|
|
@ -309,8 +309,8 @@ do_playerid (struct pkg_playerid *p_id, _net_addr * addr)
|
|
|
|
int i;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
d_printf
|
|
|
|
d_printf
|
|
|
|
("do_playerid (From:%s:%s pl_nr=%d) Player(name:%s [%s:%s], pl_nr:%d)\n",
|
|
|
|
("do_playerid (From:%s:%s pl_nr=%d) Player(name:%s [%s:%s], pl_nr:%d state:%d,%d)\n",
|
|
|
|
addr->host, addr->port, addr->pl_nr, p_id->name, p_id->host, p_id->port, p_id->pl_nr);
|
|
|
|
addr->host, addr->port, addr->pl_nr, p_id->name, p_id->host, p_id->port, p_id->pl_nr, p_id->state, PS_IS_alife (p_id->state));
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* check if we have to send the whole playerlist to a client
|
|
|
|
* check if we have to send the whole playerlist to a client
|
|
|
@ -373,7 +373,13 @@ do_playerid (struct pkg_playerid *p_id, _net_addr * addr)
|
|
|
|
* work around for some hardware routers */
|
|
|
|
* work around for some hardware routers */
|
|
|
|
send_contest (&players[bman.p_servnr].net.addr, bman.p_nr, -1, 1);
|
|
|
|
send_contest (&players[bman.p_servnr].net.addr, bman.p_nr, -1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pl->state = p_id->state;
|
|
|
|
|
|
|
|
|
|
|
|
/* to make sure that in games the client won't reborn without a reason */
|
|
|
|
|
|
|
|
if (bman.state != GS_running || PS_IS_alife (pl->state) == 1)
|
|
|
|
|
|
|
|
pl->state = p_id->state;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
pl->state = p_id->state & (0xFF - PSF_alife);
|
|
|
|
|
|
|
|
|
|
|
|
if (p_id->pl_nr != bman.p_nr && PS_IS_used (pl->state))
|
|
|
|
if (p_id->pl_nr != bman.p_nr && PS_IS_used (pl->state))
|
|
|
|
pl->state |= PSF_net;
|
|
|
|
pl->state |= PSF_net;
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -827,11 +833,10 @@ do_playerdata (struct pkg_playerdata *p_dat, _net_addr * addr)
|
|
|
|
if (p_dat->p_nr < 0 || p_dat->p_nr >= MAX_PLAYERS)
|
|
|
|
if (p_dat->p_nr < 0 || p_dat->p_nr >= MAX_PLAYERS)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
d_printf ("do_playerdata (From: %d) p_nr: %d\n", addr->pl_nr, p_dat->p_nr);
|
|
|
|
printf ("do_playerdata (From: %d) p_nr: %d --> state alife? %d new %d\n", addr->pl_nr, p_dat->p_nr, PS_IS_alife(players[p_dat->p_nr].state) , PS_IS_alife(p_dat->state));
|
|
|
|
bman.updatestatusbar = 1; // force an update
|
|
|
|
bman.updatestatusbar = 1; // force an update
|
|
|
|
|
|
|
|
|
|
|
|
pl = &players[p_dat->p_nr];
|
|
|
|
pl = &players[p_dat->p_nr];
|
|
|
|
player_set_gfx (pl, p_dat->gfx_nr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (bman.state == GS_running && bman.p_nr != p_dat->p_nr) {
|
|
|
|
if (bman.state == GS_running && bman.p_nr != p_dat->p_nr) {
|
|
|
|
pl->points = NTOH16 (p_dat->points);
|
|
|
|
pl->points = NTOH16 (p_dat->points);
|
|
|
@ -885,6 +890,8 @@ do_playerdata (struct pkg_playerdata *p_dat, _net_addr * addr)
|
|
|
|
|
|
|
|
|
|
|
|
if (players[bman.p_nr].net.net_istep == 1)
|
|
|
|
if (players[bman.p_nr].net.net_istep == 1)
|
|
|
|
players[bman.p_nr].net.net_status = p_dat->p_nr;
|
|
|
|
players[bman.p_nr].net.net_status = p_dat->p_nr;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
player_set_gfx (pl, p_dat->gfx_nr);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|