diff options
author | Bardur Arantsson <bardur@scientician.net> | 2019-02-15 19:20:25 +0100 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2019-02-15 19:20:25 +0100 |
commit | b8df2921c305ea9114f0081803929647bea58963 (patch) | |
tree | 82b5b5aa81a466397f7b1a72696061d39822c3de /src/birth.cc | |
parent | d155398fbc850f85e8169a04dfad96b72ce4c2ea (diff) |
Add a non-mutating process_player_name()
Diffstat (limited to 'src/birth.cc')
-rw-r--r-- | src/birth.cc | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/birth.cc b/src/birth.cc index 66e841d3..7b8717ae 100644 --- a/src/birth.cc +++ b/src/birth.cc @@ -2858,10 +2858,6 @@ int load_savefile_names() if (!fff) return (0); - /* Save the current 'player_base' */ - player_base_save = game->player_base; - - /* * Parse, use '@' intead of ':' as a separator because it cannot exists * in savefiles @@ -2917,11 +2913,10 @@ int load_savefile_names() strcpy(savefile_desc[max], buf + i); /* Build platform-dependent savefile name */ - game->player_base = savefile_names[max]; - process_player_name(); + auto player_base = process_player_name(savefile_names[max]); /* Try to open the savefile */ - fd = fd_open(name_file_save().c_str(), O_RDONLY); + fd = fd_open(name_file_save(player_base).c_str(), O_RDONLY); /* Still existing ? */ if (fd >= 0) @@ -2933,10 +2928,6 @@ int load_savefile_names() my_fclose(fff); - /* Restore the values of 'player_base' and 'savefile' */ - game->player_base = player_base_save; - process_player_name(); - return (max); } @@ -3108,19 +3099,11 @@ savefile_try_again: { if (!get_check(format("Really delete '%s'?", savefile_names[savefile_idx[sel - 2]]))) continue; - /* Save current 'player_base' */ - std::string player_base_save = game->player_base; - /* Build platform-dependent save file name */ - game->player_base = savefile_names[savefile_idx[sel - 2]]; - process_player_name(); + auto player_base = process_player_name(savefile_names[savefile_idx[sel - 2]]); /* Remove the savefile */ - fd_kill(name_file_save().c_str()); - - /* Restore 'player_base' and 'savefile' */ - game->player_base = player_base_save; - process_player_name(); + fd_kill(name_file_save(player_base).c_str()); /* Reload, gods I hate using goto .. */ goto savefile_try_again; |