player_findfreebomb, trigger+bombdropping illness bug, row dropping bug fixed

origin
stpohle 23 years ago
parent 83045c7d2c
commit 59087cdfc3

@ -1,5 +1,13 @@
Version 0.9.9 Version 0.9.9
============= =============
fix2
- fixed: player_findfreebomb
- trigger bomb + bomblaying illness have
let explode always a bomb at your place.
- sometimes you can drop more bombs as
allowed if you have to row-special
2003-06-21: fix1 2003-06-21: fix1
- fixed: bombs can only dropped on an empty field. Bug - fixed: bombs can only dropped on an empty field. Bug
came with version 0.9.9 came with version 0.9.9

25
TODO

@ -1,11 +1,26 @@
this version (fix2):
====================
- network selection menu, there have to be an - pushing bombs and wrong directin illness
other menu für chaning the map settings
always changes:
===============
- animated fire - animated fire
- more players
- we need some more sound for picking up items.
- find better way for menus
next version:
=============
- better gfx, more players, a better fire. - gfx, source cleanup. player will now drawn in order they stay
tileset will change we can support 64x64pixel size and 64x92pixel size tilesets
no sdl_blit* calls from game_loop for the game gfx.. working on a new engine with
sorting the tiles and update rects.
- we need some sound - keyboard/keybinput cleanup so all keyboard inputs will be read from there.
hopefully we will get so out of this menu problem that sometimes keys are ignored.
- find better way for menus..

@ -181,6 +181,7 @@ game_loop ()
} }
else else
key_bomb = 0; key_bomb = 0;
if ((keys[SDLK_LSHIFT] || keys[SDLK_RSHIFT]) && bman.players[bman.p_nr].special.type) { if ((keys[SDLK_LSHIFT] || keys[SDLK_RSHIFT]) && bman.players[bman.p_nr].special.type) {
special_use (bman.p_nr); special_use (bman.p_nr);
} }
@ -198,7 +199,6 @@ game_loop ()
} }
chat_loop (&event); chat_loop (&event);
restore_players_screen (); restore_players_screen ();
dead_playerani (); dead_playerani ();
player_ilness_loop (bman.p_nr); player_ilness_loop (bman.p_nr);

@ -1,3 +1,4 @@
/* $Id: main.c,v 1.15 2003/07/08 21:16:04 stpohle Exp $ */
#include "bomberclone.h" #include "bomberclone.h"
#include "network.h" #include "network.h"
@ -6,6 +7,7 @@
#include "../config.h" #include "../config.h"
#endif #endif
_bomberclone bman; // Holds GameData _bomberclone bman; // Holds GameData
Uint32 timestamp; // timestamp Uint32 timestamp; // timestamp

@ -759,16 +759,22 @@ player_set_gfx (_player * p, signed char gfx_nr)
/* find a free bomb */ /* find a free bomb */
int player_findfreebomb (_player *player) { int player_findfreebomb (_player *player) {
int i, bombused = 0, res = -1; int i, bombused = 0, res = -1, nr;
/* check every free bomb from next entry of the last /* check every free bomb from next entry of the last
exploded bomb to the last exploded bomb */ exploded bomb to the last exploded bomb */
if (player->bomb_lastex < 0 || player->bomb_lastex >= MAX_BOMBS)
player->bomb_lastex = 0;
for (i = player->bomb_lastex + 1; (bombused < player->bombs_n && i != player->bomb_lastex && res == -1); i++) { for (i = 0; i < MAX_BOMBS; i++) {
if (i < 0 || i >= MAX_BOMBS) // i out of range .. restart at bomb 0 nr = player->bomb_lastex + 1 + i;
i = 0; if (nr < 0 || nr >= MAX_BOMBS) // i out of range .. restart at bomb 0
if (player->bombs[i].state == BS_off) nr -= MAX_BOMBS;
if (player->bombs[i].state == BS_off) { /* check if this bomb is free */
if (res == -1)
res = i; res = i;
}
else else
bombused++; // count number of used bombs bombused++; // count number of used bombs
} }
@ -776,5 +782,8 @@ int player_findfreebomb (_player *player) {
if (res == -1 && i == player->bomb_lastex && player->bombs[i].state == BS_off) if (res == -1 && i == player->bomb_lastex && player->bombs[i].state == BS_off)
res = i; res = i;
if (bombused >= player->bombs_n)
res = -1; /* all max number of bombs lay */
return res; return res;
}; };

@ -1,4 +1,4 @@
/* $Id: single.c,v 1.32 2003/06/12 20:52:45 stpohle Exp $ */ /* $Id: single.c,v 1.33 2003/07/08 21:16:04 stpohle Exp $ */
/* single player */ /* single player */
#include "basic.h" #include "basic.h"
@ -56,7 +56,7 @@ single_game_new ()
} }
bman.players[bman.p_nr].state = PSFM_alife; bman.players[bman.p_nr].state = PSFM_alife;
player_set_gfx (&bman.players[bman.p_nr], 5); player_set_gfx (&bman.players[bman.p_nr], 6);
bman.last_ex_nr = 1; bman.last_ex_nr = 1;
init_map_tileset (); init_map_tileset ();

@ -1,15 +1,15 @@
# CROP Files # CROP Files
RES=214x295 RES=214x305
POS=+211+65 POS=+211+89
SRES=93x128 SRES=90x128
SPOS=+0+0 SPOS=+0+0
ARES=93x2560 ARES=90x2560
APOS=+0+0 APOS=+0+0
FRES=372x2560 FRES=360x2560
FPOS=+0+0 FPOS=+0+0
rm -rf crop* rm -rf crop*

Loading…
Cancel
Save