From b6cb595011c31cd2e1e8fd0f6aa32e2353e7b469 Mon Sep 17 00:00:00 2001 From: stpohle Date: Sat, 7 Jun 2003 19:52:45 +0000 Subject: [PATCH] Debug Messages because of the crash --- src/bomb.c | 145 +++++++++++++++++++++++++++------------------------- src/field.c | 11 +--- 2 files changed, 77 insertions(+), 79 deletions(-) diff --git a/src/bomb.c b/src/bomb.c index 44174a7..816b1fa 100644 --- a/src/bomb.c +++ b/src/bomb.c @@ -11,15 +11,16 @@ draw_bomb (_bomb * bomb) { SDL_Rect src, dest; - int x=bomb->pos.x >> 8, - y= bomb->pos.y >> 8; - - if (x < 0 || y < 0 || x >= bman.fieldsize.x || y >= bman.fieldsize.y) { - d_fatal ("Draw Bomb out of range [%d,%d]\n", x,y); - return; - } - - if (bomb->state != BS_trigger || ((bomb->state == BS_trigger) && (bomb->topos.x >> 8, + y = bomb->pos.y >> 8; + + if (x < 0 || y < 0 || x >= bman.fieldsize.x || y >= bman.fieldsize.y) { + d_fatal ("Draw Bomb out of range [%d,%d]\n", x, y); + return; + } + + if (bomb->state != BS_trigger + || ((bomb->state == BS_trigger) && (bomb->to < BOMB_TIMEOUT * TIME_FACTOR))) { /* check the framenumber */ if (bomb->frameto-- == 0) { bomb->frameto = ANI_BOMBTIMEOUT; @@ -33,8 +34,8 @@ draw_bomb (_bomb * bomb) dest.w = src.w = gfx.bomb.image->w; dest.h = src.h = gfx.block.y; - dest.x = gfx.offset.x + (x* gfx.block.x); - dest.y = gfx.offset.y + (y* gfx.block.y); + dest.x = gfx.offset.x + (x * gfx.block.x); + dest.y = gfx.offset.y + (y * gfx.block.y); src.x = 0; src.y = src.h * bomb->frame; @@ -62,39 +63,44 @@ bomb_explode (int p, int b, int net) bomb->firer[d] = 0; bomb->firerst[d] = -1; } - - if (GT_MP_PTPM && net) /* from now on only the server let the bomb explode */ + + if (GT_MP_PTPM && net) /* from now on only the server let the bomb explode */ net_game_send_bomb (p, b); - - snd_play (SND_explode); + + snd_play (SND_explode); }; void -bomb_move (_bomb *bomb) +bomb_move (_bomb * bomb) { _point npos; - if (bomb->pos.x==bomb->moveto.x) { - if (bomb->pos.y==bomb->moveto.y) { - bomb->moves=0;return;} - if (bomb->pos.y>bomb->moveto.y) { - npos.y=bomb->pos.y-bomb->moves; //move bomb up - npos.x=bomb->pos.x; - } else { - npos.y=bomb->pos.y+bomb->moves; // move bomb down - npos.x=bomb->pos.x; - } - } else { - if (bomb->pos.x>bomb->moveto.x) { - npos.x=bomb->pos.x-bomb->moves; //move bomb left - npos.y=bomb->pos.y; - } else { - npos.x=bomb->pos.x+bomb->moves; // move bomb right - npos.y=bomb->pos.y; - } - } + if (bomb->pos.x == bomb->moveto.x) { + if (bomb->pos.y == bomb->moveto.y) { + bomb->moves = 0; + return; + } + if (bomb->pos.y > bomb->moveto.y) { + npos.y = bomb->pos.y - bomb->moves; //move bomb up + npos.x = bomb->pos.x; + } + else { + npos.y = bomb->pos.y + bomb->moves; // move bomb down + npos.x = bomb->pos.x; + } + } + else { + if (bomb->pos.x > bomb->moveto.x) { + npos.x = bomb->pos.x - bomb->moves; //move bomb left + npos.y = bomb->pos.y; + } + else { + npos.x = bomb->pos.x + bomb->moves; // move bomb right + npos.y = bomb->pos.y; + } + } } - + int bomb_loop () { @@ -109,30 +115,30 @@ bomb_loop () if ((bman.players[p].state & PSFM_used) != 0) { for (i = 0; i < MAX_BOMBS; i++) { bomb = &player->bombs[i]; - switch (bomb->state){ - case BS_ticking: - case BS_trigger: + switch (bomb->state) { + case BS_ticking: + case BS_trigger: if (GT_MP_PTPM || bman.gametype == GT_single) { - if (--bomb->to == 0) // bomb will have to explode in the next loop + if (--bomb->to == 0) // bomb will have to explode in the next loop bomb_explode (p, i, 1); else draw_bomb (bomb); } else { if (--bomb->to == 0) { // bomb did not explode -> resend bombdata - if (bomb->state==BS_ticking) - bomb->to = BOMB_TIMEOUT * TIME_FACTOR; - else - bomb->to = SPECIAL_TRIGGER_TIMEOUT * TIME_FACTOR; + if (bomb->state == BS_ticking) + bomb->to = BOMB_TIMEOUT * TIME_FACTOR; + else + bomb->to = SPECIAL_TRIGGER_TIMEOUT * TIME_FACTOR; net_game_send_bomb (bman.p_nr, i); bomb->to = bomb->to + ((2 * RESENDCACHE_RETRY) / TIME_FACTOR); } draw_bomb (bomb); } -// if (bomb->moves>0) bomb_move(bomb); +// if (bomb->moves>0) bomb_move(bomb); b++; // Count ticking Bombs for Return value break; - case BS_exploding: + case BS_exploding: if (bomb->to > 0) { do_explosion (p, i); } @@ -143,8 +149,8 @@ bomb_loop () } bomb->to--; b++; - break; - } + break; + } } } } @@ -163,8 +169,8 @@ get_bomb_on (int x, int y, _point bombs[]) if ((bman.players[p].state & PSFM_used) != 0) { for (b = 0; b < MAX_BOMBS; b++) { bomb = &bman.players[p].bombs[b]; - if (bomb->state == BS_ticking || bomb->state==BS_trigger) { - if (bomb->pos.x >>8 == x && bomb->pos.y>>8 == y) { + if (bomb->state == BS_ticking || bomb->state == BS_trigger) { + if (bomb->pos.x >> 8 == x && bomb->pos.y >> 8 == y) { bombs[i].x = p; bombs[i].y = b; i++; @@ -209,11 +215,11 @@ restore_explosion (_bomb * bomb) dy = 0; int _x, _y; - _point bpos; - - bpos.x = bomb->pos.x >> 8; - bpos.y = bomb->pos.y >> 8; - + _point bpos; + + bpos.x = bomb->pos.x >> 8; + bpos.y = bomb->pos.y >> 8; + for (d = 0; d < 4; d++) { switch (d) { case (left): @@ -278,7 +284,7 @@ restore_explosion (_bomb * bomb) gfx.block.x * (bomb->firer[up] + bomb->firer[down] + 1)); /* delete field from the bfield map */ - bman.bfield[bpos.x ][bpos.y] = 0; + bman.bfield[bpos.x][bpos.y] = 0; }; @@ -326,9 +332,9 @@ explosion_check_field (int x, int y, int p, int b) if (bman.field[x][y].frame == 0) { bman.field[x][y].frameto = ANI_STONETIMEOUT; bman.field[x][y].frame = 1; - - draw_stone (x, y); - field_update(x, y); + + draw_stone (x, y); + field_update (x, y); } return bman.field[x][y].type; @@ -343,11 +349,12 @@ draw_explosion (_bomb * bomb) r, dx, dy; - _point p, bpos; + _point p, + bpos; + + bpos.x = bomb->pos.x >> 8; + bpos.y = bomb->pos.y >> 8; - bpos.x = bomb->pos.x >> 8; - bpos.y = bomb->pos.y >> 8; - bomb->frameto--; if (bomb->frameto < 0 || bomb->frameto > ANI_FIRETIMEOUT) bomb->frameto = ANI_FIRETIMEOUT; @@ -395,11 +402,11 @@ do_explosion (int p, int b) int dx = 0, dy = 0, d; - _point bpos; - - bpos.x = bomb->pos.x >> 8; - bpos.y = bomb->pos.y >> 8; - + _point bpos; + + bpos.x = bomb->pos.x >> 8; + bpos.y = bomb->pos.y >> 8; + for (d = 0; d < 4; d++) { switch (d) { case (left): @@ -434,7 +441,7 @@ do_explosion (int p, int b) } else { bomb->firerst[d] = bomb->firer[d]; - draw_stone (bpos.x + dx, bpos.y + dy); + draw_stone (bpos.x + dx, bpos.y + dy); } } } diff --git a/src/field.c b/src/field.c index 48ae205..a009bd3 100644 --- a/src/field.c +++ b/src/field.c @@ -1,4 +1,4 @@ -/* $Id: field.c,v 1.31 2003/06/07 19:35:42 stpohle Exp $ */ +/* $Id: field.c,v 1.32 2003/06/07 19:52:45 stpohle Exp $ */ /* field.c - procedures which are needed to control the field */ #include @@ -24,8 +24,6 @@ draw_stone (int x, int y) return; } - printf ("Draw Stone [%d,%d]\n", x,y); - src.w = dest.w = gfx.block.x; src.h = dest.h = gfx.block.y; @@ -43,8 +41,6 @@ draw_stone (int x, int y) srcbg.x = (x % gfx.field[FT_nothing].frames) * gfx.block.x; srcbg.y = (y % gfx.field[FT_nothing].frames) * gfx.block.y; - printf (" Draw Background\n"); - SDL_BlitSurface (gfx.field[FT_nothing].image, &srcbg, gfx.screen, &dest); } @@ -91,27 +87,22 @@ draw_stone (int x, int y) src.y = stone->frame * gfx.block.y; } - printf (" Draw Stone or Powerup Background Type=%d i=%d d=%d\n", stone->type, i, d); if (srcimg != NULL) SDL_BlitSurface (srcimg, &src, gfx.screen, &dest); if (i >= FT_death) { /* draw now the powerup itself */ - printf (" Draw Stone the Powerup itself\n"); srcimg = gfx.field[i].image; src.y = 0; SDL_BlitSurface (srcimg, &src, gfx.screen, &dest); } // draw explosions if there is any - printf (" Draw Explosion if there is any\n"); for (d = 0, i = 0; d < 4; d++) if (stone->ex[d].count > 0) { i = 1; // mark that there is already an explosion draw_fire (x, y, d, -1); } - printf (" function ok.\n"); - return; };