X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fbd_cave.h;h=3dede416f53f3dc8e5702baa67447e9057595568;hb=9090cbd92e41841a2d04f9caa9a184e8ec406497;hp=483b54feafcaafdcf99d6ed4d72753ddc8b23585;hpb=0f6b2c62e0c72652c8b2093995845e02b91c51d3;p=rocksndiamonds.git diff --git a/src/game_bd/bd_cave.h b/src/game_bd/bd_cave.h index 483b54fe..3dede416 100644 --- a/src/game_bd/bd_cave.h +++ b/src/game_bd/bd_cave.h @@ -82,7 +82,7 @@ void gd_struct_set_defaults_from_array(void *str, const GdStructDescriptor *prop // these define the number of the cells in the png file #define GD_NUM_OF_CELLS_X 8 -#define GD_NUM_OF_CELLS_Y 47 +#define GD_NUM_OF_CELLS_Y 51 // +80: placeholder for cells which are rendered by the game; // for example diamond + arrow = falling diamond @@ -121,11 +121,14 @@ enum _element_property E_P_MOVED_BY_CONVEYOR_TOP, // can be moved by conveyor belt E_P_MOVED_BY_CONVEYOR_BOTTOM, // can be moved UNDER the conveyor belt + E_P_WALKABLE, // can be walked E_P_DIGGABLE, // can be digged E_P_COLLECTIBLE, // can be collected E_P_PUSHABLE, // can be pushed E_P_CAN_MOVE, // can move E_P_CAN_FALL, // can fall + E_P_FALLING, // falling + E_P_GROWING, // growing (element birth) }; // properties @@ -158,11 +161,14 @@ enum _element_property #define P_MOVED_BY_CONVEYOR_TOP (1 << E_P_MOVED_BY_CONVEYOR_TOP) #define P_MOVED_BY_CONVEYOR_BOTTOM (1 << E_P_MOVED_BY_CONVEYOR_BOTTOM) +#define P_WALKABLE (1 << E_P_WALKABLE) #define P_DIGGABLE (1 << E_P_DIGGABLE) #define P_COLLECTIBLE (1 << E_P_COLLECTIBLE) #define P_PUSHABLE (1 << E_P_PUSHABLE) #define P_CAN_MOVE (1 << E_P_CAN_MOVE) #define P_CAN_FALL (1 << E_P_CAN_FALL) +#define P_FALLING (1 << E_P_FALLING) +#define P_GROWING (1 << E_P_GROWING) // These are states of the magic wall. typedef enum _magic_wall_state @@ -661,6 +667,7 @@ void gd_cave_free(GdCave *cave); void gd_cave_set_gdash_defaults(GdCave *cave); void gd_cave_set_defaults_from_array(GdCave* cave, GdPropertyDefault *defaults); void gd_cave_correct_visible_size(GdCave *cave); +void gd_cave_set_random_colors(GdCave *cave, GdColorType type); void gd_cave_auto_shrink(GdCave *cave); void gd_cave_setup_for_game(GdCave *cave); @@ -696,7 +703,8 @@ GdScheduling gd_scheduling_from_string(const char *str); // game playing helpers #define GD_REDRAW (1 << 10) -void gd_drawcave_game(const GdCave *cave, int **element_buffer, int **gfx_buffer, +void gd_drawcave_game(const GdCave *cave, + int **element_buffer, int **last_element_buffer, int **gfx_buffer, boolean bonus_life_flash, int animcycle, boolean hate_invisible_outbox); // function to copy a GdString @@ -715,4 +723,7 @@ void gd_replay_store_movement(GdReplay *replay, GdDirection player_move, boolean unsigned int gd_cave_adler_checksum(GdCave *cave); void gd_cave_adler_checksum_more(GdCave *cave, unsigned int *a, unsigned int *b); +boolean gd_cave_has_levels(GdCave *cave); +boolean gd_caveset_has_levels(void); + #endif // BD_CAVE_H