summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fios.cpp16
-rw-r--r--src/fios.h1
-rw-r--r--src/screenshot.cpp6
-rw-r--r--src/screenshot.h1
4 files changed, 24 insertions, 0 deletions
diff --git a/src/fios.cpp b/src/fios.cpp
index b51b7c919..ba2f84ded 100644
--- a/src/fios.cpp
+++ b/src/fios.cpp
@@ -16,6 +16,7 @@
#include "fios.h"
#include "fileio_func.h"
#include "tar_type.h"
+#include "screenshot.h"
#include "string_func.h"
#include <sys/stat.h>
@@ -186,6 +187,21 @@ void FiosMakeSavegameName(char *buf, const char *name, size_t size)
}
/**
+ * Construct a filename for a height map.
+ * @param buf Destination buffer.
+ * @param name Filename.
+ * @param size Size of \a buf.
+ */
+void FiosMakeHeightmapName(char *buf, const char *name, size_t size)
+{
+ char ext[5];
+ ext[0] = '.';
+ strecpy(ext + 1, GetCurrentScreenshotExtension(), lastof(ext));
+
+ FiosMakeFilename(buf, _fios_path, name, ext, size);
+}
+
+/**
* Delete a file.
* @param name Filename to delete.
*/
diff --git a/src/fios.h b/src/fios.h
index f666eb5bf..e9a20a9fb 100644
--- a/src/fios.h
+++ b/src/fios.h
@@ -164,6 +164,7 @@ const char *FiosBrowseTo(const FiosItem *item);
StringID FiosGetDescText(const char **path, uint64 *total_free);
bool FiosDelete(const char *name);
+void FiosMakeHeightmapName(char *buf,const char *name, size_t size);
void FiosMakeSavegameName(char *buf, const char *name, size_t size);
FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last);
diff --git a/src/screenshot.cpp b/src/screenshot.cpp
index 87cc143cd..78a9b1af3 100644
--- a/src/screenshot.cpp
+++ b/src/screenshot.cpp
@@ -577,6 +577,12 @@ static const ScreenshotFormat _screenshot_formats[] = {
{"PCX", "pcx", &MakePCXImage},
};
+/** Get filename extension of current screenshot file format. */
+const char *GetCurrentScreenshotExtension()
+{
+ return _screenshot_formats[_cur_screenshot_format].extension;
+}
+
/** Initialize screenshot format information on startup, with #_screenshot_format_name filled from the loadsave code. */
void InitializeScreenshotFormats()
{
diff --git a/src/screenshot.h b/src/screenshot.h
index acd694f2b..64c588178 100644
--- a/src/screenshot.h
+++ b/src/screenshot.h
@@ -16,6 +16,7 @@ void InitializeScreenshotFormats();
const char *GetScreenshotFormatDesc(int i);
void SetScreenshotFormat(uint i);
+const char *GetCurrentScreenshotExtension();
/** Type of requested screenshot */
enum ScreenshotType {