From 1e78621f911a63c9265526e6a4838c243337d05f Mon Sep 17 00:00:00 2001 From: Alex Uskov Date: Thu, 2 Jan 2025 05:07:01 +0400 Subject: [PATCH] Update max stars to 18 and unify constants --- assets/FilterView.bsml | 4 +-- include/FilterOptions.hpp | 49 ++++++++++++--------------- include/PluginConfig.hpp | 2 +- src/UI/ViewControllers/FilterView.cpp | 2 +- src/UI/ViewControllers/SongList.cpp | 2 +- 5 files changed, 27 insertions(+), 32 deletions(-) diff --git a/assets/FilterView.bsml b/assets/FilterView.bsml index 4a291fd..1946565 100644 --- a/assets/FilterView.bsml +++ b/assets/FilterView.bsml @@ -29,8 +29,8 @@ - - + + diff --git a/include/FilterOptions.hpp b/include/FilterOptions.hpp index bc09b50..525b23a 100644 --- a/include/FilterOptions.hpp +++ b/include/FilterOptions.hpp @@ -68,10 +68,10 @@ class FilterOptions None }; - const float SONG_LENGTH_FILTER_MAX = 15.0f; - const float STAR_FILTER_MAX = 15.0f; - const float NJS_FILTER_MAX = 25.0f; - const float NPS_FILTER_MAX = 12.0f; + static inline const float SONG_LENGTH_FILTER_MAX = 15.0f; + static inline const float STAR_FILTER_MAX = 18.0f; + static inline const float NJS_FILTER_MAX = 25.0f; + static inline const float NPS_FILTER_MAX = 12.0f; static inline const int64_t BEATSAVER_EPOCH = 1525136400; //General @@ -80,12 +80,12 @@ class FilterOptions float minLength = 0, maxLength = 900; //Mapping - float minNJS = 0, maxNJS = 25; - float minNPS = 0, maxNPS = 12; + float minNJS = 0, maxNJS = NJS_FILTER_MAX; + float minNPS = 0, maxNPS = NPS_FILTER_MAX; // Ranked RankedFilterType rankedType = RankedFilterType::ShowAll; - float minStars = 0, maxStars = 15; + float minStars = 0, maxStars = STAR_FILTER_MAX; //BeatSaver int minUploadDate = BEATSAVER_EPOCH; @@ -166,14 +166,14 @@ class FilterOptionsCache downloadType=s.downloadType; localScoreType=s.localScoreType; minLength=s.minLength; - if (s.maxLength / 60 >= SONG_LENGTH_FILTER_MAX) { maxLength=std::numeric_limits::infinity(); } else { maxLength=s.maxLength;} + if (s.maxLength / 60 >= FilterOptions::SONG_LENGTH_FILTER_MAX) { maxLength=std::numeric_limits::infinity(); } else { maxLength=s.maxLength;} minNJS=s.minNJS; - if (s.maxNJS >= NJS_FILTER_MAX) { maxNJS=std::numeric_limits::infinity(); } else { maxNJS=s.maxNJS;} + if (s.maxNJS >= FilterOptions::NJS_FILTER_MAX) { maxNJS=std::numeric_limits::infinity(); } else { maxNJS=s.maxNJS;} minNPS=s.minNPS; - if (s.maxNPS >= NPS_FILTER_MAX) { maxNPS=std::numeric_limits::infinity(); } else { maxNPS=s.maxNPS;} + if (s.maxNPS >= FilterOptions::NPS_FILTER_MAX) { maxNPS=std::numeric_limits::infinity(); } else { maxNPS=s.maxNPS;} rankedType=s.rankedType; minStars=s.minStars; - if (s.maxStars >= STAR_FILTER_MAX) { maxStars=std::numeric_limits::infinity(); } else { maxStars=s.maxStars;} + if (s.maxStars >= FilterOptions::STAR_FILTER_MAX) { maxStars=std::numeric_limits::infinity(); } else { maxStars=s.maxStars;} minUploadDate=s.minUploadDate; minRating=s.minRating; minVotes=s.minVotes; @@ -198,15 +198,15 @@ class FilterOptionsCache skipFilter = ( downloadType == FilterOptions::DownloadFilterType::All && localScoreType == FilterOptions::LocalScoreFilterType::All && - (s.maxLength / 60 >= SONG_LENGTH_FILTER_MAX) && + (s.maxLength / 60 >= FilterOptions::SONG_LENGTH_FILTER_MAX) && (s.minLength == 0) && minNJS == 0 && - s.maxNJS >= NJS_FILTER_MAX && + s.maxNJS >= FilterOptions::NJS_FILTER_MAX && s.minNPS == 0 && - s.maxNPS >= NPS_FILTER_MAX && + s.maxNPS >= FilterOptions::NPS_FILTER_MAX && rankedType == FilterOptions::RankedFilterType::ShowAll && minStars == 0 && - s.maxStars >= STAR_FILTER_MAX && + s.maxStars >= FilterOptions::STAR_FILTER_MAX && s.minUploadDateInMonths == 0 && minRating == 0 && minVotes == 0 && @@ -217,19 +217,14 @@ class FilterOptionsCache ); // Do infinity checks for songs that are out of bounds - if (s.maxStars >= STAR_FILTER_MAX) { maxStars=std::numeric_limits::infinity(); } - if (s.maxNJS >= NJS_FILTER_MAX) { maxNJS=std::numeric_limits::infinity(); } - if (s.maxNPS >= NPS_FILTER_MAX) { maxNPS=std::numeric_limits::infinity(); } - if (s.maxLength / 60 >= SONG_LENGTH_FILTER_MAX) { maxLength=std::numeric_limits::infinity(); } + if (s.maxStars >= FilterOptions::STAR_FILTER_MAX) { maxStars=std::numeric_limits::infinity(); } + if (s.maxNJS >= FilterOptions::NJS_FILTER_MAX) { maxNJS=std::numeric_limits::infinity(); } + if (s.maxNPS >= FilterOptions::NPS_FILTER_MAX) { maxNPS=std::numeric_limits::infinity(); } + if (s.maxLength / 60 >= FilterOptions::SONG_LENGTH_FILTER_MAX) { maxLength=std::numeric_limits::infinity(); } } bool skipFilter = false; - // Prolly need to deduplicate these.. - const float SONG_LENGTH_FILTER_MAX = 15.0f; - const float STAR_FILTER_MAX = 15.0f; - const float NJS_FILTER_MAX = 25.0f; - const float NPS_FILTER_MAX = 12.0f; //General FilterOptions::DownloadFilterType downloadType = FilterOptions::DownloadFilterType::All; @@ -237,12 +232,12 @@ class FilterOptionsCache float minLength = 0, maxLength = 900; //Mapping - float minNJS = 0, maxNJS = 25; - float minNPS = 0, maxNPS = 12; + float minNJS = 0, maxNJS = FilterOptions::NJS_FILTER_MAX; + float minNPS = 0, maxNPS = FilterOptions::NPS_FILTER_MAX; //ScoreSaber FilterOptions::RankedFilterType rankedType = FilterOptions::RankedFilterType::ShowAll; - float minStars = 0, maxStars = 15; + float minStars = 0, maxStars = FilterOptions::STAR_FILTER_MAX; //BeatSaver int minUploadDate = FilterOptions::BEATSAVER_EPOCH; diff --git a/include/PluginConfig.hpp b/include/PluginConfig.hpp index 9db3de7..36f9ec4 100644 --- a/include/PluginConfig.hpp +++ b/include/PluginConfig.hpp @@ -24,7 +24,7 @@ DECLARE_CONFIG(PluginConfig, CONFIG_VALUE(MaxNPS, float, "Maximum Note Per Second", 12); CONFIG_VALUE(RankedType, int, "Ranked Type", 0); CONFIG_VALUE(MinStars, float, "Minimum Ranked Stars", 0); - CONFIG_VALUE(MaxStars, float, "Maximum Ranked Stars", 14); + CONFIG_VALUE(MaxStars, float, "Maximum Ranked Stars", 18); CONFIG_VALUE(MinUploadDateInMonths, int, "Minimum Upload Date In Months", 0); //TEMPORARY UNTIL I FIX CONVERTING UNIX -> MONTHS SINCE BEAT SAVER CONFIG_VALUE(MinUploadDate, int, "Minimum Upload Date", FilterOptions::BEATSAVER_EPOCH); CONFIG_VALUE(MinRating, float, "Minimum Rating", 0); diff --git a/src/UI/ViewControllers/FilterView.cpp b/src/UI/ViewControllers/FilterView.cpp index 7641d61..2386737 100644 --- a/src/UI/ViewControllers/FilterView.cpp +++ b/src/UI/ViewControllers/FilterView.cpp @@ -326,7 +326,7 @@ void ViewControllers::FilterViewController::DidActivate(bool firstActivation, bo return fmt::format("{:.1f}", value); }; std::function maxStarFormat = [](float value) { - if (value >= DataHolder::filterOptions.STAR_FILTER_MAX) { + if (value >= FilterOptions::STAR_FILTER_MAX) { return (std::string) "Unlimited"; } return fmt::format("{:.1f}", value); diff --git a/src/UI/ViewControllers/SongList.cpp b/src/UI/ViewControllers/SongList.cpp index 55350ac..b499356 100644 --- a/src/UI/ViewControllers/SongList.cpp +++ b/src/UI/ViewControllers/SongList.cpp @@ -190,7 +190,7 @@ bool BetterSongSearch::UI::DifficultyCheck(const SongDetailsCache::SongDifficult } // Min and max stars - if (currentFilter.maxStars != currentFilter.STAR_FILTER_MAX) { + if (currentFilter.maxStars != FilterOptions::STAR_FILTER_MAX) { if (getStars(diff) > currentFilter.maxStars) { return false; }