Example #1
0
void loadpalette(void)
{
    enterfilename("LOAD PALETTE", palname);
    gfx_loadpalette(palname);
    gfx_calcpalette(64, 0, 0, 0);
    gfx_setpalette();
}
Example #2
0
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();
}
Example #3
0
void mainloop(void)
{
    gfx_calcpalette(64, 0, 0, 0);
    gfx_setpalette();
    win_getspeed(60);

    for (;;)
    {
        speed = win_getspeed(60);
        key = kbd_getkey();
        getmousemove();
        getmousebuttons();
        if ((key == KEY_ESC) || (win_quitted)) break;
        generalcommands();
        gfx_fillscreen(0);
        printinfo();
        printstatus();
        gfx_drawsprite(mousex, mousey, 0x00010001);
        gfx_updatepage();
    }
}
Example #4
0
int gfx_loadpalette(char *name)
{
    int handle;

    handle = io_open(name);
    if (handle == -1)
    {
        bme_error = BME_OPEN_ERROR;
        return BME_ERROR;
    }
    if (io_read(handle, gfx_palette, sizeof gfx_palette) != sizeof gfx_palette)
    {
        bme_error = BME_READ_ERROR;
        io_close(handle);
        return BME_ERROR;
    }

    io_close(handle);
    gfx_calcpalette(64, 0, 0, 0);
    bme_error = BME_OK;
    return BME_OK;
}
Example #5
0
void initstuff(void)
{
    FILE *handle;

    win_openwindow("Block-info Editor V1.26", NULL);
    win_fullscreen = 1;
    win_setmousemode(MOUSE_ALWAYS_HIDDEN);
    setscreenmode();
    kbd_init();
    mou_init();
    if (!gfx_loadsprites(SPR_FONTS, "fonts.spr"))
    {
        win_messagebox("Sprite load error (FONTS.SPR)");
        exit(1);
    }
    if (!gfx_loadsprites(SPR_EDITOR, "editor.spr"))
    {
        win_messagebox("Sprite load error (EDITOR.SPR)");
        exit(1);
    }
    blkinfdata = malloc((MAXBLOCKS+1)*16);
    if (!blkinfdata)
    {
        win_messagebox("No memory for blockinfotable!");
        exit(1);
    }
    memset(blkinfdata, 0, (MAXBLOCKS+1)*16);

    io_setfilemode(0); // Rest of file access happens without datafile

    gfx_loadblocks(blkname);
    gfx_loadpalette(palname);
    gfx_calcpalette(64,0,0,0);
    gfx_setpalette();
    handle = fopen(infname, "rb");
    if (!handle) return;
    fread(&blkinfdata[0], (gfx_nblocks+1) * 16, 1, handle);
    fclose(handle);
}
Example #6
0
void loadmap(void)
{
    FILE *handle;
    int c;

    if (!strlen(mapname)) return;
    handle = fopen(mapname, "rb");
    if (!handle) return;
    /* Load map header */
    fread(&map, sizeof(MAPHEADER), 1, handle);
    /* Load each layer */
    for (c = 0; c < MAX_LAYERS; c++)
    {
        layer[c].xsize = freadle32(handle);
        layer[c].ysize = freadle32(handle);
        layer[c].xdivisor = fread8(handle);
        layer[c].ydivisor = fread8(handle);
        layer[c].xwrap = fread8(handle);
        layer[c].ywrap = fread8(handle);
        if ((layer[c].xsize) && (layer[c].ysize))
        {
            int d;
            for (d = 0; d < layer[c].xsize * layer[c].ysize; d++)
            {
                layerdataptr[c][d] = freadle16(handle);
            }
        }
    }
    fclose(handle);
    /* Load correct blocks & palette */
    gfx_loadblocks((char *)map.blocksname);
    minxsize = (gfx_virtualxsize + (gfx_blockxsize-1)) / gfx_blockxsize;
    minysize = (gfx_virtualysize + (gfx_blockysize-1)) / gfx_blockysize;
    gfx_loadpalette((char *)map.palettename);
    gfx_calcpalette(64, 0, 0, 0);
    gfx_setpalette();
}
Example #7
0
void mainloop(void)
{
    gfx_calcpalette(64, 0, 0, 0);
    gfx_setpalette();

    win_getspeed(60);
    for (;;)
    {
        speed = win_getspeed(60);
        if (speed > 10) speed = 10;
        key = kbd_getkey();
        getmousemove();
        getmousebuttons();
        if ((key == KEY_ESC) || (win_quitted)) break;
        blockediting();
        scrollmap();
        generalcommands();
        gfx_fillscreen(transparent);
        drawalllayers();
        printstatus();
        if (mark)
        {
            int mx, my;
            if (layer[cl].xdivisor) mx = markx1*gfx_blockxsize-xpos/layer[cl].xdivisor;
            else mx = markx1*gfx_blockxsize;
            if (layer[cl].xsize)
            {
                while (mx < 0)
                {
                    mx += layer[cl].xsize*gfx_blockxsize;
                }
                mx %= (layer[cl].xsize*gfx_blockxsize);
            }
            if (layer[cl].ydivisor) my = marky1*gfx_blockysize-ypos/layer[cl].ydivisor;
            else my = marky1*gfx_blockysize;
            if (layer[cl].ysize)
            {
                while (my < 0)
                {
                    my += layer[cl].ysize*gfx_blockysize;
                }
                my %= (layer[cl].ysize*gfx_blockysize);
            }
            gfx_drawsprite(mx,my,0x00010002);
        }
        if (mark==2)
        {
            int mx, my;
            if (layer[cl].xdivisor) mx = markx2*gfx_blockxsize-xpos/layer[cl].xdivisor;
            else mx = markx2*gfx_blockxsize;
            if (layer[cl].xsize)
            {
                while (mx < 0)
                {
                    mx += layer[cl].xsize*gfx_blockxsize;
                }
                mx %= (layer[cl].xsize*gfx_blockxsize);
            }
            if (layer[cl].ydivisor) my = marky2*gfx_blockysize-ypos/layer[cl].ydivisor;
            else my = marky2*gfx_blockysize;
            if (layer[cl].ysize)
            {
                while (my < 0)
                {
                    my += layer[cl].ysize*gfx_blockysize;
                }
                my %= (layer[cl].ysize*gfx_blockysize);
            }
            gfx_drawsprite(mx,my,0x00010003);
        }
        gfx_drawsprite(mousex,mousey,0x00010001);
        gfx_updatepage();

    }
}