diff --git a/src/newgrf.cpp b/src/newgrf.cpp index de69f36b85..86718b715c 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -10525,6 +10525,9 @@ void LoadNewGRF(uint load_index, uint num_baseset) */ for (GRFConfig *c = _grfconfig; c != nullptr; c = c->next) { if (c->status != GCS_NOT_FOUND) c->status = GCS_UNKNOWN; + if (_settings_client.gui.newgrf_disable_big_gui && c->ident.grfid == BSWAP32(0x52577801)) { + c->status = GCS_DISABLED; + } } _cur.spriteid = load_index; diff --git a/src/settings_type.h b/src/settings_type.h index 6cb3b75561..9cda3ec153 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -258,6 +258,7 @@ struct GUISettings : public TimeSettings { bool newgrf_show_old_versions; ///< whether to show old versions in the NewGRF list uint8 newgrf_default_palette; ///< default palette to use for NewGRFs without action 14 palette information bool console_show_unlisted; ///< whether to show unlisted console commands + bool newgrf_disable_big_gui; ///< whether to disable "big GUI" NewGRFs /** * Returns true when the user has sufficient privileges to edit newgrfs on a running game diff --git a/src/table/settings/settings.ini b/src/table/settings/settings.ini index e488662f72..3e2ebeebc2 100644 --- a/src/table/settings/settings.ini +++ b/src/table/settings/settings.ini @@ -5399,6 +5399,12 @@ flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC def = false cat = SC_EXPERT +[SDTC_BOOL] +var = gui.newgrf_disable_big_gui +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC +def = false +cat = SC_EXPERT + [SDTC_VAR] var = gui.console_backlog_timeout type = SLE_UINT16