removed unneeded request confirmations
[rocksndiamonds.git] / src / screens.c
index 22d3887bc8420e4cec60845b06e0abd1e3add341..95c953709603bee860dcdebb1166aad83af2120f 100644 (file)
@@ -4102,6 +4102,7 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
 {
   boolean reset_setup = strEqual(name, "");
   boolean remove_user = strEqual(name, EMPTY_PLAYER_NAME);
+  boolean create_user = strEqual(type_name_last, EMPTY_PLAYER_NAME);
 
   if (!changed)
     strcpy(name, type_name_last);
@@ -4115,6 +4116,9 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
 
   setTypeNameValues_Name(name, pos);
 
+  // redraw player name before (possibly) opening request dialogs
+  drawTypeNameText(name, pos, FALSE);
+
   int last_user_nr = user.nr;
 
   if (game_status == GAME_MODE_PSEUDO_TYPENAMES)
@@ -4125,8 +4129,10 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
     // temporarily change active user to edited user
     user.nr = type_name_nr;
 
-    // load setup of edited user
-    LoadSetup();
+    // load setup of edited user (unless creating user with current setup)
+    if (!create_user ||
+       !Request("Use current setup values for the new player?", REQ_ASK))
+      LoadSetup();
   }
 
   // change name of edited user in setup structure
@@ -4137,8 +4143,6 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
 
   if (game_status == GAME_MODE_PSEUDO_TYPENAMES || reset_setup)
   {
-    drawTypeNameText(name, pos, FALSE);
-
     if (reset_setup)
     {
       if (Request("Reset setup values for this player?", REQ_ASK))
@@ -4153,8 +4157,6 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
        strcpy(name, setup.player_name);
 
        setTypeNameValues_Name(name, pos);
-
-       Request("Setup values reset to default values!", REQ_CONFIRM);
       }
     }
     else if (remove_user && type_name_nr != 0)
@@ -4166,9 +4168,7 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
          getStringCat3WithSeparator(user_dir, "REMOVED",
                                     getCurrentTimestamp(), ".");
 
-       if (rename(user_dir, user_dir_removed) == 0)
-         Request("Player settings and tapes removed!", REQ_CONFIRM);
-       else
+       if (rename(user_dir, user_dir_removed) != 0)
          Request("Removing settings and tapes failed!", REQ_CONFIRM);
 
        checked_free(user_dir_removed);