(svn r20252) -Codechange: deduplicate logic for setting a suitable (initial) palette for NewGRFs

pull/155/head
rubidium 14 years ago
parent eacf65598f
commit 6c22efc840

@ -85,6 +85,16 @@ const char *GRFConfig::GetDescription() const
return GetGRFStringFromGRFText(this->info);
}
/**
* Set the palette of this GRFConfig to something suitable.
* That is either the setting coming from the NewGRF or
* the globally used palette.
*/
void GRFConfig::SetSuitablePalette()
{
this->windows_paletted = (_use_palette == PAL_WINDOWS);
}
GRFConfig *_all_grfs;
GRFConfig *_grfconfig;
GRFConfig *_grfconfig_newgame;
@ -133,8 +143,8 @@ GRFError::~GRFError()
*/
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);
for (GRFConfig *c = _grfconfig_newgame; c != NULL; c = c->next) c->SetSuitablePalette();
for (GRFConfig *c = _grfconfig_static; c != NULL; c = c->next) c->SetSuitablePalette();
}
/** Calculate the MD5 sum for a GRF, and store it in the config.
@ -191,7 +201,7 @@ bool FillGRFDetails(GRFConfig *config, bool is_static)
if (HasBit(config->flags, GCF_UNSAFE)) return false;
}
config->windows_paletted = (_use_palette == PAL_WINDOWS);
config->SetSuitablePalette();
return CalcGRFMD5Sum(config);
}

@ -108,6 +108,8 @@ struct GRFConfig : ZeroedMemoryAllocator {
const char *GetName() const;
const char *GetDescription() const;
void SetSuitablePalette();
};
extern GRFConfig *_all_grfs; ///< First item in list of all scanned NewGRFs

@ -47,7 +47,7 @@ static void Load_NGRF_common(GRFConfig *&grfconfig)
while (SlIterateArray() != -1) {
GRFConfig *c = new GRFConfig();
SlObject(c, _grfconfig_desc);
if (CheckSavegameVersion(101)) c->windows_paletted = (_use_palette == PAL_WINDOWS);
if (CheckSavegameVersion(101)) c->SetSuitablePalette();
AppendToGRFConfigList(&grfconfig, c);
}
}

Loading…
Cancel
Save