summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gfxinit.cpp4
-rw-r--r--src/newgrf_config.cpp14
2 files changed, 18 insertions, 0 deletions
diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp
index 66bd2709f..d63aa20b9 100644
--- a/src/gfxinit.cpp
+++ b/src/gfxinit.cpp
@@ -195,6 +195,8 @@ static bool DetermineGraphicsPack()
return _used_graphics_set != NULL;
}
+extern void UpdateNewGRFConfigPalette();
+
/**
* Determine the palette that has to be used.
* - forced palette via command line -> leave it that way
@@ -219,6 +221,8 @@ static void DeterminePalette()
default:
NOT_REACHED();
}
+
+ UpdateNewGRFConfigPalette();
}
/**
diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp
index b1dd4f0a7..235e543f8 100644
--- a/src/newgrf_config.cpp
+++ b/src/newgrf_config.cpp
@@ -26,6 +26,20 @@ GRFConfig *_grfconfig_newgame;
GRFConfig *_grfconfig_static;
+/**
+ * Update the palettes of the graphics from the config file.
+ * This is needed because the config file gets read and parsed
+ * before the palette is chosen (one can configure the base
+ * graphics set governing the palette in the config after all).
+ * As a result of this we update the settings from the config
+ * once we have determined the palette.
+ */
+void UpdateNewGRFConfigPalette()
+{
+ for (GRFConfig *c = _grfconfig_newgame; c != NULL; c = c->next) c->windows_paletted = (_use_palette == PAL_WINDOWS);
+ for (GRFConfig *c = _grfconfig_static; c != NULL; c = c->next) c->windows_paletted = (_use_palette == PAL_WINDOWS);
+}
+
/* Calculate the MD5 Sum for a GRF */
static bool CalcGRFMD5Sum(GRFConfig *config)
{