respawn finally working weell

origin
stpohle 22 years ago
parent 5842d80f24
commit 4c84a21b23

@ -1,4 +1,4 @@
/* $Id: single.c,v 1.55 2004/01/27 21:13:45 stpohle Exp $ */ /* $Id: single.c,v 1.56 2004/01/28 18:19:12 stpohle Exp $ */
/* single player */ /* single player */
#include "basic.h" #include "basic.h"
@ -265,7 +265,10 @@ ai_bombpoints (_point pos, int range)
p = pos; p = pos;
for (r = 0; (r < range && (map.field[p.x][p.y].type == FT_nothing || map.field[p.x][p.y].type == FT_tunnel)); r++) { for (r = 0;
(r < range
&& (map.field[p.x][p.y].type == FT_nothing
|| map.field[p.x][p.y].type == FT_tunnel)); r++) {
p.x += m.x; p.x += m.x;
p.y += m.y; p.y += m.y;
} }
@ -375,7 +378,6 @@ ai_findnearbombs (_point pos)
{ {
int d, int d,
res = 0, // result if there is a bomb res = 0, // result if there is a bomb
done = 0; done = 0;
_point m[4]; // direction addition _point m[4]; // direction addition
_point dist[4]; // to check every direction (on three ways) _point dist[4]; // to check every direction (on three ways)
@ -541,8 +543,11 @@ ai_checknewpos (_point pos, int d)
/* delete single players from the game */ /* delete single players from the game */
void single_delete_ai (int num_players) { void
int p, count; single_delete_ai (int num_players)
{
int p,
count;
for (p = 0, count = 0; p < MAX_PLAYERS && count < num_players; p++) { for (p = 0, count = 0; p < MAX_PLAYERS && count < num_players; p++) {
if (PS_IS_aiplayer (players[p].state)) { if (PS_IS_aiplayer (players[p].state)) {
@ -648,7 +653,8 @@ single_loop ()
return; return;
for (p = 0; p < MAX_PLAYERS; p++) for (p = 0; p < MAX_PLAYERS; p++)
if (p != bman.p_nr && PS_IS_alife (players[p].state) && PS_IS_aiplayer(players[p].state)) { if (p != bman.p_nr && PS_IS_aiplayer (players[p].state)) {
if (PS_IS_alife (players[p].state)) {
pl = &players[p]; pl = &players[p];
i = ai_checkpos (pl, &plpos); i = ai_checkpos (pl, &plpos);
@ -692,9 +698,12 @@ single_loop ()
pl->m = 1; pl->m = 1;
} }
player_ilness_loop (p); player_ilness_loop (p);
player_checkdeath (p);
move_player (p); move_player (p);
} }
else
player_checkdeath (p);
}
}; };
@ -702,12 +711,18 @@ single_loop ()
void void
single_menu () single_menu ()
{ {
int menuselect = 0, i, p, done = 0; int menuselect = 0,
i,
p,
done = 0;
_charlist nrplayerlist[MAX_PLAYERS + 1]; _charlist nrplayerlist[MAX_PLAYERS + 1];
_charlist *selnrplayer = &nrplayerlist[bman.ai_players]; _charlist *selnrplayer = &nrplayerlist[bman.ai_players];
/* fill in the nrplayerlist */ /* fill in the nrplayerlist */
if (debug) p = 0; else p = 1; if (debug)
p = 0;
else
p = 1;
for (i = 0; p < MAX_PLAYERS + 1; i++) { for (i = 0; p < MAX_PLAYERS + 1; i++) {
sprintf (nrplayerlist[i].text, "%d", p); sprintf (nrplayerlist[i].text, "%d", p);
if (p < MAX_PLAYERS - 1) if (p < MAX_PLAYERS - 1)
@ -832,7 +847,9 @@ single_select_player ()
src1.w = dest1.w = gfx.players[newplayer].ani.w; src1.w = dest1.w = gfx.players[newplayer].ani.w;
src1.x = gfx.players[newplayer].ani.w * d; src1.x = gfx.players[newplayer].ani.w * d;
src1.y = gfx.players[newplayer].ani.h * frame; src1.y = gfx.players[newplayer].ani.h * frame;
dest1.x = ((gfx.res.x - gfx.players[newplayer].ani.w) / 2) + ((gfx.res.x / 2)+ 128) - pos; dest1.x =
((gfx.res.x - gfx.players[newplayer].ani.w) / 2) + ((gfx.res.x / 2) + 128) -
pos;
dest1.y = y + font[0].size.y + 64; dest1.y = y + font[0].size.y + 64;
} }
else { else {
@ -849,7 +866,9 @@ single_select_player ()
src1.w = dest1.w = gfx.players[newplayer].ani.w; src1.w = dest1.w = gfx.players[newplayer].ani.w;
src1.x = gfx.players[newplayer].ani.w * d; src1.x = gfx.players[newplayer].ani.w * d;
src1.y = gfx.players[newplayer].ani.h * frame; src1.y = gfx.players[newplayer].ani.h * frame;
dest1.x = ((gfx.res.x - gfx.players[newplayer].ani.w) / 2) - ((gfx.res.x / 2)+ 128) + pos; dest1.x =
((gfx.res.x - gfx.players[newplayer].ani.w) / 2) - ((gfx.res.x / 2) + 128) +
pos;
dest1.y = y + font[0].size.y + 64; dest1.y = y + font[0].size.y + 64;
} }
@ -918,7 +937,8 @@ single_select_player ()
d = right; d = right;
} }
if ((keys[SDLK_RETURN] ||keys[SDLK_RCTRL] || keys[SDLK_LCTRL]) && (!keypressed) && (event.type = SDL_KEYDOWN) && newplayer == -1) { if ((keys[SDLK_RETURN] || keys[SDLK_RCTRL] || keys[SDLK_LCTRL]) && (!keypressed)
&& (event.type = SDL_KEYDOWN) && newplayer == -1) {
done = 1; done = 1;
keypressed = 1; keypressed = 1;
// d_printf("return pressed - done=1\n"); // d_printf("return pressed - done=1\n");

Loading…
Cancel
Save