bfield was not set right for the incoming data packet

origin
stpohle 23 years ago
parent 5910f4ea59
commit 90b5907ffc

@ -603,8 +603,11 @@ do_bombdata (struct pkg_bombdata *b_dat, _net_addr * addr)
&& b_dat->state != BS_exploding) && b_dat->state != BS_exploding)
d_printf ("do_bombdata WARNING : bomb explosion haven't finished\n"); d_printf ("do_bombdata WARNING : bomb explosion haven't finished\n");
if (bomb->state == BS_ticking && b_dat->state == BS_ticking) { // handle push & kick special if ((bomb->state == BS_ticking || bomb->state == BS_trigger) && (b_dat->state == BS_ticking || b_dat->state == BS_trigger)) { // handle push & kick special
bman.bfield[(bomb->pos.x >> 8)][(bomb->pos.y >> 8)] = 0; //remove bomb at old location if (bomb->move)
bman.bfield[(bomb->pos.x >> 8)][(bomb->pos.y >> 8)] = 0; //remove bomb at old location
else
bman.bfield[(bomb->pos.x >> 8)][(bomb->pos.y >> 8)] = 1; //set bomb at position
draw_stone (bomb->pos.x >> 8, bomb->pos.y >> 8); draw_stone (bomb->pos.x >> 8, bomb->pos.y >> 8);
field_update (bomb->pos.x >> 8, bomb->pos.y >> 8); field_update (bomb->pos.x >> 8, bomb->pos.y >> 8);
} }
@ -614,10 +617,10 @@ do_bombdata (struct pkg_bombdata *b_dat, _net_addr * addr)
bomb->pos.x = b_dat->x; bomb->pos.x = b_dat->x;
bomb->pos.y = b_dat->y; bomb->pos.y = b_dat->y;
if (bomb->state != BS_ticking) bomb->to = b_dat->to;
bomb->to = b_dat->to;
else bman.bfield[bomb->pos.x >> 8][bomb->pos.y >> 8] = 1; // keep the bfield up to date
bman.bfield[bomb->pos.x >> 8][bomb->pos.y >> 8] = 1; // keep the bfield up to date
bomb->r = b_dat->r; bomb->r = b_dat->r;
bomb->ex_nr = b_dat->ex_nr; bomb->ex_nr = b_dat->ex_nr;
bomb->state = b_dat->state; bomb->state = b_dat->state;

Loading…
Cancel
Save