diff options
-rw-r--r-- | src/gfxinit.cpp | 4 | ||||
-rw-r--r-- | src/newgrf_config.cpp | 14 |
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) { |