added function to get default player name
authorHolger Schemel <info@artsoft.org>
Tue, 20 Oct 2020 22:37:43 +0000 (00:37 +0200)
committerHolger Schemel <info@artsoft.org>
Sun, 13 Dec 2020 23:57:59 +0000 (00:57 +0100)
src/files.c
src/libgame/misc.c
src/libgame/misc.h

index 8cb6ec6e3bb879214a56dccee9813f17db73645b..bb08277e9817d5b97723086914a4424737b3c701 100644 (file)
@@ -9177,10 +9177,9 @@ static struct TokenInfo options_setup_tokens[] =
 
 static void setSetupInfoToDefaults(struct SetupInfo *si)
 {
-  char *player_name = (user.nr == 0 ? getLoginName() : EMPTY_PLAYER_NAME);
   int i;
 
-  si->player_name = getFixedUserName(player_name);
+  si->player_name = getStringCopy(getDefaultUserName(user.nr));
 
   si->multiple_users = TRUE;
 
index a6bef9b878af3869cedb0d7272927584606c7093..d3ce694021fc36fe30e04b263406622ff0c2ad0e 100644 (file)
@@ -903,6 +903,21 @@ char *getFixedUserName(char *name)
   return name_new;
 }
 
+char *getDefaultUserName(int nr)
+{
+  static char *user_name[MAX_PLAYER_NAMES] = { NULL };
+
+  nr = MIN(MAX(0, nr), MAX_PLAYER_NAMES - 1);
+
+  if (user_name[nr] == NULL)
+  {
+    user_name[nr] = (nr == 0 ? getLoginName() : EMPTY_PLAYER_NAME);
+    user_name[nr] = getFixedUserName(user_name[nr]);
+  }
+
+  return user_name[nr];
+}
+
 time_t getFileTimestampEpochSeconds(char *filename)
 {
   struct stat file_status;
index 159b393a27d0fdb9041c273a04aa5c56997f9d0d..e48d21efa0c7cb626983885356b510d8c5e45357 100644 (file)
@@ -144,6 +144,7 @@ char *getUnixHomeDir(void);
 char *getLoginName(void);
 char *getRealName(void);
 char *getFixedUserName(char *);
+char *getDefaultUserName(int);
 
 time_t getFileTimestampEpochSeconds(char *);