X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=0a674b4ce7ac2441415f211f113d2882f0559ec3;hb=613de640b2503cdeadef3411d71dac28e92525bf;hp=ed885a434bbbaaf99cb00e41d8cb93f5d27dda6d;hpb=5d60005061cc4800bdb15008663986f80041b12c;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index ed885a43..0a674b4c 100644 --- a/src/files.c +++ b/src/files.c @@ -9175,7 +9175,7 @@ static struct TokenInfo options_setup_tokens[] = }, }; -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); @@ -9192,9 +9192,10 @@ static char *get_corrected_login_name(char *login_name) 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; @@ -9657,6 +9658,43 @@ static void decodeSetupFileHash_EditorCascade(SetupFileHash *setup_file_hash) 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); @@ -9678,7 +9716,7 @@ static void LoadSetup_SpecialPostProcessing(void) 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;