#include "main_bd.h"
-// universal settings
-static boolean gd_no_invisible_outbox = FALSE;
-
-
void gd_game_free(GdGame *game)
{
// stop sounds
game->cave = gd_get_prepared_cave(game->original_cave, game->level_num);
+ // if requested, recolor cave (cave is a copy only, so no worries)
+ if (setup.bd_random_colors)
+ gd_cave_set_random_colors(game->cave, setup.bd_default_color_type);
+
if (game->cave->intermission && game->cave->intermission_instantlife)
add_bonus_life(game, FALSE);
{
for (x = 0; x < game->cave->w; x++)
{
- game->last_element_buffer[y][x] = game->element_buffer[y][x];
+ game->last_element_buffer[y][x] = game->element_buffer[y][x] & ~SKIPPED;
game->dir_buffer[y][x] = GD_MV_STILL;
}
}
// always render the cave to the gfx buffer;
// however it may do nothing if animcycle was not changed.
if (game->element_buffer && game->gfx_buffer)
- gd_drawcave_game(game->cave, game->element_buffer, game->gfx_buffer,
- game->bonus_life_flash != 0, game->animcycle, gd_no_invisible_outbox);
+ gd_drawcave_game(game->cave, game->element_buffer, game->last_element_buffer, game->gfx_buffer,
+ game->bonus_life_flash != 0, game->animcycle, setup.bd_show_invisible_outbox);
game->state_counter = counter_next;
game->player_fire = fire;
// tell the interrupt "20ms has passed"
- state = gd_game_main_int(game, !game->out_of_window, gd_keystate[SDL_SCANCODE_F]);
+ state = gd_game_main_int(game, !game->out_of_window, FALSE);
// state of game, returned by gd_game_main_int
switch (state)