|
@@ -11,12 +11,13 @@
|
|
|
#include "newgrf.h"
|
|
|
#include "newgrf_config.h"
|
|
|
#include "core/alloc_func.hpp"
|
|
|
#include "string_func.h"
|
|
|
#include "gamelog.h"
|
|
|
#include "network/network_type.h"
|
|
|
#include "gfx_func.h"
|
|
|
|
|
|
#include "fileio_func.h"
|
|
|
#include "fios.h"
|
|
|
|
|
|
|
|
|
GRFConfig *_all_grfs;
|
|
@@ -69,12 +70,14 @@ bool FillGRFDetails(GRFConfig *config, b
|
|
|
LoadNewGRFFile(config, 62, GLS_SAFETYSCAN);
|
|
|
|
|
|
/* GCF_UNSAFE is set if GLS_SAFETYSCAN finds unsafe actions */
|
|
|
if (HasBit(config->flags, GCF_UNSAFE)) return false;
|
|
|
}
|
|
|
|
|
|
config->windows_paletted = (_use_palette == PAL_WINDOWS);
|
|
|
|
|
|
return CalcGRFMD5Sum(config);
|
|
|
}
|
|
|
|
|
|
|
|
|
void ClearGRFConfig(GRFConfig **config)
|
|
|
{
|
|
@@ -483,12 +486,13 @@ bool GRFConfig::IsOpenTTDBaseGRF() const
|
|
|
static const SaveLoad _grfconfig_desc[] = {
|
|
|
SLE_STR(GRFConfig, filename, SLE_STR, 0x40),
|
|
|
SLE_VAR(GRFConfig, grfid, SLE_UINT32),
|
|
|
SLE_ARR(GRFConfig, md5sum, SLE_UINT8, 16),
|
|
|
SLE_ARR(GRFConfig, param, SLE_UINT32, 0x80),
|
|
|
SLE_VAR(GRFConfig, num_params, SLE_UINT8),
|
|
|
SLE_CONDVAR(GRFConfig, windows_paletted, SLE_BOOL, 101, SL_MAX_VERSION),
|
|
|
SLE_END()
|
|
|
};
|
|
|
|
|
|
|
|
|
static void Save_NGRF()
|
|
|
{
|
|
@@ -505,12 +509,13 @@ static void Save_NGRF()
|
|
|
static void Load_NGRF()
|
|
|
{
|
|
|
ClearGRFConfigList(&_grfconfig);
|
|
|
while (SlIterateArray() != -1) {
|
|
|
GRFConfig *c = CallocT<GRFConfig>(1);
|
|
|
SlObject(c, _grfconfig_desc);
|
|
|
if (CheckSavegameVersion(101)) c->windows_paletted = (_use_palette == PAL_WINDOWS);
|
|
|
AppendToGRFConfigList(&_grfconfig, c);
|
|
|
}
|
|
|
|
|
|
/* Append static NewGRF configuration */
|
|
|
AppendStaticGRFConfigs(&_grfconfig);
|
|
|
}
|