From 72b72bb36813851ae357496e04f4cea8f6661664 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 4 Sep 2008 19:43:20 +0000 Subject: [PATCH] (svn r14245) -Fix: NewGRF configs loaded from the config file would always default to the DOS palette instead of the "default" palette. --- src/gfxinit.cpp | 4 ++++ src/newgrf_config.cpp | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 66bd2709f1..d63aa20b9d 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 b1dd4f0a77..235e543f87 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) {