},
};
-static char *get_corrected_login_name(char *login_name)
+static char *get_corrected_player_name(char *login_name)
{
// needed because player name must be a fixed length string
char *login_name_new = checked_malloc(MAX_PLAYER_NAME_LEN + 1);
static void setSetupInfoToDefaults(struct SetupInfo *si)
{
+ char *player_name = (user.nr == 0 ? getLoginName() : EMPTY_PLAYER_NAME);
int i;
- si->player_name = get_corrected_login_name(getLoginName());
+ si->player_name = get_corrected_player_name(player_name);
si->multiple_users = TRUE;
editor_cascade_setup_tokens[i].text));
}
+void LoadUserNames(void)
+{
+ int last_user_nr = user.nr;
+ int i;
+
+ if (global.user_names != NULL)
+ {
+ for (i = 0; i < MAX_PLAYER_NAMES; i++)
+ checked_free(global.user_names[i]);
+
+ checked_free(global.user_names);
+ }
+
+ global.user_names = checked_calloc(MAX_PLAYER_NAMES * sizeof(char *));
+
+ for (i = 0; i < MAX_PLAYER_NAMES; i++)
+ {
+ user.nr = i;
+
+ SetupFileHash *setup_file_hash = loadSetupFileHash(getSetupFilename());
+
+ if (setup_file_hash)
+ {
+ char *player_name = getHashEntry(setup_file_hash, "player_name");
+
+ global.user_names[i] = get_corrected_player_name(player_name);
+
+ freeSetupFileHash(setup_file_hash);
+ }
+
+ if (global.user_names[i] == NULL)
+ global.user_names[i] = getStringCopy(EMPTY_PLAYER_NAME);
+ }
+
+ user.nr = last_user_nr;
+}
+
void LoadSetupFromFilename(char *filename)
{
SetupFileHash *setup_file_hash = loadSetupFileHash(filename);
char *player_name_new;
// needed to work around problems with fixed length strings
- player_name_new = get_corrected_login_name(setup.player_name);
+ player_name_new = get_corrected_player_name(setup.player_name);
free(setup.player_name);
setup.player_name = player_name_new;