rnd-19990122-2
[rocksndiamonds.git] / src / screens.c
index 16f08ca7d2c458456156098bc2f67c86e23b14b3..11c6bf2a9c9e011a89a6d4b2ecb067125d154aff 100644 (file)
@@ -58,6 +58,8 @@ void DrawMainMenu()
   int i;
   char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:");
 
+  XAutoRepeatOn(display);
+
   /* needed if last screen was the playing screen, invoked from level editor */
   if (level_editor_test_game)
   {
@@ -87,7 +89,7 @@ void DrawMainMenu()
   DrawText(SX + 32,    SY + 8*32, "Setup", FS_BIG, FC_GREEN);
   DrawText(SX + 32,    SY + 9*32, "Quit", FS_BIG, FC_GREEN);
 
-  DrawMicroLevel(MICROLEV_XPOS,MICROLEV_YPOS);
+  DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS, TRUE);
 
   DrawTextF(7*32 + 6, 3*32 + 9, FC_RED, "%d-%d",
            leveldir[leveldir_nr].first_level,
@@ -128,7 +130,6 @@ void DrawMainMenu()
   OpenDoor(DOOR_CLOSE_1 | DOOR_OPEN_2);
 
   ClearEventQueue();
-  XAutoRepeatOn(display);
 }
 
 void HandleMainMenu(int mx, int my, int dx, int dy, int button)
@@ -200,7 +201,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
                int2str(level_nr, 3), FS_BIG, font_color);
 
     LoadLevel(level_nr);
-    DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS);
+    DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS, TRUE);
 
     TapeErase();
     LoadTape(level_nr);
@@ -245,7 +246,8 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       }
       else if (y == 6)
       {
-       if (leveldir[leveldir_nr].readonly)
+       if (leveldir[leveldir_nr].readonly &&
+           strcmp(setup.player_name, "Artsoft") != 0)
          Request("This level is read only !", REQ_CONFIRM);
        game_status = LEVELED;
        DrawLevelEd();
@@ -290,7 +292,10 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
   out:
 
   if (game_status == MAINMENU)
+  {
+    DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS, FALSE);
     DoAnimation();
+  }
 }
 
 #define MAX_HELPSCREEN_ELS     10