mirror of https://github.com/OpenTTD/OpenTTD
(svn r20252) -Codechange: deduplicate logic for setting a suitable (initial) palette for NewGRFs
parent
75c4a2d2fb
commit
f7794e313f
|
@ -85,6 +85,16 @@ const char *GRFConfig::GetDescription() const
|
||||||
return GetGRFStringFromGRFText(this->info);
|
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 *_all_grfs;
|
||||||
GRFConfig *_grfconfig;
|
GRFConfig *_grfconfig;
|
||||||
GRFConfig *_grfconfig_newgame;
|
GRFConfig *_grfconfig_newgame;
|
||||||
|
@ -133,8 +143,8 @@ GRFError::~GRFError()
|
||||||
*/
|
*/
|
||||||
void UpdateNewGRFConfigPalette()
|
void UpdateNewGRFConfigPalette()
|
||||||
{
|
{
|
||||||
for (GRFConfig *c = _grfconfig_newgame; 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->windows_paletted = (_use_palette == PAL_WINDOWS);
|
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.
|
/** 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;
|
if (HasBit(config->flags, GCF_UNSAFE)) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
config->windows_paletted = (_use_palette == PAL_WINDOWS);
|
config->SetSuitablePalette();
|
||||||
|
|
||||||
return CalcGRFMD5Sum(config);
|
return CalcGRFMD5Sum(config);
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,6 +108,8 @@ struct GRFConfig : ZeroedMemoryAllocator {
|
||||||
|
|
||||||
const char *GetName() const;
|
const char *GetName() const;
|
||||||
const char *GetDescription() const;
|
const char *GetDescription() const;
|
||||||
|
|
||||||
|
void SetSuitablePalette();
|
||||||
};
|
};
|
||||||
|
|
||||||
extern GRFConfig *_all_grfs; ///< First item in list of all scanned NewGRFs
|
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) {
|
while (SlIterateArray() != -1) {
|
||||||
GRFConfig *c = new GRFConfig();
|
GRFConfig *c = new GRFConfig();
|
||||||
SlObject(c, _grfconfig_desc);
|
SlObject(c, _grfconfig_desc);
|
||||||
if (CheckSavegameVersion(101)) c->windows_paletted = (_use_palette == PAL_WINDOWS);
|
if (CheckSavegameVersion(101)) c->SetSuitablePalette();
|
||||||
AppendToGRFConfigList(&grfconfig, c);
|
AppendToGRFConfigList(&grfconfig, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue