diff options
Diffstat (limited to 'src/settings.cpp')
-rw-r--r-- | src/settings.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/settings.cpp b/src/settings.cpp index b82717529..fc151e4e5 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2104,11 +2104,22 @@ const SettingDesc *GetPatchFromName(const char *name, uint *i) { const SettingDesc *sd; + /* First check all full names */ for (*i = 0, sd = _patch_settings; sd->save.cmd != SL_END; sd++, (*i)++) { if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue; if (strcmp(sd->desc.name, name) == 0) return sd; } + /* Then check the shortcut variant of the name. */ + for (*i = 0, sd = _patch_settings; sd->save.cmd != SL_END; sd++, (*i)++) { + if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue; + const char *short_name = strchr(sd->desc.name, '.'); + if (short_name != NULL) { + short_name++; + if (strcmp(short_name, name) == 0) return sd; + } + } + return NULL; } |