Fix: Prevent NewGRFs from reading parameters of graphics baseset.

This commit is contained in:
Peter Nelson 2025-05-26 08:17:46 +01:00
parent e23a591a1e
commit 8fae996898
No known key found for this signature in database
GPG Key ID: 8EF8F0A467DF75ED
2 changed files with 3 additions and 1 deletions

View File

@ -153,6 +153,7 @@ static std::unique_ptr<GRFConfig> GetDefaultExtraGRFConfig()
gc->palette |= GRFP_GRF_DOS;
FillGRFDetails(*gc, false, BASESET_DIR);
gc->flags.Reset(GRFConfigFlag::InitOnly);
gc->flags.Set(GRFConfigFlag::System);
return gc;
}
@ -165,6 +166,7 @@ static std::unique_ptr<GRFConfig> GetBasesetExtraGRFConfig()
auto gc = std::make_unique<GRFConfig>(BaseGraphics::GetUsedSet()->GetOrCreateExtraConfig());
if (gc->param.empty()) gc->SetParameterDefaults();
gc->flags.Reset(GRFConfigFlag::InitOnly);
gc->flags.Set(GRFConfigFlag::System);
return gc;
}

View File

@ -319,7 +319,7 @@ static void ParamSet(ByteReader &buf)
/* Disable the read GRF if it is a static NewGRF. */
DisableStaticNewGRFInfluencingNonStaticNewGRFs(*c);
src1 = 0;
} else if (file == nullptr || c == nullptr || c->status == GCS_DISABLED) {
} else if (file == nullptr || c == nullptr || c->status == GCS_DISABLED || c->flags.Test(GRFConfigFlag::System)) {
src1 = 0;
} else if (src1 == 0xFE) {
src1 = c->version;