X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_em%2Ftab_generate.c;h=7fe7bc242ec6a98a4f983d29ce12a6c830bccfd3;hp=b43c108d5b50bf37149e5829c6abb9d492807df4;hb=30eb586d06bc4d1ee7388dced1c20e530292aa93;hpb=bec8906b5a4f4e980037f41a5bd02d77a16aeedf diff --git a/src/game_em/tab_generate.c b/src/game_em/tab_generate.c index b43c108d..7fe7bc24 100644 --- a/src/game_em/tab_generate.c +++ b/src/game_em/tab_generate.c @@ -11,11 +11,10 @@ * modify. */ -#include "tile.h" -#include "display.h" +#include "main_em.h" -/* ---------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------- */ /* 0=stop 1=blank */ int tile_blank[] = @@ -69,7 +68,8 @@ int tile_android_move[] = TILE_MAX }; -/* ---------------------------------------------------------------------- */ + +/* ------------------------------------------------------------------------- */ /* explosions: special format */ /* everything is initially filled with Xboom_1 */ @@ -152,7 +152,8 @@ int tile_explode[] = TILE_MAX /* up until here are dynamite explosions */ }; -/* ---------------------------------------------------------------------- */ + +/* ------------------------------------------------------------------------- */ /* map the graphics file to internal tiles and animations * @@ -306,7 +307,12 @@ int obj_map[] = Xsand_stoneout_1, 1, Xsand_stoneout_1, 0, -1, + +#if 0 + /* use normal "Xblank" instead of explicit x==0, y==2 empty space graphic */ Ynut_sB, 7, +#endif + -1, -1, Ynut_sB, 6, @@ -4430,9 +4436,9 @@ unsigned short map_ttl[128]; struct GraphicInfo_EM graphic_info_em_object[TILE_MAX][8]; /* map player number, frames and action to graphic info */ -struct GraphicInfo_EM graphic_info_em_player[2][SPR_MAX][8]; +struct GraphicInfo_EM graphic_info_em_player[MAX_PLAYERS][SPR_MAX][8]; -void create_tab(int *invert, unsigned char *array) +static void create_tab(int *invert, unsigned char *array) { int i; int buffer[TILE_MAX]; @@ -4447,7 +4453,7 @@ void create_tab(int *invert, unsigned char *array) array[i] = buffer[i]; } -void create_explode() +static void create_explode(void) { int i; int *tile = tile_explode; @@ -4470,85 +4476,12 @@ void create_explode() tab_explode_dynamite[i] = buffer[i]; } -void create_obj() +static void create_obj(void) { int i, j; int *map = obj_map; int buffer[8][TILE_MAX]; -#if 0 - - int debug = 0; - - for (i = 0; i < 8; i++) - for (j = 0; j < TILE_MAX; j++) - buffer[i][j] = 0; - - for (i = 0; i < 64; i++) - { - for (;*map != -1; map += 2) - { - if (map[0] < 0 || map[0] >= TILE_MAX || map[1] < 0 || map[1] >= 8) - { - fprintf(stderr, "obj_map: bad tile (%d, %d) @ %d+%d\n", - map[0], map[1], i / 16, i % 16); - debug = 1; - continue; - } - buffer[map[1]][map[0]]++; - } - map++; - } - - for (i = 0; i < 896; i++) - { - for (;*map != -1; map += 2) - { - if (map[0] < 0 || map[0] >= TILE_MAX || map[1] < 0 || map[1] >= 8) - { - fprintf(stderr, "obj_map: bad tile (%d, %d) @ %d\n", map[0], map[1], i); - debug = 1; - continue; - } - buffer[map[1]][map[0]]++; - } - map++; - } - - for (i = 0; i < TILE_MAX; i++) - { - for (j = 0; j < 8; j++) - { - switch(buffer[j][i]) - { - case 0: - fprintf(stderr, "obj_map: uninitialized (%d, %d)\n", i, j); - debug = 1; - break; - case 1: - break; /* good */ - default: - fprintf(stderr, "obj_map: duplicate (%d, %d)\n", i, j); - debug = 1; - break; - } - } - } - - if (sizeof(obj_map) / sizeof(*obj_map) != map - obj_map) - { - fprintf(stderr, "obj_map: bad end (%d != %d)\n", - sizeof(obj_map) / sizeof(*obj_map), map - obj_map); - debug = 1; - } - - if (debug == 0) - fprintf(stderr, "obj_map: looks good, now disable debug code\n"); - - abort(); - -#else - for (i = 0; i < 8; i++) for (j = 0; j < TILE_MAX; j++) buffer[i][j] = Xblank; @@ -4572,11 +4505,9 @@ void create_obj() for (i = 0; i < 8; i++) for (j = 0; j < TILE_MAX; j++) map_obj[i][j] = buffer[7 - i][j]; - -#endif } -void create_obj_graphics_info_em() +static void create_obj_graphics_info_em(void) { int i, j; @@ -4597,11 +4528,14 @@ void create_obj_graphics_info_em() g->width = TILEX; g->height = TILEY; - g->has_crumbled_graphics = FALSE; g->crumbled_bitmap = NULL; g->crumbled_src_x = 0; g->crumbled_src_y = 0; g->crumbled_border_size = 0; + g->crumbled_tile_size = 0; + + g->has_crumbled_graphics = FALSE; + g->preserve_background = FALSE; /* create unique graphic identifier to decide if tile must be redrawn */ g->unique_identifier = obj; @@ -4609,7 +4543,7 @@ void create_obj_graphics_info_em() } } -void create_spr() +static void create_spr(void) { int i, j, k; int *map = spr_map; @@ -4630,18 +4564,18 @@ void create_spr() map_spr[i][j][k] = buffer[i][7 - j][k]; } -void create_spr_graphics_info_em() +static void create_spr_graphics_info_em(void) { int i, j, k; - for (i = 0; i < 2; i++) + for (i = 0; i < MAX_PLAYERS; i++) { for (j = 0; j < SPR_MAX; j++) { for (k = 0; k < 8; k++) { struct GraphicInfo_EM *g = &graphic_info_em_player[i][j][k]; - int spr = map_spr[i][k][j]; + int spr = map_spr[i % 2][k][j]; g->bitmap = sprBitmap; g->src_x = (spr / 8) * TILEX; @@ -4665,7 +4599,7 @@ void create_spr_graphics_info_em() } } -void tab_generate() +void tab_generate(void) { create_tab(tile_blank, tab_blank); create_tab(tile_acid, tab_acid); @@ -4676,7 +4610,7 @@ void tab_generate() create_spr(); } -void tab_generate_graphics_info_em() +void tab_generate_graphics_info_em(void) { create_obj_graphics_info_em(); create_spr_graphics_info_em();