added net_send_special fixed PS_IS_netplayer

origin
stpohle 23 years ago
parent 51d259c7e6
commit 14754be869

@ -149,7 +149,7 @@ enum _playerstateflags {
#define PSFM_alife (PSF_used + PSF_alife + PSF_playing)
#define PS_IS_dead(__ps) (((__ps) & (PSFM_alife)) == (PSFM_used))
#define PS_IS_alife(__ps) (((__ps) & (PSFM_alife)) == (PSFM_alife))
#define PS_IS_netplayer(__ps) (((__ps) & (PSFM_alife + PSF_net)) == (PSF_net + PSFM_alife))
#define PS_IS_netplayer(__ps) (((__ps) & (PSFM_used + PSF_net)) != 0)
#define PS_IS_playing(__ps) (((__ps) & (PSFM_used)) == (PSFM_used))
#define PS_IS_used(__ps) (((__ps) & (PSFM_used)) != 0)

@ -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.
*/
@ -537,12 +537,12 @@ net_game_send_player (int p_nr)
if (GT_MP_PTPM) {
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]);
}
else if (p_nr == bman.p_nr) {
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]);
}
};
@ -555,7 +555,7 @@ net_game_send_playermove (int p_nr, int mustsend)
_player *pl;
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->net.pkgopt.send_to--;
@ -583,7 +583,7 @@ net_game_send_bomb (int p, int b)
return;
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]);
};
@ -599,7 +599,7 @@ net_game_send_field (int x, int y)
return;
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]);
};
@ -631,7 +631,7 @@ net_delplayer (int pl_nr)
if (GT_MP_PTPM && (GS_WAITRUNNING || bman.state == GS_update)) {
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);
j++;
}
@ -669,7 +669,7 @@ net_send_servermode ()
int 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);
if (GT_MP_PTPM && bman.notifygamemaster) /* send notification the the gamemaster */
@ -686,7 +686,7 @@ net_send_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++)
send_playerid (&bman.players[j].net.addr, bman.players[i].name,
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;
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);
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);
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]);
};
@ -779,3 +779,21 @@ net_new_game ()
bman.players[bman.p_nr].state &= (0xFF - PSF_net); // we are the local player
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);
};

@ -74,6 +74,7 @@ extern void net_game_send_player (int p_nr);
extern void net_game_send_playermove (int p_nr, int mustsend);
extern void net_game_send_bomb (int p, int b);
extern void net_game_send_field (int x, int y);
extern void net_game_send_special (int pl_nr);
extern void net_game_fillsockaddr ();
extern void net_game_send_ill (int p_nr);
extern void net_delplayer (int pl_nr);

@ -505,7 +505,7 @@ player_calcpos ()
for (p = 0; p < MAX_PLAYERS; p++) {
pl = &bman.players[p];
if (PS_IS_netplayer (pl->state) && pl->m != 0) {
if (PS_IS_netplayer (pl->state) && PS_IS_alife (pl->state) && pl->m != 0) {
if (pl->speeddat == 0 || pl->speed == 1 || pl->speed == 3)
pl->speeddat = 1;

Loading…
Cancel
Save