added pkg_special packet for special things... like triggered bombs.. and and and..

origin
stpohle 23 years ago
parent 7e51fff54a
commit 51d259c7e6

@ -899,6 +899,35 @@ do_pkgack (struct pkg_pkgack *p_ack, _net_addr * addr)
rscache_del ();
};
/* Player Special
* moves/bombs... whatever will be send as we use it */
void do_special (struct pkg_special *sp_pkg, _net_addr *addr) {
if (addr->pl_nr == -1)
return;
if (sp_pkg->pl_nr == -1)
return;
/* check if the right player is sending the information */
if (addr->pl_nr != 0 && addr->pl_nr != sp_pkg->pl_nr)
return;
bman.players[sp_pkg->pl_nr].special = sp_pkg->typ;
special_use (sp_pkg->pl_nr);
};
void send_special (_net_addr *addr, int p_nr, int typ) {
struct pkg_special sp_dat;
sp_dat.h.typ = PKG_special;
sp_dat.h.len = sizeof (struct pkg_special);
sp_dat.pl_nr = p_nr;
sp_dat.h.flags = PKGF_ackreq;
send_pkg ((struct pkg *) &sp_dat, addr);
};
void
do_bcmservchat (struct pkg_bcmservchat *packet, _net_addr * addr)

@ -19,6 +19,7 @@ enum _network_data {
PKG_playermove,
PKG_chat,
PKG_ill,
PKG_special,
PKG_bcmservchat = 90
};
@ -223,6 +224,13 @@ struct _inpkg_index {
};
struct pkg_special {
struct pkgheader h;
signed char pl_nr;
unsigned char typ;
};
extern int do_error (struct pkg_error *data, _net_addr *addr);
extern void do_playerid (struct pkg_playerid *p_id, _net_addr *addr);
extern void do_servermode (struct pkg_servermode *s_mod, _net_addr *addr);
@ -241,7 +249,7 @@ extern void do_chat (struct pkg_chat *chat_pkg, _net_addr *addr);
extern int do_pkg (struct pkg *packet, _net_addr *addr);
extern void do_bcmservchat (struct pkg_bcmservchat *packet, _net_addr *addr);
extern void do_ill (struct pkg_ill *ill_pkg, _net_addr *addr);
extern void do_special (struct pkg_special *sp_pkg, _net_addr *addr);
extern void send_pkg (struct pkg *packet, _net_addr *addr);
extern void send_playerid (_net_addr *addr, char *name, char *pladdr, char *plport, int p_nr, int gfx_nr);
@ -260,6 +268,7 @@ extern void send_playerstatus (_net_addr *addr, int pl_nr, int net_istep, int st
extern void send_pkgack (_net_addr *addr, unsigned char typ, short int id);
extern void send_chat (_net_addr *addr, char *text);
extern void send_ill (_net_addr *addr, int p_nr, _player *pl);
extern void send_special (_net_addr *addr, int p_nr, int typ);
extern int get_player_nr (char *host, char *port);
extern int inpkg_check (unsigned char typ, short int id, _net_addr *addr);

Loading…
Cancel
Save