diff --git a/Source/gamemenu.cpp b/Source/gamemenu.cpp index 59424e9e9..96dcb9eac 100644 --- a/Source/gamemenu.cpp +++ b/Source/gamemenu.cpp @@ -179,8 +179,8 @@ void gamemenu_sound_music_toggle(char **names, TMenuItem *menu_item, int volume) if (gbSndInited) { menu_item->dwFlags |= 0xC0000000; menu_item->pszStr = *names; - gmenu_slider_3(menu_item, 17); - gmenu_slider_1(menu_item, VOLUME_MIN, VOLUME_MAX, volume); + gmenu_slider_steps(menu_item, 17); + gmenu_slider_set(menu_item, VOLUME_MIN, VOLUME_MAX, volume); return; } @@ -200,8 +200,8 @@ void gamemenu_get_color_cycling() void gamemenu_get_gamma() { - gmenu_slider_3(&sgOptionMenu[2], 15); - gmenu_slider_1(&sgOptionMenu[2], 30, 100, UpdateGamma(0)); + gmenu_slider_steps(&sgOptionMenu[2], 15); + gmenu_slider_set(&sgOptionMenu[2], 30, 100, UpdateGamma(0)); } void gamemenu_music_volume(BOOL bActivate) diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index d7c278f4b..804f1c0fd 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -401,16 +401,19 @@ void gmenu_enable(TMenuItem *pMenuItem, BOOL enable) pMenuItem->dwFlags &= ~0x80000000; } -void gmenu_slider_1(TMenuItem *pItem, int min, int max, int gamma) +/** + * @brief Set the TMenuItem slider position based on the given value + */ +void gmenu_slider_set(TMenuItem *pItem, int min, int max, int value) { - int v; + int nSteps; /// ASSERT: assertassert(pItem, "gmenu.cpp", 445); - v = (int)(pItem->dwFlags & 0xFFF000) >> 12; - if (v < 2) - v = 2; + nSteps = (int)(pItem->dwFlags & 0xFFF000) >> 12; + if (nSteps < 2) + nSteps = 2; pItem->dwFlags &= 0xFFFFF000; - pItem->dwFlags |= ((max - min - 1) / 2 + (gamma - min) * v) / (max - min); + pItem->dwFlags |= ((max - min - 1) / 2 + (value - min) * nSteps) / (max - min); } /** @@ -429,8 +432,11 @@ int gmenu_slider_get(TMenuItem *pItem, int min, int max) return min + (step * (max - min) + (nSteps - 1) / 2) / nSteps; } -void gmenu_slider_3(TMenuItem *pItem, int dwTicks) +/** + * @brief Set the number of steps for the slider + */ +void gmenu_slider_steps(TMenuItem *pItem, int steps) { pItem->dwFlags &= 0xFF000FFF; - pItem->dwFlags |= (dwTicks << 12) & 0xFFF000; + pItem->dwFlags |= (steps << 12) & 0xFFF000; } diff --git a/Source/gmenu.h b/Source/gmenu.h index 1d460153d..5d960ee07 100644 --- a/Source/gmenu.h +++ b/Source/gmenu.h @@ -30,9 +30,9 @@ BOOL gmenu_on_mouse_move(); BOOLEAN gmenu_valid_mouse_pos(int *plOffset); int gmenu_left_mouse(int a1); void gmenu_enable(TMenuItem *pMenuItem, BOOL enable); -void gmenu_slider_1(TMenuItem *pItem, int min, int max, int gamma); +void gmenu_slider_set(TMenuItem *pItem, int min, int max, int gamma); int gmenu_slider_get(TMenuItem *pItem, int min, int max); -void gmenu_slider_3(TMenuItem *pItem, int dwTicks); +void gmenu_slider_steps(TMenuItem *pItem, int dwTicks); /* rdata */