From c6ac071619ca22c46593e2a0dc6b449c8375ef66 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 4 Sep 2016 12:47:39 +0000 Subject: (svn r27639) -Codechange: Also always set the abstract FileToSaveLoad::filetype when setting a mode. --- src/fileio_type.h | 2 ++ src/saveload/saveload.cpp | 27 ++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/fileio_type.h b/src/fileio_type.h index 390b28f24..3aee5a0e7 100644 --- a/src/fileio_type.h +++ b/src/fileio_type.h @@ -20,6 +20,8 @@ enum AbstractFileType { FT_SAVEGAME, ///< old or new savegame FT_SCENARIO, ///< old or new scenario FT_HEIGHTMAP, ///< heightmap file + + FT_INVALID = 7, ///< Invalid or unknown file type. }; /** Elements of a file system that are recognized. */ diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 007b22f01..a0d15938a 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2893,7 +2893,7 @@ void GenerateDefaultSaveName(char *buf, const char *last) } /** - * Set the mode of the file to save or load based on the type of file entry at the file system. + * Set the mode and file type of the file to save or load based on the type of file entry at the file system. * @param ft Type of file entry of the file system. */ void FileToSaveLoad::SetMode(FiosType ft) @@ -2923,6 +2923,31 @@ void FileToSaveLoad::SetMode(FiosType ft) this->mode = SL_INVALID; break; } + + switch (ft) { + case FIOS_TYPE_OLDFILE: + case FIOS_TYPE_FILE: + this->filetype = FT_SAVEGAME; + break; + + case FIOS_TYPE_OLD_SCENARIO: + case FIOS_TYPE_SCENARIO: + this->filetype = FT_SCENARIO; + break; + +#ifdef WITH_PNG + case FIOS_TYPE_PNG: + /* FALL THROUGH */ +#endif /* WITH_PNG */ + + case FIOS_TYPE_BMP: + this->filetype = FT_HEIGHTMAP; + break; + + default: + this->filetype = FT_INVALID; + break; + } } #if 0 -- cgit v1.2.3-54-g00ecf