int i;
char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:");
+ UnmapAllGadgets();
+ FadeSounds();
XAutoRepeatOn(display);
/* needed if last screen was the playing screen, invoked from level editor */
return;
}
- /* unmap gadgets from last screen, map gadgets for main menu screen */
- UnmapAllGadgets();
+ /* map gadgets for main menu screen */
MapTapeButtons();
- FadeSounds();
GetPlayerConfig();
LoadLevel(level_nr);
{
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);
}
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<SCR_FIELDX; x++)
+ MarkTileDirty(x, 1);
}
void HandleChooseLevel(int mx, int my, int dx, int dy, int button)
UnmapAllGadgets();
CloseDoor(DOOR_CLOSE_2);
ClearWindow();
- DrawText(SX+16, SY+16, "SETUP",FS_BIG,FC_YELLOW);
+
+ DrawText(SX + 16, SY + 16, "SETUP",FS_BIG,FC_YELLOW);
for(i=SETUP_SCREEN_POS_START;i<=SETUP_SCREEN_POS_END;i++)
{