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
=============
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
- fixed: bombs can only dropped on an empty field. Bug
came with version 0.9.9

25
TODO

@ -1,11 +1,26 @@
this version (fix2):
====================
- network selection menu, there have to be an
other menu für chaning the map settings
- pushing bombs and wrong directin illness
always changes:
===============
- animated fire
- more players
- we need some more sound for picking up items.
- find better way for menus
- better gfx, more players, a better fire.
- we need some sound
next version:
=============
- find better way for menus..
- 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.
- 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.

@ -181,6 +181,7 @@ game_loop ()
}
else
key_bomb = 0;
if ((keys[SDLK_LSHIFT] || keys[SDLK_RSHIFT]) && bman.players[bman.p_nr].special.type) {
special_use (bman.p_nr);
}
@ -198,7 +199,6 @@ game_loop ()
}
chat_loop (&event);
restore_players_screen ();
dead_playerani ();
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 "network.h"
@ -6,6 +7,7 @@
#include "../config.h"
#endif
_bomberclone bman; // Holds GameData
Uint32 timestamp; // timestamp

@ -759,22 +759,31 @@ player_set_gfx (_player * p, signed char gfx_nr)
/* find a free bomb */
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
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++) {
if (i < 0 || i >= MAX_BOMBS) // i out of range .. restart at bomb 0
i = 0;
if (player->bombs[i].state == BS_off)
res = i;
for (i = 0; i < MAX_BOMBS; i++) {
nr = player->bomb_lastex + 1 + i;
if (nr < 0 || nr >= MAX_BOMBS) // i out of range .. restart at bomb 0
nr -= MAX_BOMBS;
if (player->bombs[i].state == BS_off) { /* check if this bomb is free */
if (res == -1)
res = i;
}
else
bombused++; // count number of used bombs
}
if (res == -1 && i == player->bomb_lastex && player->bombs[i].state == BS_off)
res = i;
if (bombused >= player->bombs_n)
res = -1; /* all max number of bombs lay */
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 */
#include "basic.h"
@ -56,7 +56,7 @@ single_game_new ()
}
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;
init_map_tileset ();

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

Loading…
Cancel
Save