|
|
@ -1,4 +1,4 @@
|
|
|
|
/* $Id: network.c,v 1.20 2003/05/13 22:10:58 patty21 Exp $ */
|
|
|
|
/* $Id: network.c,v 1.21 2003/05/13 22:38:15 stpohle Exp $ */
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
network routines.
|
|
|
|
network routines.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -537,12 +537,12 @@ net_game_send_player (int p_nr)
|
|
|
|
|
|
|
|
|
|
|
|
if (GT_MP_PTPM) {
|
|
|
|
if (GT_MP_PTPM) {
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
if (PS_IS_used (bman.players[p].state) && p != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[p].state) && p != bman.p_nr)
|
|
|
|
send_playerdata (&bman.players[p].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
send_playerdata (&bman.players[p].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (p_nr == bman.p_nr) {
|
|
|
|
else if (p_nr == bman.p_nr) {
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
if (PS_IS_used (bman.players[p].state) && p != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[p].state) && p != bman.p_nr)
|
|
|
|
send_playerdata (&bman.players[p].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
send_playerdata (&bman.players[p].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
@ -555,7 +555,7 @@ net_game_send_playermove (int p_nr, int mustsend)
|
|
|
|
_player *pl;
|
|
|
|
_player *pl;
|
|
|
|
|
|
|
|
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
for (p = 0; p < MAX_PLAYERS; p++)
|
|
|
|
if (PS_IS_used (bman.players[p].state) && p != bman.p_nr) {
|
|
|
|
if (PS_IS_netplayer (bman.players[p].state) && p != bman.p_nr) {
|
|
|
|
pl = &bman.players[p_nr];
|
|
|
|
pl = &bman.players[p_nr];
|
|
|
|
|
|
|
|
|
|
|
|
pl->net.pkgopt.send_to--;
|
|
|
|
pl->net.pkgopt.send_to--;
|
|
|
@ -583,7 +583,7 @@ net_game_send_bomb (int p, int b)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
if (PS_IS_used (bman.players[pl].state) && pl != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[pl].state) && pl != bman.p_nr)
|
|
|
|
send_bombdata (&bman.players[pl].net.addr, p, b, &bman.players[p].bombs[b]);
|
|
|
|
send_bombdata (&bman.players[pl].net.addr, p, b, &bman.players[p].bombs[b]);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -599,7 +599,7 @@ net_game_send_field (int x, int y)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
if (PS_IS_used (bman.players[pl].state) && pl != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[pl].state) && pl != bman.p_nr)
|
|
|
|
send_field (&bman.players[pl].net.addr, x, y, &bman.field[x][y]);
|
|
|
|
send_field (&bman.players[pl].net.addr, x, y, &bman.field[x][y]);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -631,7 +631,7 @@ net_delplayer (int pl_nr)
|
|
|
|
|
|
|
|
|
|
|
|
if (GT_MP_PTPM && (GS_WAITRUNNING || bman.state == GS_update)) {
|
|
|
|
if (GT_MP_PTPM && (GS_WAITRUNNING || bman.state == GS_update)) {
|
|
|
|
for (i = 1; i < MAX_PLAYERS; i++)
|
|
|
|
for (i = 1; i < MAX_PLAYERS; i++)
|
|
|
|
if (PS_IS_used (bman.players[i].state)) {
|
|
|
|
if (PS_IS_netplayer (bman.players[i].state)) {
|
|
|
|
send_quit (&bman.players[i].net.addr, host, port);
|
|
|
|
send_quit (&bman.players[i].net.addr, host, port);
|
|
|
|
j++;
|
|
|
|
j++;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -669,7 +669,7 @@ net_send_servermode ()
|
|
|
|
int i;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
if (PS_IS_used (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
send_servermode (&bman.players[i].net.addr, i);
|
|
|
|
send_servermode (&bman.players[i].net.addr, i);
|
|
|
|
|
|
|
|
|
|
|
|
if (GT_MP_PTPM && bman.notifygamemaster) /* send notification the the gamemaster */
|
|
|
|
if (GT_MP_PTPM && bman.notifygamemaster) /* send notification the the gamemaster */
|
|
|
@ -686,7 +686,7 @@ net_send_players ()
|
|
|
|
j;
|
|
|
|
j;
|
|
|
|
|
|
|
|
|
|
|
|
for (j = 0; j < MAX_PLAYERS; j++)
|
|
|
|
for (j = 0; j < MAX_PLAYERS; j++)
|
|
|
|
if (PS_IS_used (bman.players[j].state) && j != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[j].state) && j != bman.p_nr)
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
send_playerid (&bman.players[j].net.addr, bman.players[i].name,
|
|
|
|
send_playerid (&bman.players[j].net.addr, bman.players[i].name,
|
|
|
|
bman.players[i].net.addr.host, bman.players[i].net.addr.port, i,
|
|
|
|
bman.players[i].net.addr.host, bman.players[i].net.addr.port, i,
|
|
|
@ -702,7 +702,7 @@ net_send_chat (char *text, signed char notigamesrv)
|
|
|
|
int i;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
if (PS_IS_used (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
send_chat (&bman.players[i].net.addr, text);
|
|
|
|
send_chat (&bman.players[i].net.addr, text);
|
|
|
|
|
|
|
|
|
|
|
|
if (GT_MP_PTPM && bman.notifygamemaster && notigamesrv == 1) /* send notification the the gamemaster */
|
|
|
|
if (GT_MP_PTPM && bman.notifygamemaster && notigamesrv == 1) /* send notification the the gamemaster */
|
|
|
@ -718,7 +718,7 @@ net_game_send_ill (int p_nr)
|
|
|
|
d_printf ("net_game_send_ill (%d)\n", p_nr);
|
|
|
|
d_printf ("net_game_send_ill (%d)\n", p_nr);
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
for (i = 0; i < MAX_PLAYERS; i++)
|
|
|
|
if (PS_IS_used (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
if (PS_IS_netplayer (bman.players[i].state) && i != bman.p_nr)
|
|
|
|
send_ill (&bman.players[i].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
send_ill (&bman.players[i].net.addr, p_nr, &bman.players[p_nr]);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -779,3 +779,21 @@ net_new_game ()
|
|
|
|
bman.players[bman.p_nr].state &= (0xFF - PSF_net); // we are the local player
|
|
|
|
bman.players[bman.p_nr].state &= (0xFF - PSF_net); // we are the local player
|
|
|
|
bman.last_ex_nr = 1;
|
|
|
|
bman.last_ex_nr = 1;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* send special use elements into the network */
|
|
|
|
|
|
|
|
void
|
|
|
|
|
|
|
|
net_game_send_special (int pl_nr)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int pl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d_printf ("Send Special Data %d\n", pl_nr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (pl_nr < 0 || pl_nr >= MAX_PLAYERS)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
|
|
|
|
if (PS_IS_netplayer (bman.players[pl].state) && pl != pl_nr)
|
|
|
|
|
|
|
|
send_special (&bman.players[pl].net.addr, pl_nr, bman.players[pl_nr].special);
|
|
|
|
|
|
|
|
};
|
|
|
|