X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=0e3954499aaf684f334f356771501335fb2df96d;hb=41364660abbcb81a83f5018be3655352ecdf1ac9;hp=3fb04ca6cfd939751004688e1ecd13dc09a7493a;hpb=d7bb50dd6727a25908eaecca817b361d9b09158e;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 3fb04ca6..0e395449 100644 --- a/src/screens.c +++ b/src/screens.c @@ -816,7 +816,8 @@ static void drawChooseLevelList(int first_entry, int num_page_entries) { strncpy(buffer, leveldir[first_entry + i].name , SCR_FIELDX - 1); buffer[SCR_FIELDX - 1] = '\0'; - DrawText(SX + 32, SY + (i + 2) * 32, buffer, FS_BIG, FC_YELLOW); + DrawText(SX + 32, SY + (i + 2) * 32, buffer, + FS_BIG, leveldir[first_entry + i].color); DrawGraphic(0, i + 2, GFX_KUGEL_BLAU); } @@ -829,10 +830,17 @@ static void drawChooseLevelList(int first_entry, int num_page_entries) static void drawChooseLevelInfo(int leveldir_nr) { + int x, last_redraw_mask = redraw_mask; + XFillRectangle(display, drawto, gc, SX + 32, SY + 32, SXSIZE - 32, 32); DrawTextFCentered(40, FC_RED, "%3d levels (%s)", leveldir[leveldir_nr].levels, leveldir[leveldir_nr].readonly ? "readonly" : "writable"); + + /* let BackToFront() redraw only what is needed */ + redraw_mask = last_redraw_mask | REDRAW_TILES; + for (x=0; x