diff options
Diffstat (limited to 'src/m_config.c')
-rw-r--r-- | src/m_config.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/m_config.c b/src/m_config.c index a0f97dc2..52718018 100644 --- a/src/m_config.c +++ b/src/m_config.c @@ -1577,3 +1577,40 @@ void M_SetConfigDir(char *dir) M_MakeDirectory(configdir); } +// +// Calculate the path to the directory to use to store save games. +// Creates the directory as necessary. +// + +char *M_GetSaveGameDir(char *iwadname) +{ + char *savegamedir; + + // If not "doing" a configuration directory (Windows), don't "do" + // a savegame directory, either. + + if (!strcmp(configdir, "")) + { + savegamedir = strdup(""); + } + else + { + // ~/.chocolate-doom/savegames/ + + savegamedir = malloc(strlen(configdir) + 30); + sprintf(savegamedir, "%ssavegames%c", configdir, + DIR_SEPARATOR); + + M_MakeDirectory(savegamedir); + + // eg. ~/.chocolate-doom/savegames/doom2.wad/ + + sprintf(savegamedir + strlen(savegamedir), "%s%c", + iwadname, DIR_SEPARATOR); + + M_MakeDirectory(savegamedir); + } + + return savegamedir; +} + |