fixed bug with not updating list of user names when typing name
authorHolger Schemel <info@artsoft.org>
Tue, 20 Oct 2020 21:55:36 +0000 (23:55 +0200)
committerHolger Schemel <info@artsoft.org>
Sun, 13 Dec 2020 23:57:59 +0000 (00:57 +0100)
This bug occurs when setup option "multiple users" is disabled and
the player name is changed in the main menu -- when done, enabling
multiple users in the setup menu and entering the name selection
screen shows that the current player name that was just changed is
not updated in the list of user names shown on the name selection
screen.

src/screens.c

index e9be137bb2ccf9a6c4e340ef1a8ffd4406241cc6..eab76eccc204ae0db7789c72a12e7c0ae82a7591 100644 (file)
@@ -4056,6 +4056,7 @@ static void getTypeNameValues(char *name, struct TextPosInfo *pos, int *xpos)
     int font_width = getFontWidth(pos->font);
 
     type_name_node = getTreeInfoFromPos(node_first, entry_pos);
+    type_name_nr = entry_pos;
 
     strcpy(name, type_name_node->name);
 
@@ -4065,6 +4066,8 @@ static void getTypeNameValues(char *name, struct TextPosInfo *pos, int *xpos)
   }
   else
   {
+    type_name_nr = user.nr;
+
     strcpy(name, setup.player_name);
   }
 
@@ -4104,13 +4107,11 @@ static void setTypeNameValues(char *name, struct TextPosInfo *pos,
 
   int last_user_nr = user.nr;
 
+  // change name of edited user in global list of user names
+  setString(&global.user_names[type_name_nr], name);
+
   if (setup.multiple_users)
   {
-    type_name_nr = posTreeInfo(node);
-
-    // change name of edited user in global list of user names
-    setString(&global.user_names[type_name_nr], name);
-
     // change name of edited user in local menu tree structure
     setString(&node->name, name);
     setString(&node->name_sorting, name);