forked from Mirrors/openclonk
scripted mouse control fixes
parent
9be7a2724a
commit
448bba9ff5
|
@ -528,7 +528,7 @@
|
||||||
Control=Use
|
Control=Use
|
||||||
|
|
||||||
[Assignment]
|
[Assignment]
|
||||||
Key=Left
|
Key=Mouse1ButtonLeft
|
||||||
Priority=50
|
Priority=50
|
||||||
Control=Throw
|
Control=Throw
|
||||||
|
|
||||||
|
|
|
@ -950,19 +950,19 @@ bool C4PlayerControl::DoMouseInput(uint8_t mouse_id, int32_t mouseevent, float g
|
||||||
// convert moueevent to key code
|
// convert moueevent to key code
|
||||||
uint8_t mouseevent_code;
|
uint8_t mouseevent_code;
|
||||||
C4KeyCodeEx mouseevent_keycode;
|
C4KeyCodeEx mouseevent_keycode;
|
||||||
bool is_down = false;
|
bool is_down = true;
|
||||||
switch (mouseevent)
|
switch (mouseevent)
|
||||||
{
|
{
|
||||||
case C4MC_Button_None: mouseevent_code = KEY_MOUSE_Move; break;
|
case C4MC_Button_None: mouseevent_code = KEY_MOUSE_Move; break;
|
||||||
case C4MC_Button_LeftDown: is_down = true; // nobreak
|
case C4MC_Button_LeftUp: is_down = false; // nobreak
|
||||||
case C4MC_Button_LeftUp: mouseevent_code = KEY_MOUSE_ButtonLeft; break;
|
case C4MC_Button_LeftDown: mouseevent_code = KEY_MOUSE_ButtonLeft; break;
|
||||||
case C4MC_Button_RightDown: is_down = true; // nobreak
|
case C4MC_Button_RightUp: is_down = false; // nobreak
|
||||||
case C4MC_Button_RightUp: mouseevent_code = KEY_MOUSE_ButtonLeft; break;
|
case C4MC_Button_RightDown: mouseevent_code = KEY_MOUSE_ButtonLeft; break;
|
||||||
case C4MC_Button_LeftDouble: mouseevent_code = KEY_MOUSE_ButtonLeftDouble; break;
|
case C4MC_Button_LeftDouble: mouseevent_code = KEY_MOUSE_ButtonLeftDouble; break;
|
||||||
case C4MC_Button_RightDouble: mouseevent_code = KEY_MOUSE_ButtonRightDouble; break;
|
case C4MC_Button_RightDouble: mouseevent_code = KEY_MOUSE_ButtonRightDouble; break;
|
||||||
case C4MC_Button_Wheel: mouseevent_code = KEY_MOUSE_ButtonMiddleDouble; break;
|
case C4MC_Button_Wheel: mouseevent_code = KEY_MOUSE_ButtonMiddleDouble; break;
|
||||||
case C4MC_Button_MiddleDown: is_down = true; // nobreak
|
case C4MC_Button_MiddleUp: is_down = false; // nobreak
|
||||||
case C4MC_Button_MiddleUp: mouseevent_code = KEY_MOUSE_ButtonMiddle; break;
|
case C4MC_Button_MiddleDown: mouseevent_code = KEY_MOUSE_ButtonMiddle; break;
|
||||||
default: assert(false); return false;
|
default: assert(false); return false;
|
||||||
}
|
}
|
||||||
// compose keycode
|
// compose keycode
|
||||||
|
@ -974,7 +974,7 @@ bool C4PlayerControl::DoMouseInput(uint8_t mouse_id, int32_t mouseevent, float g
|
||||||
// TODO: May route this through Game.DoKeyboardInput instead - would allow assignment of mouse events in CustomConfig
|
// TODO: May route this through Game.DoKeyboardInput instead - would allow assignment of mouse events in CustomConfig
|
||||||
// and would get rid of the Game.KeyboardInput.SetLastKeyExtraData-hack
|
// and would get rid of the Game.KeyboardInput.SetLastKeyExtraData-hack
|
||||||
C4KeyEventData mouseevent_data;
|
C4KeyEventData mouseevent_data;
|
||||||
mouseevent_data.iStrength = 100; // TODO: May get pressure from tablet here
|
mouseevent_data.iStrength = 100*is_down; // TODO: May get pressure from tablet here
|
||||||
mouseevent_data.x = uint32_t(gui_x);
|
mouseevent_data.x = uint32_t(gui_x);
|
||||||
mouseevent_data.y = uint32_t(gui_y);
|
mouseevent_data.y = uint32_t(gui_y);
|
||||||
Game.KeyboardInput.SetLastKeyExtraData(mouseevent_data); // ProcessKeyDown/Up queries it from there...
|
Game.KeyboardInput.SetLastKeyExtraData(mouseevent_data); // ProcessKeyDown/Up queries it from there...
|
||||||
|
|
Loading…
Reference in New Issue