From c2e967195c6b5463ead151065b31a57f9861e7ff Mon Sep 17 00:00:00 2001 From: stpohle Date: Sun, 4 Jan 2004 21:58:49 +0000 Subject: [PATCH] illness problem, debuging and fixing.. (hopefully) --- src/packets.c | 9 +++++++-- src/player.c | 14 +++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/packets.c b/src/packets.c index c0642e3..248d158 100644 --- a/src/packets.c +++ b/src/packets.c @@ -630,7 +630,7 @@ do_playerdata (struct pkg_playerdata *p_dat, _net_addr * addr) void do_ill (struct pkg_ill *ill, _net_addr * addr) { - int i; + int i, old_to; if (addr->pl_nr == -1) return; @@ -640,8 +640,13 @@ do_ill (struct pkg_ill *ill, _net_addr * addr) return; for (i = 0; i < PI_max; i++) { + old_to = players[ill->pl_nr].ill[i].to; players[ill->pl_nr].ill[i].to = I32TOF (NTOH32 (ill->to[i])); - d_printf (" to[%d]:%f\n",i, players[ill->pl_nr].ill[i].to); + if (players[ill->pl_nr].ill[i].to <= 0.0f && old_to > 0.0f) + player_clear_ilness (&players[ill->pl_nr], i); + else if (players[ill->pl_nr].ill[i].to > 0.0f && old_to <= 0.0f) + player_set_ilness (&players[ill->pl_nr], i); + d_printf (" to[%d]:%f dataf:%f datai:%d\n",i, players[ill->pl_nr].ill[i].to, players[ill->pl_nr].ill[i].dataf, players[ill->pl_nr].ill[i].datai); } }; diff --git a/src/player.c b/src/player.c index 3cc9245..7b5ad8d 100644 --- a/src/player.c +++ b/src/player.c @@ -1,4 +1,4 @@ -/* $Id: player.c,v 1.59 2004/01/04 21:14:17 stpohle Exp $ +/* $Id: player.c,v 1.60 2004/01/04 21:58:49 stpohle Exp $ * player.c - everything what have to do with the player */ #include @@ -689,7 +689,8 @@ player_set_ilness (_player * p, int t) else type = t; - d_printf ("Ilness : %d\n", type); + type = PI_nobomb; + d_printf ("Ilness Player %s : Type:%d\n", p->name, type); switch (type) { case PI_slow: if (p->ill[type].to <= 0.0f) { @@ -717,11 +718,13 @@ player_set_ilness (_player * p, int t) case PI_range: if (p->ill[type].to == 0) p->ill[type].datai = p->range; + printf ("player_set_ilness PI_range %d\n", p->ill[type].datai); p->range = 1; break; case PI_nobomb: if (p->ill[type].to == 0) p->ill[type].datai = p->bombs_n; + printf ("player_set_ilness PI_nobomb %d\n", p->ill[type].datai); p->bombs_n = s_random (2); break; } @@ -736,19 +739,24 @@ player_clear_ilness (_player * p, int type) { if (type < 0 || type >= PI_max) return; + + d_printf ("player_clear_ilness Player: %s Type: %d\n", p->name, type); + switch (type) { case PI_slow: case PI_fast: p->speed = p->ill[type].dataf; break; case PI_range: + printf ("player_clear_ilness PI_range to %d\n", p->ill[type].datai); p->range = p->ill[type].datai; break; case PI_nobomb: + printf ("player_clear_ilness PI_nobomb to %d\n", p->ill[type].datai); p->bombs_n = p->ill[type].datai; break; } - p->ill[type].to = 0; + p->ill[type].to = 0.0; if (GT_MP) net_game_send_ill (bman.p_nr); bman.updatestatusbar = 1;