Exemplo n.º 1
0
static Pen doGetTile_default(int x, int y, bool map)
{
    auto dim = Screen::getWindowSize();
    if (x < 0 || x >= dim.x || y < 0 || y >= dim.y)
        return Pen(0,0,0,-1);

    int index = x*dim.y + y;
    auto screen = gps->screen + index*4;
    if (screen[3] & 0x80)
        return Pen(0,0,0,-1);

    Pen pen(
        screen[0], screen[1], screen[2], screen[3]?true:false,
        gps->screentexpos[index]
    );

    if (pen.tile)
    {
        if (gps->screentexpos_grayscale[index])
        {
            pen.tile_mode = Screen::Pen::TileColor;
            pen.tile_fg = gps->screentexpos_cf[index];
            pen.tile_bg = gps->screentexpos_cbr[index];
        }
        else if (gps->screentexpos_addcolor[index])
        {
            pen.tile_mode = Screen::Pen::CharColor;
        }
    }

    return pen;
}
Exemplo n.º 2
0
bool Screen::clear()
{
    if (!gps) return false;

    auto dim = getWindowSize();
    return fillRect(Pen(' ',0,0,false), 0, 0, dim.x-1, dim.y-1);
}
Exemplo n.º 3
0
Pen PenArray::get_tile(unsigned int x, unsigned int y)
{
    if (x < dimx && y < dimy)
        return buffer[(y * dimx) + x];
    return Pen(0, 0, 0, 0, false);
}
Exemplo n.º 4
0
Pen Screen::readTile(int x, int y, bool map)
{
    if (!gps) return Pen(0,0,0,-1);

    return doGetTile(x, y, map);
}