From e758bd16d1a0be2c22fde473215d8faeb8088da9 Mon Sep 17 00:00:00 2001 From: stpohle Date: Sat, 17 May 2003 01:12:32 +0000 Subject: [PATCH] some patches because the games would never end --- src/basic.h | 1 + src/game.c | 4 ++-- src/network.c | 3 ++- src/packets.c | 1 + src/player.c | 17 ++++++++--------- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/basic.h b/src/basic.h index 231f8f9..c9f01e0 100644 --- a/src/basic.h +++ b/src/basic.h @@ -13,6 +13,7 @@ #define GAME_SPECIAL_ITEMSROW 0 #define GAME_SPECIAL_ITEMSPUSH 0 #define GAME_SPECIAL_ITEMSKICK 0 +#define EXPLOSION_SAVE_DISTANCE 64 #define START_BOMBS 1 #define START_RANGE 2 diff --git a/src/game.c b/src/game.c index 7b62258..4c69c56 100644 --- a/src/game.c +++ b/src/game.c @@ -51,7 +51,7 @@ game_draw_info () } sprintf (scrtext, "%10s:%2d", bman.players[i].name, bman.players[i].points); - if ((bman.players[i].state & PSFM_alife) != PSFM_alife) { // Player is dead + if (!PS_IS_alife(bman.players[i].state)) { // Player is dead draw_text (x, j, scrtext, 0); if ((bman.players[i].state & PSF_used) != PSF_used) draw_text (x, j, "-------------", 1); @@ -135,8 +135,8 @@ game_loop () } SDL_Flip (gfx.screen); + bman.updatestatusbar = 1; // force an update timestamp = SDL_GetTicks (); // needed for time sync. - d_gamedetail ("GAME START"); draw_players (); diff --git a/src/network.c b/src/network.c index 76a9f1b..cb39c40 100644 --- a/src/network.c +++ b/src/network.c @@ -1,4 +1,4 @@ -/* $Id: network.c,v 1.24 2003/05/15 04:56:15 stpohle Exp $ */ +/* $Id: network.c,v 1.25 2003/05/17 01:12:33 stpohle Exp $ */ /* network routines. */ @@ -614,6 +614,7 @@ net_delplayer (int pl_nr) j = 1; d_printf ("net_delplayer (%d)\n", pl_nr); + bman.updatestatusbar = 1; // force an update if (pl_nr == bman.p_nr) { /* we're not wanted */ diff --git a/src/packets.c b/src/packets.c index 5c19f78..1199fa4 100644 --- a/src/packets.c +++ b/src/packets.c @@ -429,6 +429,7 @@ do_playerdata (struct pkg_playerdata *p_dat, _net_addr * addr) return; d_printf ("do_playerdata (From: %d) p_nr: %d\n", addr->pl_nr, p_dat->p_nr); + bman.updatestatusbar = 1; // force an update pl = &bman.players[p_dat->p_nr]; player_set_gfx (pl, p_dat->gfx_nr); diff --git a/src/player.c b/src/player.c index 55070f6..f009cc7 100644 --- a/src/player.c +++ b/src/player.c @@ -178,11 +178,9 @@ player_check_powerup (_player * p) case FT_sp_row: case FT_sp_push: case FT_sp_kick: - if (p->special==SP_nothing) { - p->special=ft-FT_sp_trigger+1; - field_clear(fx,fy); - bman.updatestatusbar=1; - } + p->special=ft-FT_sp_trigger+1; + field_clear(fx,fy); + bman.updatestatusbar=1; break; } }; @@ -385,9 +383,9 @@ get_player_on (short int x, short int y, int pl_nr[]) for (i = 0, p = 0; p < MAX_PLAYERS; p++) if (PS_IS_alife (bman.players[p].state)) { - if (bman.players[p].pos.x - 42 > x - 256 - && bman.players[p].pos.x + 42 < x + 256 - && bman.players[p].pos.y - 42 > y - 256 && bman.players[p].pos.y + 42 < y + 256) { + if (bman.players[p].pos.x - EXPLOSION_SAVE_DISTANCE > x - 256 + && bman.players[p].pos.x + EXPLOSION_SAVE_DISTANCE < x + 256 + && bman.players[p].pos.y - EXPLOSION_SAVE_DISTANCE > y - 256 && bman.players[p].pos.y + EXPLOSION_SAVE_DISTANCE < y + 256) { pl_nr[i] = p; i++; } @@ -402,7 +400,8 @@ player_died (_player * player, signed char dead_by) // player die ! d_printf ("player_died (%10s)\n", player->name); - + bman.updatestatusbar = 1; // force an update + if (PS_IS_alife (player->state) && dead_by >= 0 && dead_by < MAX_PLAYERS) if (bman.p_nr != dead_by) bman.players[dead_by].points++;