|
|
@ -324,7 +324,8 @@ void
|
|
|
|
send_field (_net_addr * addr, int x, int y, _field * field)
|
|
|
|
send_field (_net_addr * addr, int x, int y, _field * field)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct pkg_field f_dat;
|
|
|
|
struct pkg_field f_dat;
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
d_printf ("send_field [%d,%d]\n", x, y);
|
|
|
|
d_printf ("send_field [%d,%d]\n", x, y);
|
|
|
|
|
|
|
|
|
|
|
|
f_dat.h.typ = PKG_field;
|
|
|
|
f_dat.h.typ = PKG_field;
|
|
|
@ -337,8 +338,10 @@ send_field (_net_addr * addr, int x, int y, _field * field)
|
|
|
|
if (x < 0 || x >= map.size.x || y < 0 || y >= map.size.y)
|
|
|
|
if (x < 0 || x >= map.size.x || y < 0 || y >= map.size.y)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
memcpy (&f_dat.ex, &map.field[x][y].ex, 4*sizeof (_ex_field));
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
|
|
|
|
|
f_dat.ex[i].count = map.field[x][y].ex[i].count;
|
|
|
|
|
|
|
|
f_dat.ex[i].frame = (int)map.field[x][y].ex[i].frame;
|
|
|
|
|
|
|
|
}
|
|
|
|
f_dat.type = map.field[x][y].type;
|
|
|
|
f_dat.type = map.field[x][y].type;
|
|
|
|
f_dat.mixframe = map.field[x][y].mixframe;
|
|
|
|
f_dat.mixframe = map.field[x][y].mixframe;
|
|
|
|
f_dat.special = map.field[x][y].special;
|
|
|
|
f_dat.special = map.field[x][y].special;
|
|
|
@ -352,6 +355,8 @@ send_field (_net_addr * addr, int x, int y, _field * field)
|
|
|
|
void
|
|
|
|
void
|
|
|
|
do_field (struct pkg_field *f_dat, _net_addr * addr)
|
|
|
|
do_field (struct pkg_field *f_dat, _net_addr * addr)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
|
|
if (addr->pl_nr == -1)
|
|
|
|
if (addr->pl_nr == -1)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
@ -360,7 +365,10 @@ do_field (struct pkg_field *f_dat, _net_addr * addr)
|
|
|
|
map.field[f_dat->x][f_dat->y].type = f_dat->type;
|
|
|
|
map.field[f_dat->x][f_dat->y].type = f_dat->type;
|
|
|
|
map.field[f_dat->x][f_dat->y].mixframe = f_dat->mixframe;
|
|
|
|
map.field[f_dat->x][f_dat->y].mixframe = f_dat->mixframe;
|
|
|
|
map.field[f_dat->x][f_dat->y].special = f_dat->special;
|
|
|
|
map.field[f_dat->x][f_dat->y].special = f_dat->special;
|
|
|
|
memcpy (&map.field[f_dat->x][f_dat->y].ex, &f_dat->ex, 4*sizeof (_ex_field));
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
|
|
|
|
|
map.field[f_dat->x][f_dat->y].ex[i].count = f_dat->ex[i].count;
|
|
|
|
|
|
|
|
map.field[f_dat->x][f_dat->y].ex[i].frame = f_dat->ex[i].frame;
|
|
|
|
|
|
|
|
}
|
|
|
|
map.field[f_dat->x][f_dat->y].frame = I16TOF (NTOH16 (f_dat->frame));
|
|
|
|
map.field[f_dat->x][f_dat->y].frame = I16TOF (NTOH16 (f_dat->frame));
|
|
|
|
map.field[f_dat->x][f_dat->y].ex_nr = NTOH32 (f_dat->ex_nr);
|
|
|
|
map.field[f_dat->x][f_dat->y].ex_nr = NTOH32 (f_dat->ex_nr);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -856,8 +864,10 @@ send_fieldline (_net_addr * addr, int line)
|
|
|
|
f_dat.special[i] = map.field[i][line].special;
|
|
|
|
f_dat.special[i] = map.field[i][line].special;
|
|
|
|
map.field[i][line].frame = 0.0f;
|
|
|
|
map.field[i][line].frame = 0.0f;
|
|
|
|
map.field[i][line].ex_nr = 0;
|
|
|
|
map.field[i][line].ex_nr = 0;
|
|
|
|
for (j = 0; j < 4; j++)
|
|
|
|
for (j = 0; j < 4; j++) {
|
|
|
|
map.field[i][line].ex[j].frame = map.field[i][line].ex[j].count = 0;
|
|
|
|
map.field[i][line].ex[j].frame = 0.0f;
|
|
|
|
|
|
|
|
map.field[i][line].ex[j].count = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
send_pkg ((struct pkg *) &f_dat, addr);
|
|
|
|
send_pkg ((struct pkg *) &f_dat, addr);
|
|
|
|
};
|
|
|
|
};
|
|
|
@ -890,8 +900,10 @@ do_fieldline (struct pkg_fieldline *f_dat, _net_addr * addr)
|
|
|
|
map.field[i][f_dat->line].type = f_dat->type[i];
|
|
|
|
map.field[i][f_dat->line].type = f_dat->type[i];
|
|
|
|
map.field[i][f_dat->line].special = f_dat->special[i];
|
|
|
|
map.field[i][f_dat->line].special = f_dat->special[i];
|
|
|
|
map.field[i][f_dat->line].frame = 0.0f;
|
|
|
|
map.field[i][f_dat->line].frame = 0.0f;
|
|
|
|
for (d = 0; d < 4; d++)
|
|
|
|
for (d = 0; d < 4; d++) {
|
|
|
|
map.field[i][f_dat->line].ex[d].frame = map.field[i][f_dat->line].ex[d].count = 0;
|
|
|
|
map.field[i][f_dat->line].ex[d].frame = 0.0f;
|
|
|
|
|
|
|
|
map.field[i][f_dat->line].ex[d].count = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|