void savemap(void) { FILE *handle; int c; enterfilename("SAVE MAP", mapname); if (!strlen(mapname)) return; handle = fopen(mapname, "wb"); if (!handle) return; /* Write map header */ fwrite(&map, sizeof(MAPHEADER), 1, handle); /* Write each layer */ for (c = 0; c < MAX_LAYERS; c++) { fwritele32(handle, layer[c].xsize); fwritele32(handle, layer[c].ysize); fwrite8(handle, layer[c].xdivisor); fwrite8(handle, layer[c].ydivisor); fwrite8(handle, layer[c].xwrap); fwrite8(handle, layer[c].ywrap); if ((layer[c].xsize) && (layer[c].ysize)) { int d; for (d = 0; d < layer[c].xsize * layer[c].ysize; d++) { fwritele16(handle, map_layerdataptr[c][d]); } } } fclose(handle); }
void loadpalette(void) { enterfilename("LOAD PALETTE", palname); gfx_loadpalette(palname); gfx_calcpalette(64, 0, 0, 0); gfx_setpalette(); }
void saveinf(void) { FILE *handle; enterfilename("SAVE BLOCKINFO", infname); handle = fopen(infname, "wb"); if (!handle) return; fwrite(&blkinfdata[0], (gfx_nblocks+1) * 16, 1, handle); fclose(handle); }
void loadinf(void) { FILE *handle; enterfilename("LOAD BLOCKINFO", infname); handle = fopen(infname, "rb"); if (!handle) return; fread(&blkinfdata[0], (gfx_nblocks+1) * 16, 1, handle); fclose(handle); }
void loadpalette(void) { char textbuffer[13]; textbuffer[0] = 0; enterfilename("LOAD PALETTE", textbuffer); if (gfx_loadpalette(textbuffer)) { memcpy(map.palettename, textbuffer, 13); } gfx_calcpalette(64, 0, 0, 0); gfx_setpalette(); }
void loadblocks(void) { char textbuffer[13]; textbuffer[0] = 0; enterfilename("LOAD BLOCKS", textbuffer); if (gfx_loadblocks(textbuffer)) { memcpy(map.blocksname, textbuffer, 13); minxsize = (gfx_virtualxsize + (gfx_blockxsize-1)) / gfx_blockxsize; minysize = (gfx_virtualysize + (gfx_blockysize-1)) / gfx_blockysize; } }
void loadmapname(void) { enterfilename("LOAD MAP", mapname); loadmap(); }
void loadblocks(void) { enterfilename("LOAD BLOCKS", blkname); gfx_loadblocks(blkname); }