diff --git a/Themes/Til Death/BGAnimations/ScreenSelectMusic decorations/filters.lua b/Themes/Til Death/BGAnimations/ScreenSelectMusic decorations/filters.lua index e91ba86fe3..03f3b3bcee 100644 --- a/Themes/Til Death/BGAnimations/ScreenSelectMusic decorations/filters.lua +++ b/Themes/Til Death/BGAnimations/ScreenSelectMusic decorations/filters.lua @@ -171,6 +171,9 @@ local f = end, MaxFilterRateChangedMessageCommand = function(self) self:queuecommand("Set") + end, + ResetFilterMessageCommand = function(self) + self:queuecommand("Set") end }, Def.Quad { @@ -202,6 +205,9 @@ local f = end, MaxFilterRateChangedMessageCommand = function(self) self:queuecommand("Set") + end, + ResetFilterMessageCommand = function(self) + self:queuecommand("Set") end }, Def.Quad { @@ -237,6 +243,9 @@ local f = end, FilterModeChangedMessageCommand = function(self) self:queuecommand("Set") + end, + ResetFilterMessageCommand = function(self) + self:queuecommand("Set") end }, Def.Quad { @@ -270,6 +279,9 @@ local f = end, FilterModeChangedMessageCommand = function(self) self:queuecommand("Set") + end, + ResetFilterMessageCommand = function(self) + self:queuecommand("Set") end }, Def.Quad { @@ -315,6 +327,9 @@ local f = end, FilterModeChangedMessageCommand = function(self) self:queuecommand("Set") + end, + ResetFilterMessageCommand = function(self) + self:queuecommand("Set") end } } @@ -457,7 +472,7 @@ f[#f + 1] = end, MouseLeftClickMessageCommand = function(self) if isOver(self) and active then - FILTERMAN:ResetSSFilters() + FILTERMAN:ResetAllFilters() for i = 1, #ms.SkillSets do SSQuery[0][i] = "0" SSQuery[1][i] = "0" @@ -465,6 +480,7 @@ f[#f + 1] = activebound = 0 ActiveSS = 0 MESSAGEMAN:Broadcast("UpdateFilter") + MESSAGEMAN:Broadcast("ResetFilter") MESSAGEMAN:Broadcast("NumericInputEnded") SCREENMAN:set_input_redirected(PLAYER_1, false) whee:SongSearch("") diff --git a/src/Etterna/Singletons/FilterManager.cpp b/src/Etterna/Singletons/FilterManager.cpp index 2cf9700e2c..c307a51f7e 100644 --- a/src/Etterna/Singletons/FilterManager.cpp +++ b/src/Etterna/Singletons/FilterManager.cpp @@ -58,6 +58,19 @@ FilterManager::ResetSSFilters() } } +void +FilterManager::ResetAllFilters() +{ + ResetSSFilters(); + ExclusiveFilter = false; + HighestSkillsetsOnly = false; + + if (m_pPlayerState != nullptr) + m_pPlayerState->wtFFF = 1.F; + MaxFilterRate = 1.F; + +} + // tmp filter stuff - mina bool FilterManager::AnyActiveFilter() @@ -110,6 +123,11 @@ class LunaFilterManager : public Luna p->ResetSSFilters(); return 0; } + static int ResetAllFilters(T* p, lua_State* L) + { + p->ResetAllFilters(); + return 0; + } static int SetMaxFilterRate(T* p, lua_State* L) { float mfr = FArg(1); @@ -201,6 +219,7 @@ class LunaFilterManager : public Luna ADD_METHOD(SetSSFilter); ADD_METHOD(GetSSFilter); ADD_METHOD(ResetSSFilters); + ADD_METHOD(ResetAllFilters); ADD_METHOD(AnyActiveFilter); ADD_METHOD(SetMaxFilterRate); ADD_METHOD(GetMaxFilterRate); diff --git a/src/Etterna/Singletons/FilterManager.h b/src/Etterna/Singletons/FilterManager.h index 980385df8b..dd5f01c9a8 100644 --- a/src/Etterna/Singletons/FilterManager.h +++ b/src/Etterna/Singletons/FilterManager.h @@ -22,6 +22,7 @@ class FilterManager float GetSSFilter(Skillset ss, int bound); void SetSSFilter(float v, Skillset ss, int bound); void ResetSSFilters(); // reset button for filters + void ResetAllFilters(); bool HighestSkillsetsOnly = false; bool AnyActiveFilter();