summaryrefslogtreecommitdiff
path: root/src/birth.cc
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2019-02-15 19:20:25 +0100
committerBardur Arantsson <bardur@scientician.net>2019-02-15 19:20:25 +0100
commitb8df2921c305ea9114f0081803929647bea58963 (patch)
tree82b5b5aa81a466397f7b1a72696061d39822c3de /src/birth.cc
parentd155398fbc850f85e8169a04dfad96b72ce4c2ea (diff)
Add a non-mutating process_player_name()
Diffstat (limited to 'src/birth.cc')
-rw-r--r--src/birth.cc25
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;