summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ouch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/ouch.cc')
-rw-r--r--crawl-ref/source/ouch.cc47
1 files changed, 13 insertions, 34 deletions
diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc
index 4375ad025e..7161aee1da 100644
--- a/crawl-ref/source/ouch.cc
+++ b/crawl-ref/source/ouch.cc
@@ -935,7 +935,6 @@ void ouch( int dam, int death_source, char death_type, const char *aux )
void end_game( struct scorefile_entry &se )
{
int i;
- char del_file[300]; // massive overkill!
bool dead = true;
if (se.death_type == KILLED_BY_LEAVING ||
@@ -963,44 +962,24 @@ void end_game( struct scorefile_entry &se )
unlink(info);
// create base file name
- snprintf( info, INFO_SIZE,
-#ifdef SAVE_DIR_PATH
- SAVE_DIR_PATH
-#endif
-#ifdef MULTIUSER
- "%s%d",
-#else
- "%s",
-#endif
- you.your_name
-#ifdef MULTIUSER
- , (int) getuid()
-#endif
- );
+ std::string basename = get_savedir_filename( you.your_name, "", "" );
- // this is to catch the game package if it still exists.
+ const char* suffixes[] = {
+#ifdef CLUA_BINDINGS
+ ".lua",
+#endif
#ifdef PACKAGE_SUFFIX
- strcpy(del_file, info);
- strcat(del_file, "." PACKAGE_SUFFIX);
- unlink(del_file);
+ PACKAGE_SUFFIX ,
#endif
+ ".st", ".kil", ".tc", ".nts", ".sav"
+ };
- // last, but not least, delete player .sav file
- strcpy(del_file, info);
-
- std::string basefile = del_file;
-
- strcat(del_file, ".sav");
- unlink(del_file);
+ const int num_suffixes = sizeof(suffixes) / sizeof(const char*);
- // Delete record of stashes, kills, travel cache and lua save.
- unlink( (basefile + ".st").c_str() );
- unlink( (basefile + ".kil").c_str() );
- unlink( (basefile + ".tc").c_str() );
- unlink( (basefile + ".nts").c_str() );
-#ifdef CLUA_BINDINGS
- unlink( (basefile + ".lua").c_str() );
-#endif
+ for ( int i = 0; i < num_suffixes; ++i ) {
+ std::string tmpname = basename + suffixes[i];
+ unlink( tmpname.c_str() );
+ }
// death message
if (dead)