void printstatus(void) { int c; gfx_drawblock(8, 8, blk); sprintf(printbuffer, "%04d", blk); txt_print(32, 8, SPR_FONTS, printbuffer); sprintf(printbuffer, "X:%04d", blockx); txt_print(8, 170, SPR_FONTS, printbuffer); sprintf(printbuffer, "Y:%04d", blocky); txt_print(8, 180, SPR_FONTS, printbuffer); if (mark==2) { sprintf(printbuffer, "XSIZE:%04d", markx2 - markx1 + 1); txt_print(240, 160, SPR_FONTS, printbuffer); sprintf(printbuffer, "YSIZE:%04d", marky2 - marky1 + 1); txt_print(240, 170, SPR_FONTS, printbuffer); } if (scrolllock) txt_print(240, 8, SPR_FONTS, "SCRLOCK"); sprintf(printbuffer, "L:%1d", cl+1); txt_print(64,170, SPR_FONTS, printbuffer); sprintf(printbuffer, "V:"); for (c = 0; c < MAX_LAYERS; c++) { char layerstring[2]; layerstring[0] = '1'+c; layerstring[1] = 0; if (layervisible[c]) strcat(printbuffer,layerstring); } txt_print(64,180, SPR_FONTS, printbuffer); txt_print(240,180, SPR_FONTS, "F10 = HELP"); }
void printstatus(void) { gfx_drawblock(8, 8, blk); sprintf(printbuffer, "%04d", blk); txt_print(32, 8, SPR_FONTS, printbuffer); txt_print(240,180, SPR_FONTS, "F10 = HELP"); }
void drawlayer(int l) { int x,y; int realxpos = 0, realypos = 0; int blockxpos, finexpos; int blockypos, fineypos; unsigned short *mapptr; /* Check for inactive layer */ if ((!layer[l].xsize) || (!layer[l].ysize)) return; if (layer[l].xdivisor) realxpos = xpos / layer[l].xdivisor; if (layer[l].ydivisor) realypos = ypos / layer[l].ydivisor; finexpos = realxpos % gfx_blockxsize; fineypos = realypos % gfx_blockysize; blockxpos = realxpos / gfx_blockxsize; blockypos = realypos / gfx_blockysize; if (!layer[l].xwrap) { if ((blockxpos + minxsize) > layer[l].xsize) { blockxpos = layer[l].xsize - minxsize; finexpos = gfx_blockxsize - 1; } } if (!layer[l].ywrap) { if ((blockypos + minysize) > layer[l].ysize) { blockypos = layer[l].ysize - minysize; fineypos = gfx_blockysize - 1; } } blockxpos %= layer[l].xsize; blockypos %= layer[l].ysize; for (y = 0; y < minysize+1; y++) { if (blockypos >= layer[l].ysize) blockypos = 0; mapptr = &layerdataptr[l][layer[l].xsize*blockypos]; for (x = 0; x < minxsize+1; x++) { int xpos = blockxpos + x; if (xpos >= layer[l].xsize) xpos %= layer[l].xsize; gfx_drawblock((x*gfx_blockxsize)-finexpos, (y*gfx_blockysize)-fineypos, mapptr[xpos]); } blockypos++; } }