int x, last_redraw_mask = redraw_mask;
XFillRectangle(display, drawto, gc, SX + 32, SY + 32, SXSIZE - 32, 32);
+
+#if 0
DrawTextFCentered(40, FC_RED, "%3d levels (%s)",
leveldir[leveldir_nr].levels,
leveldir[leveldir_nr].readonly ? "readonly" : "writable");
+#else
+ DrawTextFCentered(40, FC_RED, "%3d levels (%s)",
+ leveldir[leveldir_nr].levels,
+ leveldir[leveldir_nr].class_desc);
+#endif
/* let BackToFront() redraw only what is needed */
redraw_mask = last_redraw_mask | REDRAW_TILES;
{
if (first_entry == -1)
{
- first_entry = leveldir_nr - num_page_entries + 1;
+ first_entry = MAX(0, leveldir_nr - num_page_entries + 1);
choice = leveldir_nr - first_entry + 3;
}
first_entry = 0;
drawChooseLevelList(first_entry, num_page_entries);
- drawChooseLevelInfo(first_entry);
+ drawChooseLevelInfo(first_entry + choice - 3);
DrawGraphic(0, choice - 1, GFX_KUGEL_ROT);
return;
}
{
first_entry += step;
if (first_entry + num_page_entries > num_leveldirs)
- first_entry = num_leveldirs - num_page_entries;
+ first_entry = MAX(0, num_leveldirs - num_page_entries);
drawChooseLevelList(first_entry, num_page_entries);
- drawChooseLevelInfo(first_entry + num_page_entries - 1);
+ drawChooseLevelInfo(first_entry + choice - 3);
DrawGraphic(0, choice - 1, GFX_KUGEL_ROT);
return;
}