Пример #1
0
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");
}
Пример #2
0
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");
}
Пример #3
0
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++;
    }
}