|
|
|
@ -1345,20 +1345,22 @@ void do_respawn (struct pkg_respawn *r_pkg, _net_addr *addr) {
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
/* check if the right player is sending the information */
|
|
|
|
|
if (addr->pl_nr != bman.p_servnr && addr->pl_nr != r_pkg->pl_nr)
|
|
|
|
|
if (addr->pl_nr != bman.p_servnr && r_pkg->pl_nr != addr->pl_nr)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if ((r_pkg->state & PSF_respawn) == PSF_respawn) {
|
|
|
|
|
players[r_pkg->pl_nr].pos.x = r_pkg->x;
|
|
|
|
|
players[r_pkg->pl_nr].pos.y = r_pkg->y;
|
|
|
|
|
if (PS_IS_dead (players[r_pkg->pl_nr].state))
|
|
|
|
|
players[r_pkg->pl_nr].state |= PSF_respawn;
|
|
|
|
|
players[r_pkg->pl_nr].state &= (0xFF - PSF_alife);
|
|
|
|
|
players[r_pkg->pl_nr].state |= PSF_respawn;
|
|
|
|
|
players[r_pkg->pl_nr].frame = 0.0f;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if ((r_pkg->state & (PSF_respawn + PSF_alife)) == PSF_alife) {
|
|
|
|
|
else if (r_pkg->state & (PSF_respawn + PSF_alife)) {
|
|
|
|
|
players[r_pkg->pl_nr].pos.x = r_pkg->x;
|
|
|
|
|
players[r_pkg->pl_nr].pos.y = r_pkg->y;
|
|
|
|
|
players[r_pkg->pl_nr].state |= PSF_alife;
|
|
|
|
|
players[r_pkg->pl_nr].state &= (0xFF - PSF_alife);
|
|
|
|
|
players[r_pkg->pl_nr].state &= (0xFF - PSF_respawn);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|