Debug Messages because of the crash

origin
stpohle 23 years ago
parent 5839c3b3be
commit b6cb595011

@ -11,15 +11,16 @@ draw_bomb (_bomb * bomb)
{ {
SDL_Rect src, SDL_Rect src,
dest; dest;
int x=bomb->pos.x >> 8, int x = bomb->pos.x >> 8,
y= bomb->pos.y >> 8; y = bomb->pos.y >> 8;
if (x < 0 || y < 0 || x >= bman.fieldsize.x || y >= bman.fieldsize.y) { 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); d_fatal ("Draw Bomb out of range [%d,%d]\n", x, y);
return; return;
} }
if (bomb->state != BS_trigger || ((bomb->state == BS_trigger) && (bomb->to<BOMB_TIMEOUT*TIME_FACTOR))) { if (bomb->state != BS_trigger
|| ((bomb->state == BS_trigger) && (bomb->to < BOMB_TIMEOUT * TIME_FACTOR))) {
/* check the framenumber */ /* check the framenumber */
if (bomb->frameto-- == 0) { if (bomb->frameto-- == 0) {
bomb->frameto = ANI_BOMBTIMEOUT; bomb->frameto = ANI_BOMBTIMEOUT;
@ -33,8 +34,8 @@ draw_bomb (_bomb * bomb)
dest.w = src.w = gfx.bomb.image->w; dest.w = src.w = gfx.bomb.image->w;
dest.h = src.h = gfx.block.y; dest.h = src.h = gfx.block.y;
dest.x = gfx.offset.x + (x* gfx.block.x); dest.x = gfx.offset.x + (x * gfx.block.x);
dest.y = gfx.offset.y + (y* gfx.block.y); dest.y = gfx.offset.y + (y * gfx.block.y);
src.x = 0; src.x = 0;
src.y = src.h * bomb->frame; src.y = src.h * bomb->frame;
@ -63,36 +64,41 @@ bomb_explode (int p, int b, int net)
bomb->firerst[d] = -1; 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); net_game_send_bomb (p, b);
snd_play (SND_explode); snd_play (SND_explode);
}; };
void void
bomb_move (_bomb *bomb) bomb_move (_bomb * bomb)
{ {
_point npos; _point npos;
if (bomb->pos.x==bomb->moveto.x) { if (bomb->pos.x == bomb->moveto.x) {
if (bomb->pos.y==bomb->moveto.y) { if (bomb->pos.y == bomb->moveto.y) {
bomb->moves=0;return;} bomb->moves = 0;
if (bomb->pos.y>bomb->moveto.y) { return;
npos.y=bomb->pos.y-bomb->moves; //move bomb up }
npos.x=bomb->pos.x; if (bomb->pos.y > bomb->moveto.y) {
} else { npos.y = bomb->pos.y - bomb->moves; //move bomb up
npos.y=bomb->pos.y+bomb->moves; // move bomb down npos.x = bomb->pos.x;
npos.x=bomb->pos.x; }
} else {
} else { npos.y = bomb->pos.y + bomb->moves; // move bomb down
if (bomb->pos.x>bomb->moveto.x) { npos.x = bomb->pos.x;
npos.x=bomb->pos.x-bomb->moves; //move bomb left }
npos.y=bomb->pos.y; }
} else { else {
npos.x=bomb->pos.x+bomb->moves; // move bomb right if (bomb->pos.x > bomb->moveto.x) {
npos.y=bomb->pos.y; 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 int
@ -109,30 +115,30 @@ bomb_loop ()
if ((bman.players[p].state & PSFM_used) != 0) { if ((bman.players[p].state & PSFM_used) != 0) {
for (i = 0; i < MAX_BOMBS; i++) { for (i = 0; i < MAX_BOMBS; i++) {
bomb = &player->bombs[i]; bomb = &player->bombs[i];
switch (bomb->state){ switch (bomb->state) {
case BS_ticking: case BS_ticking:
case BS_trigger: case BS_trigger:
if (GT_MP_PTPM || bman.gametype == GT_single) { 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); bomb_explode (p, i, 1);
else else
draw_bomb (bomb); draw_bomb (bomb);
} }
else { else {
if (--bomb->to == 0) { // bomb did not explode -> resend bombdata if (--bomb->to == 0) { // bomb did not explode -> resend bombdata
if (bomb->state==BS_ticking) if (bomb->state == BS_ticking)
bomb->to = BOMB_TIMEOUT * TIME_FACTOR; bomb->to = BOMB_TIMEOUT * TIME_FACTOR;
else else
bomb->to = SPECIAL_TRIGGER_TIMEOUT * TIME_FACTOR; bomb->to = SPECIAL_TRIGGER_TIMEOUT * TIME_FACTOR;
net_game_send_bomb (bman.p_nr, i); net_game_send_bomb (bman.p_nr, i);
bomb->to = bomb->to + ((2 * RESENDCACHE_RETRY) / TIME_FACTOR); bomb->to = bomb->to + ((2 * RESENDCACHE_RETRY) / TIME_FACTOR);
} }
draw_bomb (bomb); draw_bomb (bomb);
} }
// if (bomb->moves>0) bomb_move(bomb); // if (bomb->moves>0) bomb_move(bomb);
b++; // Count ticking Bombs for Return value b++; // Count ticking Bombs for Return value
break; break;
case BS_exploding: case BS_exploding:
if (bomb->to > 0) { if (bomb->to > 0) {
do_explosion (p, i); do_explosion (p, i);
} }
@ -143,8 +149,8 @@ bomb_loop ()
} }
bomb->to--; bomb->to--;
b++; b++;
break; break;
} }
} }
} }
} }
@ -163,8 +169,8 @@ get_bomb_on (int x, int y, _point bombs[])
if ((bman.players[p].state & PSFM_used) != 0) { if ((bman.players[p].state & PSFM_used) != 0) {
for (b = 0; b < MAX_BOMBS; b++) { for (b = 0; b < MAX_BOMBS; b++) {
bomb = &bman.players[p].bombs[b]; bomb = &bman.players[p].bombs[b];
if (bomb->state == BS_ticking || bomb->state==BS_trigger) { if (bomb->state == BS_ticking || bomb->state == BS_trigger) {
if (bomb->pos.x >>8 == x && bomb->pos.y>>8 == y) { if (bomb->pos.x >> 8 == x && bomb->pos.y >> 8 == y) {
bombs[i].x = p; bombs[i].x = p;
bombs[i].y = b; bombs[i].y = b;
i++; i++;
@ -209,10 +215,10 @@ restore_explosion (_bomb * bomb)
dy = 0; dy = 0;
int _x, int _x,
_y; _y;
_point bpos; _point bpos;
bpos.x = bomb->pos.x >> 8; bpos.x = bomb->pos.x >> 8;
bpos.y = bomb->pos.y >> 8; bpos.y = bomb->pos.y >> 8;
for (d = 0; d < 4; d++) { for (d = 0; d < 4; d++) {
switch (d) { switch (d) {
@ -278,7 +284,7 @@ restore_explosion (_bomb * bomb)
gfx.block.x * (bomb->firer[up] + bomb->firer[down] + 1)); gfx.block.x * (bomb->firer[up] + bomb->firer[down] + 1));
/* delete field from the bfield map */ /* delete field from the bfield map */
bman.bfield[bpos.x ][bpos.y] = 0; bman.bfield[bpos.x][bpos.y] = 0;
}; };
@ -327,8 +333,8 @@ explosion_check_field (int x, int y, int p, int b)
bman.field[x][y].frameto = ANI_STONETIMEOUT; bman.field[x][y].frameto = ANI_STONETIMEOUT;
bman.field[x][y].frame = 1; bman.field[x][y].frame = 1;
draw_stone (x, y); draw_stone (x, y);
field_update(x, y); field_update (x, y);
} }
return bman.field[x][y].type; return bman.field[x][y].type;
@ -343,10 +349,11 @@ draw_explosion (_bomb * bomb)
r, r,
dx, dx,
dy; dy;
_point p, bpos; _point p,
bpos;
bpos.x = bomb->pos.x >> 8; bpos.x = bomb->pos.x >> 8;
bpos.y = bomb->pos.y >> 8; bpos.y = bomb->pos.y >> 8;
bomb->frameto--; bomb->frameto--;
if (bomb->frameto < 0 || bomb->frameto > ANI_FIRETIMEOUT) if (bomb->frameto < 0 || bomb->frameto > ANI_FIRETIMEOUT)
@ -395,10 +402,10 @@ do_explosion (int p, int b)
int dx = 0, int dx = 0,
dy = 0, dy = 0,
d; d;
_point bpos; _point bpos;
bpos.x = bomb->pos.x >> 8; bpos.x = bomb->pos.x >> 8;
bpos.y = bomb->pos.y >> 8; bpos.y = bomb->pos.y >> 8;
for (d = 0; d < 4; d++) { for (d = 0; d < 4; d++) {
switch (d) { switch (d) {
@ -434,7 +441,7 @@ do_explosion (int p, int b)
} }
else { else {
bomb->firerst[d] = bomb->firer[d]; bomb->firerst[d] = bomb->firer[d];
draw_stone (bpos.x + dx, bpos.y + dy); draw_stone (bpos.x + dx, bpos.y + dy);
} }
} }
} }

@ -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 */ /* field.c - procedures which are needed to control the field */
#include <stdlib.h> #include <stdlib.h>
@ -24,8 +24,6 @@ draw_stone (int x, int y)
return; return;
} }
printf ("Draw Stone [%d,%d]\n", x,y);
src.w = dest.w = gfx.block.x; src.w = dest.w = gfx.block.x;
src.h = dest.h = gfx.block.y; 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.x = (x % gfx.field[FT_nothing].frames) * gfx.block.x;
srcbg.y = (y % gfx.field[FT_nothing].frames) * gfx.block.y; 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); 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; 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) if (srcimg != NULL)
SDL_BlitSurface (srcimg, &src, gfx.screen, &dest); SDL_BlitSurface (srcimg, &src, gfx.screen, &dest);
if (i >= FT_death) { /* draw now the powerup itself */ if (i >= FT_death) { /* draw now the powerup itself */
printf (" Draw Stone the Powerup itself\n");
srcimg = gfx.field[i].image; srcimg = gfx.field[i].image;
src.y = 0; src.y = 0;
SDL_BlitSurface (srcimg, &src, gfx.screen, &dest); SDL_BlitSurface (srcimg, &src, gfx.screen, &dest);
} }
// draw explosions if there is any // draw explosions if there is any
printf (" Draw Explosion if there is any\n");
for (d = 0, i = 0; d < 4; d++) for (d = 0, i = 0; d < 4; d++)
if (stone->ex[d].count > 0) { if (stone->ex[d].count > 0) {
i = 1; // mark that there is already an explosion i = 1; // mark that there is already an explosion
draw_fire (x, y, d, -1); draw_fire (x, y, d, -1);
} }
printf (" function ok.\n");
return; return;
}; };

Loading…
Cancel
Save