Fixed the ear bleeding sound when using a slider with mouse controls (#1296)
* Fixed the ear bleeding sound when using a slider with mouse controls Now only ticks every 9 "ticks" unless the slider has less than 18 possible values.. * cured rtm516's ocd title * rtm516 reaches enlightenment * rtm516 reaches total enlightenment
This commit is contained in:
parent
b774d13806
commit
a94ee1ca22
|
|
@ -66,12 +66,44 @@ void UIControl_Slider::init(UIString label, int id, int min, int max, int curren
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsUsingKeyboardMouse()
|
||||||
|
{
|
||||||
|
#ifdef _WINDOWS64
|
||||||
|
|
||||||
|
if (g_KBMInput.IsKBMActive()) return true;
|
||||||
|
|
||||||
|
return g_KBMInput.HasAnyInput();
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void UIControl_Slider::handleSliderMove(int newValue)
|
void UIControl_Slider::handleSliderMove(int newValue)
|
||||||
{
|
{
|
||||||
if (m_current!=newValue)
|
if (m_current!=newValue)
|
||||||
{
|
{
|
||||||
ui.PlayUISFX(eSFX_Scroll);
|
int valueCount = 1;
|
||||||
m_current = newValue;
|
if (!m_allPossibleLabels.empty()) {
|
||||||
|
valueCount = static_cast<int>(m_allPossibleLabels.size());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
long long range = static_cast<long long>(m_max) - static_cast<long long>(m_min) + 1;
|
||||||
|
if (range <= 0) range = 1;
|
||||||
|
valueCount = static_cast<int>(range);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsUsingKeyboardMouse() == true) {
|
||||||
|
if (newValue % 10 == 0) {
|
||||||
|
ui.PlayUISFX(eSFX_Scroll);
|
||||||
|
m_current = newValue;
|
||||||
|
} else if (valueCount <= 20) {
|
||||||
|
ui.PlayUISFX(eSFX_Scroll);
|
||||||
|
m_current = newValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ui.PlayUISFX(eSFX_Scroll);
|
||||||
|
m_current = newValue;
|
||||||
|
}
|
||||||
|
|
||||||
if(newValue < m_allPossibleLabels.size())
|
if(newValue < m_allPossibleLabels.size())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue