From: Toni Wilen Date: Fri, 10 Mar 2023 18:19:05 +0000 (+0200) Subject: Inverted lightpen/gun horizontal/vertical X-Git-Tag: 5.0.0~123 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=13df7c0af759fbcf0d12e0a87c91c0674aa7e572;p=francis%2Fwinuae.git Inverted lightpen/gun horizontal/vertical --- diff --git a/inputdevice.cpp b/inputdevice.cpp index 61214790..299d0b94 100644 --- a/inputdevice.cpp +++ b/inputdevice.cpp @@ -5144,6 +5144,11 @@ static int handle_input_event2(int nr, int state, int max, int flags, int extra) } lightpen_enabled = true; if (flags & HANDLE_IE_FLAG_ABSOLUTE) { + if (ie->data & IE_INVERT) { + if (extra >= 0) { + extra = 65535 - extra; + } + } lastmxy_abs[lpnum][unit] = extra; if (!unit) return 1; @@ -5172,7 +5177,9 @@ static int handle_input_event2(int nr, int state, int max, int flags, int extra) max -= deadzone; delta = state * currprefs.input_joymouse_multiplier / (10 * max); } - if (ie->data) + if (ie->data & IE_INVERT) + delta = -delta; + if (unit) lightpen_y[lpnum] += delta; else lightpen_x[lpnum] += delta; @@ -5185,6 +5192,8 @@ static int handle_input_event2(int nr, int state, int max, int flags, int extra) } else { if (state) { int delta = currprefs.input_joymouse_speed; + if (ie->data & IE_INVERT) + delta = -delta; if (ie->data & DIR_LEFT) lightpen_x[lpnum] -= delta; if (ie->data & DIR_RIGHT) diff --git a/inputevents.def b/inputevents.def index 4aba3c7e..76930bf7 100644 --- a/inputevents.def +++ b/inputevents.def @@ -98,12 +98,16 @@ DEFEVENT(LIGHTPEN_FIRST, _T(""), AM_DUMMY, 0,0,0) DEFEVENT(LIGHTPEN_HORIZ,_T("Lightpen Horizontal"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,0) DEFEVENT(LIGHTPEN_VERT,_T("Lightpen Vertical"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,1) +DEFEVENT(LIGHTPEN_HORIZ_INV,_T("Lightpen Horizontal (inverted)"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,0|IE_INVERT) +DEFEVENT(LIGHTPEN_VERT_INV,_T("Lightpen Vertical (inverted)"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,5,1|IE_INVERT) DEFEVENT(LIGHTPEN_LEFT,_T("Lightpen Left"),AM_K,1,5,DIR_LEFT) DEFEVENT(LIGHTPEN_RIGHT,_T("Lightpen Right"),AM_K,1,5,DIR_RIGHT) DEFEVENT(LIGHTPEN_UP,_T("Lightpen Up"),AM_K,1,5,DIR_UP) DEFEVENT(LIGHTPEN_DOWN,_T("Lightpen Down"),AM_K,1,5,DIR_DOWN) DEFEVENT(LIGHTPEN_HORIZ2,_T("Dual Lightpen Horizontal #2"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,6,0) DEFEVENT(LIGHTPEN_VERT2,_T("Dual Lightpen Vertical #2"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,6,1) +DEFEVENT(LIGHTPEN_HORIZ2_INV,_T("Dual Lightpen Horizontal #2 (inverted)"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,6,0|IE_INVERT) +DEFEVENT(LIGHTPEN_VERT2_INV,_T("Dual Lightpen Vertical #2 (inverted)"),AM_MOUSE_AXIS|AM_JOY_AXIS,0,6,1|IE_INVERT) DEFEVENT(LIGHTPEN_LEFT2,_T("Dual Lightpen Left #2"),AM_K,1,6,DIR_LEFT) DEFEVENT(LIGHTPEN_RIGHT2,_T("Dual Lightpen Right #2"),AM_K,1,6,DIR_RIGHT) DEFEVENT(LIGHTPEN_UP2,_T("Dual Lightpen Up #2"),AM_K,1,6,DIR_UP)