aboutsummaryrefslogtreecommitdiff
path: root/common/rendermode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/rendermode.cpp')
-rw-r--r--common/rendermode.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/common/rendermode.cpp b/common/rendermode.cpp
index 62b67faee5..1ca67c1878 100644
--- a/common/rendermode.cpp
+++ b/common/rendermode.cpp
@@ -22,6 +22,7 @@
#include "common/rendermode.h"
+#include "common/gui_options.h"
#include "common/str.h"
#include "common/translation.h"
@@ -43,6 +44,26 @@ const RenderModeDescription g_renderModes[] = {
{0, 0, kRenderDefault}
};
+struct RenderGUIOMapping {
+ RenderMode id;
+ const char *guio;
+};
+
+// TODO: Merge s_renderGUIOMapping into g_renderModes? the kRenderDefault
+// could be used to indicate "any" mode when passed to renderMode2GUIO (if
+// we wanted to merge allRenderModesGUIOs back into)
+static const RenderGUIOMapping s_renderGUIOMapping[] = {
+ { kRenderHercG, GUIO_RENDERHERCGREEN },
+ { kRenderHercA, GUIO_RENDERHERCAMBER },
+ { kRenderCGA, GUIO_RENDERCGA },
+ { kRenderEGA, GUIO_RENDEREGA },
+ { kRenderVGA, GUIO_RENDERVGA },
+ { kRenderAmiga, GUIO_RENDERAMIGA },
+ { kRenderFMTowns, GUIO_RENDERFMTOWNS },
+ { kRenderPC9821, GUIO_RENDERPC9821 },
+ { kRenderPC9801, GUIO_RENDERPC9801 }
+};
+
DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Green", "lowres")
DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Amber", "lowres")
@@ -77,5 +98,25 @@ const char *getRenderModeDescription(RenderMode id) {
return 0;
}
+String renderMode2GUIO(RenderMode id) {
+ Common::String res;
+
+ for (int i = 0; i < ARRAYSIZE(s_renderGUIOMapping); i++) {
+ if (id == s_renderGUIOMapping[i].id)
+ res += s_renderGUIOMapping[i].guio;
+ }
+
+ return res;
+}
+
+String allRenderModesGUIOs() {
+ Common::String res;
+
+ for (int i = 0; i < ARRAYSIZE(s_renderGUIOMapping); i++) {
+ res += s_renderGUIOMapping[i].guio;
+ }
+
+ return res;
+}
} // End of namespace Common