From: John Tsiombikas Date: Sat, 6 Jan 2024 15:03:33 +0000 (+0200) Subject: foo X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;h=c16cb68351e8a31e2b1f91f7b46bf29e41df6a97;p=mdlife foo --- diff --git a/src/data.s b/src/data.s index 328fc12..ad75a4c 100644 --- a/src/data.s +++ b/src/data.s @@ -6,6 +6,10 @@ .globl cellspr_data_end .globl cellspr_cmap .globl cellspr_cmap_end + .globl lifebg_data + .globl lifebg_data_end + .globl lifefg_data + .globl lifefg_data_end font8x8_data: .incbin "data/font8x8.img" font8x8_data_end: @@ -20,4 +24,26 @@ cellspr_cmap: .incbin "data/cellspr.cmap" cellspr_cmap_end: + .align 2 +lifebg_data: + .incbin "data/lifebg.img" +lifebg_data_end: + + .align 2 +lifebg_cmap: + .incbin "data/lifebg.cmap" +lifebg_cmap_end: + + .align 2 +lifefg_data: + .incbin "data/lifefg.img" +lifefg_data_end: + + .align 2 +lifefg_cmap: + .incbin "data/lifefg.cmap" +lifefg_cmap_end: + + + | vi:ft=gas68k: diff --git a/tools/pngdump/tiles.c b/tools/pngdump/tiles.c index bcf27e6..92f404f 100644 --- a/tools/pngdump/tiles.c +++ b/tools/pngdump/tiles.c @@ -1,12 +1,15 @@ #include #include #include +#include #include "tiles.h" #include "image.h" +static int matchtile(struct image *img, int toffs, int th); + int img2tiles(struct tilemap *tmap, struct image *img, int tw, int th, int dedup) { - int i, j, x, y, tx, ty, tileoffs, xtiles, ytiles, ntiles; + int i, j, x, y, tx, ty, tileoffs, xtiles, ytiles, ntiles, tileno, tid; struct image orig; unsigned int pix; @@ -34,6 +37,7 @@ int img2tiles(struct tilemap *tmap, struct image *img, int tw, int th, int dedup } } + tileno = 0; tileoffs = 0; y = 0; for(i=0; imap[tileno] = tileno; + tileoffs += th; /* destination Y offset, inc by th for every tile */ + } else { + tmap->map[tileno] = tid; + } + tileno++; x += tw; } y += th; @@ -55,7 +66,45 @@ int img2tiles(struct tilemap *tmap, struct image *img, int tw, int th, int dedup return 0; } -int dump_tilemap(struct tilemap *tmap, const char *fname) +static int matchtile(struct image *img, int toffs, int th) { + int i, tilesz; + int ntiles = toffs / th; + unsigned char *pa, *pb; + + tilesz = img->pitch * th; + pa = (unsigned char*)img->pixels; + pb = (unsigned char*)img->pixels + toffs * tilesz; + + for(i=0; iwidth * tmap->height; + uint16_t id; + + if(sz <= 0) return -1; + + if(!(fp = fopen(fname, "wb"))) { + fprintf(stderr, "dump_tilemap: failed to open %s for writing\n", fname); + return -1; + } + + for(i=0; imap[i] << 8) | (tmap->map[i] >> 8); + fwrite(&id, sizeof id, 1, fp); + } + + fclose(fp); + return 0; +}