removed unneeded request confirmations
[rocksndiamonds.git] / src / screens.c
index e5741bc01bd5bf81836133131ad40b71eba995ce..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);
@@ -4128,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
@@ -4154,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)
@@ -4167,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);