int get_scaling_from_filter_name(const String &filter_id) { int scaling = 1; if (filter_id.CompareLeftNoCase("StdScale") == 0) { scaling = filter_id.Mid(8).ToInt(); } else if (filter_id.CompareLeftNoCase("Hq") == 0) { scaling = filter_id.Mid(2).ToInt(); } else if (filter_id.CompareLeftNoCase("AAx") == 0) { scaling = filter_id.Mid(3).ToInt(); } return scaling; }
// Parses legacy filter ID and converts it into current scaling options bool parse_legacy_frame_config(const String &scaling_option, String &filter_id, GameFrameSetup &frame) { struct { String LegacyName; String CurrentName; int Scaling; } legacy_filters[6] = { {"none", "none", -1}, {"max", "StdScale", 0}, {"StdScale", "StdScale", -1}, {"AAx", "Linear", -1}, {"Hq2x", "Hqx", 2}, {"Hq3x", "Hqx", 3} }; for (int i = 0; i < 6; i++) { if (scaling_option.CompareLeftNoCase(legacy_filters[i].LegacyName) == 0) { filter_id = legacy_filters[i].CurrentName; frame.ScaleDef = legacy_filters[i].Scaling == 0 ? kFrame_MaxRound : kFrame_IntScale; frame.ScaleFactor = legacy_filters[i].Scaling >= 0 ? legacy_filters[i].Scaling : scaling_option.Mid(legacy_filters[i].LegacyName.GetLength()).ToInt(); return true; } } return false; }