mirror of
https://github.com/perfect-dark-pc-port/perfect_dark.git
synced 2026-10-23 15:52:41 +02:00
port: add mouse controls to sliders
This commit is contained in:
1 parent
da8b9be09d
commit
a6e7d503e6
1 file changed
+28
@@ -2454,6 +2454,34 @@ bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct
|
||||
f32 f14;
|
||||
|
||||
if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED)) {
|
||||
#ifndef PLATFORM_N64
|
||||
if (g_MenuUsingMouse && inputs->select) {
|
||||
// handle mouse
|
||||
struct menudialog *dialog = g_Menus[g_MpPlayerNum].curdialog;
|
||||
if (dialog) {
|
||||
const s32 left = dialog->x + dialog->width - 82;
|
||||
const s32 right = dialog->x + dialog->width - 7;
|
||||
const s32 size = right - left;
|
||||
const s32 delta = inputs->mousex - left;
|
||||
if (delta >= -8 && delta <= size + 8) {
|
||||
index = (delta / (f32)size) * item->param3;
|
||||
if (index < 0) {
|
||||
index = 0;
|
||||
}
|
||||
if (index > item->param3) {
|
||||
index = item->param3;
|
||||
}
|
||||
if (item->handler) {
|
||||
item->handler(MENUOP_GET, item, &handlerdata);
|
||||
handlerdata.slider.value = index;
|
||||
item->handler(MENUOP_SET, item, &handlerdata);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (tickflags & MENUTICKFLAG_DIALOGISDIMMED) {
|
||||
if (item->handler) {
|
||||
item->handler(MENUOP_GETSLIDER, item, &handlerdata);
|
||||
|
||||
Reference in new issue
Block a user