Trigger bomb multiplayer fixed

origin
stpohle 23 years ago
parent 0f8e29b140
commit 987c67ab0e

@ -1,4 +1,4 @@
/* $Id: bomberclone.h,v 1.41 2003/07/12 23:55:08 stpohle Exp $ */
/* $Id: bomberclone.h,v 1.42 2003/07/13 22:49:08 stpohle Exp $ */
/* bomberclone.h */
#ifndef _BOMBERCLONE_H_
@ -293,7 +293,7 @@ extern void init_map_tileset();
// special.c
extern void special_use (int p_nr);
extern void special_pickup (int p_nr, int s_type);
extern void special_loop (int p_nr);
extern void special_loop ();
extern void special_clear (int p_nr);
#endif

@ -202,7 +202,7 @@ game_loop ()
restore_players_screen ();
dead_playerani ();
player_ilness_loop (bman.p_nr);
special_loop(bman.p_nr);
special_loop();
if ((bman.players[bman.p_nr].state & PSFM_alife) == PSFM_alife)
move_player (bman.p_nr);

@ -1,4 +1,4 @@
/* $Id: special.c,v 1.20 2003/07/13 00:08:26 stpohle Exp $ */
/* $Id: special.c,v 1.21 2003/07/13 22:49:08 stpohle Exp $ */
/* special.c - procedues to control the specials */
#include "bomberclone.h"
@ -24,7 +24,6 @@ special_trigger (int p_nr)
if (p_nr == bman.p_nr && GT_MP_PTP && z)
net_game_send_special (p_nr, ex_nr);
if (z) {
bman.last_ex_nr = ex_nr + 6;
p->special.numuse--;
@ -181,57 +180,61 @@ special_pickup (int p_nr, int s_nr)
void
special_clear (int p_nr)
{
if ( bman.players[p_nr].special.type == SP_trigger ) {
_bomb *bomb;
int i;
/* put all bombs to normal and if the timeout is higher as usual
set it to normal */
for (i = 0; i < MAX_BOMBS; i++) {
bomb = &bman.players[p_nr].bombs[i];
if (bomb->state == BS_trigger) {
bomb->state = BS_ticking;
if (bomb->to > BOMB_TIMEOUT * TIME_FACTOR)
bomb->to = BOMB_TIMEOUT * TIME_FACTOR; // 5 Secs * 200
}
}
}
if (bman.players[p_nr].special.type == SP_trigger) {
_bomb *bomb;
int i;
/* put all bombs to normal and if the timeout is higher as usual
set it to normal */
for (i = 0; i < MAX_BOMBS; i++) {
bomb = &bman.players[p_nr].bombs[i];
if (bomb->state == BS_trigger) {
bomb->state = BS_ticking;
if (bomb->to > BOMB_TIMEOUT * TIME_FACTOR)
bomb->to = BOMB_TIMEOUT * TIME_FACTOR; // 5 Secs * 200
}
}
}
bman.players[p_nr].special.type = 0;
bman.updatestatusbar = 1;
}
void
special_loop (int p_nr)
special_loop ()
{
_special *s = &bman.players[p_nr].special;
if (s->use) {
switch (bman.players[p_nr].special.type) {
case SP_trigger:
special_trigger (p_nr);
break;
case SP_row:
if (bman.players[p_nr].m)
special_row (p_nr);
break;
case SP_push:
if (bman.players[p_nr].m)
special_push (p_nr);
break;
case SP_kick:
break;
_special *s;
int p_nr;
for (p_nr = 0; p_nr < MAX_PLAYERS; p_nr++) {
s = &bman.players[p_nr].special;
if (s->use) {
switch (bman.players[p_nr].special.type) {
case SP_trigger:
special_trigger (p_nr);
break;
case SP_row:
if (bman.players[p_nr].m)
special_row (p_nr);
break;
case SP_push:
if (bman.players[p_nr].m)
special_push (p_nr);
break;
case SP_kick:
break;
}
s->use = 0;
}
s->use = 0;
}
if (!s->type)
return;
if (!s->type)
return;
if (s->to) {
s->to--;
if (!s->to)
special_clear (p_nr);
if (s->to) {
s->to--;
if (!s->to)
special_clear (p_nr);
}
}
}
@ -239,5 +242,5 @@ special_loop (int p_nr)
void
special_use (int p_nr)
{
bman.players[p_nr].special.use = 1;
bman.players[p_nr].special.use = 1;
}

Loading…
Cancel
Save