X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_em%2Ftab_generate.c;h=95784516a2bcc5c17e467dd885cc0a48611b3b63;hp=b43c108d5b50bf37149e5829c6abb9d492807df4;hb=520916c89d7d96944bf3d66e3caa5afd840df74c;hpb=bec8906b5a4f4e980037f41a5bd02d77a16aeedf diff --git a/src/game_em/tab_generate.c b/src/game_em/tab_generate.c index b43c108d..95784516 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,7 +4436,7 @@ 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) { @@ -4476,79 +4482,6 @@ void create_obj() 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,8 +4505,6 @@ 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() @@ -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; @@ -4634,14 +4568,14 @@ void create_spr_graphics_info_em() { 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;