]> 4ch.mooo.com Git - 16.git/blobdiff - 16/modex16/BITMAP.C
modified: 16/modex16/scroll.c
[16.git] / 16 / modex16 / BITMAP.C
index b1521526f4969ff1b091ffeba946f545ed0c8eb1..8287e57d252a2554813b7dc828358b1f8d7f7cba 100644 (file)
@@ -126,6 +126,37 @@ bitmapLoadPcx(char *filename) {
 tileset_t\r
 bitmapLoadPcxTiles(char *filename, word twidth, word theight) {\r
     tileset_t ts;\r
+    FILE *file;\r
+    bitmap_t result;\r
+    int i;\r
+\r
+    /* open the PCX file for reading */\r
+    file = fopen(filename, "rb");\r
+    if(!file) {\r
+       printf("Could not open %s for reading.\n", filename);\r
+       exit(-2);\r
+    }\r
+\r
+    /* load the first part of the pcx file */\r
+    loadPcxStage1(file, &result);\r
+\r
+    /* get the number of tiles and set up the result structure */\r
+    ts.twidth = twidth;\r
+    ts.theight = theight;\r
+    ts.ntiles = (result.width/twidth) * (result.height/theight);\r
+    ts.palette = result.palette;\r
+\r
+    /* allocate the pixel storage for the tiles */\r
+    ts.data = malloc(sizeof(byte*) * ts.ntiles);\r
+    ts.data[0] = malloc(sizeof(byte) * ts.ntiles * twidth * theight);\r
+    for(i=1; i < ts.ntiles; i++) {\r
+       ts.data[i] = ts.data[i-1] + twidth * theight;\r
+    }\r
+    \r
+    /* finish off the file */\r
+    loadPcxPalette(file, &result);\r
+\r
+    fclose(file);\r
 \r
     return ts;\r
 }\r