View Single Post
Old February 10, 2012, 17:26   #3
PowerWyrm's Avatar
Join Date: Apr 2008
Posts: 2,417
PowerWyrm is on a distinguished road
There are two problems here:

1) The irregular display of the left border is due to the code in Term_erase() which only works if tile width is 2 (the code has not been changed since bigtile mode -- double tile width -- was removed in favor of variable tile width/height.

This is fixed by adapting the code above to start on the x axis at the beginning of a tile:

        /* Hack -- Always start at the beginning of a tile in bigtile mode */
        if ((n > 0) && (scr_aa[x] == 255))
            int x0 = ((x - COL_MAP) / tile_width) * tile_width + COL_MAP;

            x = x0;
            n = n + x - x0;
2) The problem with spell description not properly updated when switching to another spell is the same, but this time on the y axis. I tried to fix it in the same function, but gave up after failing miserably (seems *really* tricky to fix). A proposed workaround is to fix the problem directly in the spell menu browser (spell_menu_browser method) by putting more empty lines under spell descriptions until the end of a tile is reached:

    /* XXX */
    text_out_pad = 0;
    text_out_indent = 0;

    Term_locate(&x, &y);

    /* Hack -- Always finish at the end of a tile in bigtile mode */
    if (tile_height > 1)
        int ymax = ((y - ROW_MAP) / tile_height) * tile_height + ROW_MAP + tile_height - 1;

        while (++y <= ymax) Term_erase(x - 1, y, 255);
PWMAngband variant maintainer - check (or to learn more about this new variant!
PowerWyrm is offline   Reply With Quote