mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- moved all mouse button handling to the input state
Yet again an unbelievable piece of code working around how input works on modern systems to keep the old 90's code alive.
This commit is contained in:
parent
b4f91de7d3
commit
29b7e1cf79
14 changed files with 194 additions and 211 deletions
|
@ -46,7 +46,7 @@ int32_t ctrlCheckAllInput(void)
|
|||
{
|
||||
return (
|
||||
inputState.keyBufferWaiting() ||
|
||||
MOUSE_GetButtons() ||
|
||||
inputState.MouseGetButtons() ||
|
||||
JOYSTICK_GetButtons()
|
||||
);
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ void ctrlClearAllInput(void)
|
|||
{
|
||||
inputState.keyFlushChars();
|
||||
inputState.ClearKeysDown();
|
||||
MOUSE_ClearAllButtons();
|
||||
inputState.MouseClearAllButtonss();
|
||||
JOYSTICK_ClearAllButtons();
|
||||
}
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ void CGameMenuMgr::Draw(void)
|
|||
}
|
||||
|
||||
int32_t mousestatus = mouseReadAbs(&m_mousepos, &g_mouseAbs);
|
||||
if (mousestatus && g_mouseClickState == MOUSE_PRESSED)
|
||||
if (mousestatus && inputState.mouseClickState() == MOUSE_PRESSED)
|
||||
m_mousedownpos = m_mousepos;
|
||||
|
||||
int16_t mousetile = 1043; // red arrow
|
||||
|
@ -207,7 +207,8 @@ void CGameMenuMgr::Draw(void)
|
|||
}
|
||||
}
|
||||
else
|
||||
g_mouseClickState = MOUSE_IDLE;
|
||||
inputState.clearMouseClickState();
|
||||
|
||||
}
|
||||
|
||||
void CGameMenuMgr::Clear(void)
|
||||
|
@ -480,36 +481,24 @@ bool CGameMenuItem::Event(CGameMenuEvent &event)
|
|||
bool CGameMenuItem::MouseEvent(CGameMenuEvent &event)
|
||||
{
|
||||
event.at0 = kMenuEventNone;
|
||||
if (MOUSEINACTIVECONDITIONAL(MOUSE_GetButtons()&LEFT_MOUSE))
|
||||
if (MOUSEINACTIVECONDITIONAL(inputState.MouseGetButtons()&LEFT_MOUSE))
|
||||
{
|
||||
event.at0 = kMenuEventEnter;
|
||||
MOUSE_ClearButton(LEFT_MOUSE);
|
||||
inputState.MouseClearButton(LEFT_MOUSE);
|
||||
}
|
||||
else if (MOUSE_GetButtons()&RIGHT_MOUSE)
|
||||
else if (inputState.MouseGetButtons()&RIGHT_MOUSE)
|
||||
{
|
||||
event.at0 = kMenuEventEscape;
|
||||
MOUSE_ClearButton(RIGHT_MOUSE);
|
||||
inputState.MouseClearButton(RIGHT_MOUSE);
|
||||
}
|
||||
#if 0
|
||||
else if (MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELUP_MOUSE)))
|
||||
else if (inputState.MouseGetButtons()&WHEELUP_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
event.bAutoAim = kMenuEventScrollLeft;
|
||||
}
|
||||
else if (MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELDOWN_MOUSE)))
|
||||
{
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
event.bAutoAim = kMenuEventScrollRight;
|
||||
}
|
||||
#endif
|
||||
else if (MOUSE_GetButtons()&WHEELUP_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
event.at0 = kMenuEventUp;
|
||||
}
|
||||
else if (MOUSE_GetButtons()&WHEELDOWN_MOUSE)
|
||||
else if (inputState.MouseGetButtons()&WHEELDOWN_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
event.at0 = kMenuEventDown;
|
||||
}
|
||||
return event.at0 != kMenuEventNone;
|
||||
|
@ -632,7 +621,7 @@ void CGameMenuItemZBool::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -714,7 +703,7 @@ void CGameMenuItemChain::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, x<<16, y<<16, width<<16, height<<16))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, x<<16, y<<16, width<<16, height<<16))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -1174,7 +1163,7 @@ void CGameMenuItemKeyList::Draw(void)
|
|||
nNewFocus = k;
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
{
|
||||
nNewFocus = k;
|
||||
bClick = true;
|
||||
|
@ -1273,16 +1262,16 @@ bool CGameMenuItemKeyList::Event(CGameMenuEvent &event)
|
|||
bool CGameMenuItemKeyList::MouseEvent(CGameMenuEvent &event)
|
||||
{
|
||||
event.at0 = kMenuEventNone;
|
||||
if (MOUSEACTIVECONDITIONAL(MOUSE_GetButtons()&WHEELUP_MOUSE))
|
||||
if (MOUSEACTIVECONDITIONAL(inputState.MouseGetButtons()&WHEELUP_MOUSE))
|
||||
{
|
||||
gGameMenuMgr.m_mouselastactivity = (int)totalclock;
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
event.at0 = kMenuEventScrollUp;
|
||||
}
|
||||
else if (MOUSEACTIVECONDITIONAL(MOUSE_GetButtons()&WHEELDOWN_MOUSE))
|
||||
else if (MOUSEACTIVECONDITIONAL(inputState.MouseGetButtons()&WHEELDOWN_MOUSE))
|
||||
{
|
||||
gGameMenuMgr.m_mouselastactivity = (int)totalclock;
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
event.at0 = kMenuEventScrollDown;
|
||||
}
|
||||
else
|
||||
|
@ -1413,7 +1402,7 @@ void CGameMenuItemSlider::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!gGameMenuMgr.m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -1491,31 +1480,31 @@ bool CGameMenuItemSlider::Event(CGameMenuEvent &event)
|
|||
bool CGameMenuItemSlider::MouseEvent(CGameMenuEvent &event)
|
||||
{
|
||||
event.at0 = kMenuEventNone;
|
||||
if (MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELUP_MOUSE)))
|
||||
if (MOUSEINACTIVECONDITIONAL((inputState.MouseGetButtons()&LEFT_MOUSE) && (inputState.MouseGetButtons()&WHEELUP_MOUSE)))
|
||||
{
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
event.at0 = kMenuEventLeft;
|
||||
}
|
||||
else if (MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELDOWN_MOUSE)))
|
||||
else if (MOUSEINACTIVECONDITIONAL((inputState.MouseGetButtons()&LEFT_MOUSE) && (inputState.MouseGetButtons()&WHEELDOWN_MOUSE)))
|
||||
{
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
event.at0 = kMenuEventRight;
|
||||
}
|
||||
else if (MOUSE_GetButtons()&RIGHT_MOUSE)
|
||||
else if (inputState.MouseGetButtons()&RIGHT_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(RIGHT_MOUSE);
|
||||
inputState.MouseClearButton(RIGHT_MOUSE);
|
||||
event.at0 = kMenuEventEscape;
|
||||
}
|
||||
else if (MOUSE_GetButtons()&WHEELUP_MOUSE)
|
||||
else if (inputState.MouseGetButtons()&WHEELUP_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
MOUSE_ClearButton(LEFT_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(LEFT_MOUSE);
|
||||
event.at0 = kMenuEventUp;
|
||||
}
|
||||
else if (MOUSE_GetButtons()&WHEELDOWN_MOUSE)
|
||||
else if (inputState.MouseGetButtons()&WHEELDOWN_MOUSE)
|
||||
{
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
MOUSE_ClearButton(LEFT_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(LEFT_MOUSE);
|
||||
event.at0 = kMenuEventDown;
|
||||
}
|
||||
return event.at0 != kMenuEventNone;
|
||||
|
@ -1642,7 +1631,7 @@ void CGameMenuItemSliderFloat::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!gGameMenuMgr.m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -1817,7 +1806,7 @@ void CGameMenuItemZEdit::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -2003,7 +1992,7 @@ void CGameMenuItemZEditBitmap::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -2161,7 +2150,7 @@ void CGameMenuItemQAV::Draw(void)
|
|||
gFrameClock = backFC;
|
||||
}
|
||||
|
||||
if (bEnable && !gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED)
|
||||
if (bEnable && !gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED)
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -2288,7 +2277,7 @@ void CGameMenuItemZCycleSelect::Draw(void)
|
|||
nNewFocus = k;
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, mx, my, mw, mh))
|
||||
{
|
||||
nNewFocus = k;
|
||||
bClick = true;
|
||||
|
@ -2366,16 +2355,16 @@ bool CGameMenuItemZCycleSelect::Event(CGameMenuEvent &event)
|
|||
bool CGameMenuItemZCycleSelect::MouseEvent(CGameMenuEvent &event)
|
||||
{
|
||||
event.at0 = kMenuEventNone;
|
||||
if (MOUSEACTIVECONDITIONAL(MOUSE_GetButtons()&WHEELUP_MOUSE))
|
||||
if (MOUSEACTIVECONDITIONAL(inputState.MouseGetButtons()&WHEELUP_MOUSE))
|
||||
{
|
||||
gGameMenuMgr.m_mouselastactivity = (int)totalclock;
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
event.at0 = kMenuEventScrollUp;
|
||||
}
|
||||
else if (MOUSEACTIVECONDITIONAL(MOUSE_GetButtons()&WHEELDOWN_MOUSE))
|
||||
else if (MOUSEACTIVECONDITIONAL(inputState.MouseGetButtons()&WHEELDOWN_MOUSE))
|
||||
{
|
||||
gGameMenuMgr.m_mouselastactivity = (int)totalclock;
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
event.at0 = kMenuEventScrollDown;
|
||||
}
|
||||
else
|
||||
|
@ -2480,7 +2469,7 @@ void CGameMenuItemZCycle::Draw(void)
|
|||
pMenu->SetFocusItem(this);
|
||||
}
|
||||
|
||||
if (!gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, x<<16, y<<16, m_nWidth<<16, height<<16))
|
||||
if (!gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !gGameMenuMgr.MouseOutsideBounds(&gGameMenuMgr.m_mousedownpos, x<<16, y<<16, m_nWidth<<16, height<<16))
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
@ -2657,7 +2646,7 @@ void CGameMenuItemYesNoQuit::Draw(void)
|
|||
}
|
||||
gMenuTextMgr.DrawText(m_pzText, m_nFont, x, m_nY, shade, 0, true);
|
||||
|
||||
if (bEnable && !gGameMenuMgr.m_mousecaught && g_mouseClickState == MOUSE_RELEASED)
|
||||
if (bEnable && !gGameMenuMgr.m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED)
|
||||
{
|
||||
pMenu->SetFocusItem(this);
|
||||
|
||||
|
|
|
@ -111,21 +111,12 @@ char CONSTEXPR const g_keyAsciiTableShift[128] = {
|
|||
extern vec2_t g_mousePos;
|
||||
extern vec2_t g_mouseAbs;
|
||||
extern int32_t g_mouseBits;
|
||||
extern uint8_t g_mouseClickState;
|
||||
extern uint8_t inputState.mouseClickState();
|
||||
extern bool g_mouseGrabbed;
|
||||
extern bool g_mouseEnabled;
|
||||
extern bool g_mouseInsideWindow;
|
||||
extern bool g_mouseLockedToWindow;
|
||||
|
||||
enum
|
||||
{
|
||||
MOUSE_IDLE = 0,
|
||||
MOUSE_PRESSED,
|
||||
MOUSE_HELD,
|
||||
MOUSE_RELEASED,
|
||||
};
|
||||
extern int32_t mouseAdvanceClickState(void);
|
||||
|
||||
// joystick
|
||||
|
||||
typedef struct
|
||||
|
@ -160,13 +151,8 @@ void debugprintf(const char *,...) ATTRIBUTE((format(printf,1,2)));
|
|||
int32_t handleevents(void);
|
||||
int32_t handleevents_peekkeys(void);
|
||||
|
||||
extern void (*keypresscallback)(int32_t,int32_t);
|
||||
extern void (*g_mouseCallback)(int32_t,int32_t);
|
||||
|
||||
int32_t initinput(void);
|
||||
void uninitinput(void);
|
||||
void keySetCallback(void (*callback)(int32_t,int32_t));
|
||||
void mouseSetCallback(void (*callback)(int32_t,int32_t));
|
||||
void joySetCallback(void (*callback)(int32_t,int32_t));
|
||||
const char *joyGetName(int32_t what, int32_t num); // what: 0=axis, 1=button, 2=hat
|
||||
void joyScanDevices(void);
|
||||
|
@ -177,8 +163,6 @@ int32_t mouseReadAbs(vec2_t *pResult, vec2_t const *pInput);
|
|||
void mouseGrabInput(bool grab);
|
||||
void mouseLockToWindow(char a);
|
||||
void mouseMoveToCenter(void);
|
||||
int32_t mouseReadButtons(void);
|
||||
void mouseReadPos(int32_t *x, int32_t *y);
|
||||
|
||||
void joyReadButtons(int32_t *pResult);
|
||||
void joySetDeadZone(int32_t axis, uint16_t dead, uint16_t satur);
|
||||
|
|
|
@ -899,8 +899,6 @@ int32_t getsectordist(vec2_t const in, int const sectnum, vec2_t * const out = n
|
|||
extern const int16_t *chsecptr_onextwall;
|
||||
int32_t checksectorpointer(int16_t i, int16_t sectnum);
|
||||
|
||||
void mouseGetValues(int32_t *mousx, int32_t *mousy, int32_t *bstatus) ATTRIBUTE((nonnull(1,2,3)));
|
||||
|
||||
#if !KRANDDEBUG && !defined LUNATIC
|
||||
static FORCE_INLINE int32_t krand(void)
|
||||
{
|
||||
|
|
|
@ -28,27 +28,13 @@ char inputdevices = 0;
|
|||
|
||||
vec2_t g_mousePos;
|
||||
vec2_t g_mouseAbs;
|
||||
int32_t g_mouseBits;
|
||||
uint8_t g_mouseClickState;
|
||||
|
||||
|
||||
bool g_mouseEnabled;
|
||||
bool g_mouseGrabbed;
|
||||
bool g_mouseInsideWindow = 1;
|
||||
bool g_mouseLockedToWindow = 1;
|
||||
|
||||
void (*g_mouseCallback)(int32_t, int32_t);
|
||||
void mouseSetCallback(void(*callback)(int32_t, int32_t)) { g_mouseCallback = callback; }
|
||||
|
||||
int32_t mouseAdvanceClickState(void)
|
||||
{
|
||||
switch (g_mouseClickState)
|
||||
{
|
||||
case MOUSE_PRESSED: g_mouseClickState = MOUSE_HELD; return 1;
|
||||
case MOUSE_RELEASED: g_mouseClickState = MOUSE_IDLE; return 1;
|
||||
case MOUSE_HELD: return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mouseReadPos(int32_t *x, int32_t *y)
|
||||
{
|
||||
|
@ -78,11 +64,6 @@ int32_t mouseReadAbs(vec2_t * const pResult, vec2_t const * const pInput)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int32_t mouseReadButtons(void)
|
||||
{
|
||||
return (!g_mouseEnabled || !appactive || !g_mouseInsideWindow || (osd && osd->flags & OSD_CAPTURE)) ? 0 : g_mouseBits;
|
||||
}
|
||||
|
||||
controllerinput_t joystick;
|
||||
|
||||
void joySetCallback(void (*callback)(int32_t, int32_t)) { joystick.pCallback = callback; }
|
||||
|
|
|
@ -11656,16 +11656,6 @@ void rotatepoint(vec2_t const pivot, vec2_t p, int16_t const daang, vec2_t * con
|
|||
}
|
||||
|
||||
|
||||
//
|
||||
// getmousevalues
|
||||
//
|
||||
|
||||
void mouseGetValues(int32_t *mousx, int32_t *mousy, int32_t *bstatus)
|
||||
{
|
||||
mouseReadPos(mousx, mousy);
|
||||
*bstatus = mouseReadButtons();
|
||||
}
|
||||
|
||||
|
||||
#if KRANDDEBUG
|
||||
# include <execinfo.h>
|
||||
|
|
|
@ -1733,10 +1733,6 @@ int32_t handleevents_peekkeys(void)
|
|||
return SDL_PeepEvents(NULL, 1, SDL_PEEKEVENT, SDL_KEYDOWN, SDL_KEYDOWN);
|
||||
}
|
||||
|
||||
void handleevents_updatemousestate(uint8_t state)
|
||||
{
|
||||
g_mouseClickState = state == SDL_RELEASED ? MOUSE_RELEASED : MOUSE_PRESSED;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
|
@ -1773,27 +1769,22 @@ int32_t handleevents_sdlcommon(SDL_Event *ev)
|
|||
switch (ev->button.button)
|
||||
{
|
||||
default: j = -1; break;
|
||||
case SDL_BUTTON_LEFT: j = 0; handleevents_updatemousestate(ev->button.state); break;
|
||||
case SDL_BUTTON_RIGHT: j = 1; break;
|
||||
case SDL_BUTTON_MIDDLE: j = 2; break;
|
||||
case SDL_BUTTON_LEFT: j = KEY_MOUSE1; break;
|
||||
case SDL_BUTTON_RIGHT: j = KEY_MOUSE2; break;
|
||||
case SDL_BUTTON_MIDDLE: j = KEY_MOUSE3; break;
|
||||
|
||||
/* Thumb buttons. */
|
||||
// On SDL2/Windows and SDL >= 2.0.?/Linux, everything is as it should be.
|
||||
// If anyone cares about old versions of SDL2 on Linux, patches welcome.
|
||||
case SDL_BUTTON_X1: j = 3; break;
|
||||
case SDL_BUTTON_X2: j = 6; break;
|
||||
case SDL_BUTTON_X1: j = KEY_MOUSE4; break;
|
||||
case SDL_BUTTON_X2: j = KEY_MOUSE5; break;
|
||||
}
|
||||
|
||||
if (j < 0)
|
||||
break;
|
||||
|
||||
if (ev->button.state == SDL_PRESSED)
|
||||
g_mouseBits |= (1 << j);
|
||||
else
|
||||
g_mouseBits &= ~(1 << j);
|
||||
|
||||
if (g_mouseCallback)
|
||||
g_mouseCallback(j+1, ev->button.state == SDL_PRESSED);
|
||||
event_t ev = { (ev->button.state == SDL_PRESSED)? EV_KeyDown : EV_KeyUp, 0, j};
|
||||
D_PostEvent(ev);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2013,17 +2004,17 @@ int32_t handleevents_pollsdl(void)
|
|||
|
||||
case SDL_MOUSEWHEEL:
|
||||
// initprintf("wheel y %d\n",ev.wheel.y);
|
||||
|
||||
// This never sends keyup events. For the current code that should suffice
|
||||
if (ev.wheel.y > 0)
|
||||
{
|
||||
g_mouseBits |= 16;
|
||||
if (g_mouseCallback)
|
||||
g_mouseCallback(5, 1);
|
||||
event_t ev = { EV_KeyDown, 0, (int16_t)KEY_MWHEELUP };
|
||||
D_PostEvent(&ev);
|
||||
}
|
||||
if (ev.wheel.y < 0)
|
||||
{
|
||||
g_mouseBits |= 32;
|
||||
if (g_mouseCallback)
|
||||
g_mouseCallback(6, 1);
|
||||
event_t ev = { EV_KeyDown, 0, (int16_t)KEY_MWHEELDOWN };
|
||||
D_PostEvent(&ev);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -2076,13 +2067,6 @@ int32_t handleevents(void)
|
|||
|
||||
if (inputchecked && g_mouseEnabled)
|
||||
{
|
||||
if (g_mouseCallback)
|
||||
{
|
||||
if (g_mouseBits & 16)
|
||||
g_mouseCallback(5, 0);
|
||||
if (g_mouseBits & 32)
|
||||
g_mouseCallback(6, 0);
|
||||
}
|
||||
g_mouseBits &= ~(16 | 32);
|
||||
}
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ void D_PostEvent (const event_t *ev)
|
|||
return;
|
||||
}
|
||||
events[eventhead] = *ev;
|
||||
#if 0
|
||||
#if 0 // No idea if this can be made to work ever... For now, pass on the mouse movement event so that the input code can deal with them itself.
|
||||
if (ev->type == EV_Mouse && menuactive == MENU_Off && ConsoleState != c_down && ConsoleState != c_falling && !primaryLevel->localEventManager->Responder(ev) && !paused)
|
||||
{
|
||||
if (Button_Mlook.bDown || freelook)
|
||||
|
|
|
@ -23,7 +23,6 @@ enum
|
|||
{
|
||||
NUMKEYS = 256,
|
||||
MAXMOUSEBUTTONS = 10,
|
||||
|
||||
};
|
||||
|
||||
extern int32_t CONTROL_ButtonFlags[NUMKEYS];
|
||||
|
@ -120,6 +119,26 @@ enum GameFunction_t
|
|||
};
|
||||
|
||||
|
||||
enum EMouseBits
|
||||
{
|
||||
LEFT_MOUSE = 1,
|
||||
RIGHT_MOUSE = 2,
|
||||
MIDDLE_MOUSE = 4,
|
||||
THUMB_MOUSE = 8,
|
||||
WHEELUP_MOUSE = 16,
|
||||
WHEELDOWN_MOUSE= 32,
|
||||
THUMB2_MOUSE = 64,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
MOUSE_IDLE = 0,
|
||||
MOUSE_PRESSED,
|
||||
MOUSE_HELD,
|
||||
MOUSE_RELEASED,
|
||||
};
|
||||
|
||||
|
||||
class InputState
|
||||
{
|
||||
enum
|
||||
|
@ -146,7 +165,9 @@ class InputState
|
|||
uint8_t g_keyAsciiEnd;
|
||||
|
||||
kb_scancode KB_LastScan;
|
||||
|
||||
|
||||
int g_mouseBits;
|
||||
uint8_t g_mouseClickState;
|
||||
public:
|
||||
|
||||
bool BUTTON(int x)
|
||||
|
@ -333,12 +354,67 @@ public:
|
|||
ClearAllKeyStatus();
|
||||
}
|
||||
|
||||
void mouseSetBit(int val, int state)
|
||||
{
|
||||
if (state) g_mouseBits |= val;
|
||||
else g_mouseBits &=~val;
|
||||
}
|
||||
|
||||
void handleevents_updatemousestate(uint8_t state)
|
||||
{
|
||||
g_mouseClickState = state == EV_KeyUp ? MOUSE_RELEASED : MOUSE_PRESSED;
|
||||
}
|
||||
|
||||
void AddEvent(const event_t *ev)
|
||||
{
|
||||
// Set the old mouseBits. Yet another piece of cruft that needs to go away.
|
||||
if (ev->type == EV_KeyDown || ev->type == EV_KeyUp)
|
||||
{
|
||||
switch (ev->data1)
|
||||
{
|
||||
case KEY_MOUSE1 : mouseSetBit(LEFT_MOUSE, ev->type == EV_KeyDown); handleevents_updatemousestate(ev->type); break;
|
||||
case KEY_MOUSE2 : mouseSetBit(RIGHT_MOUSE, ev->type == EV_KeyDown); break;
|
||||
case KEY_MOUSE3 : mouseSetBit(MIDDLE_MOUSE, ev->type == EV_KeyDown); break;
|
||||
case KEY_MOUSE4 : mouseSetBit(THUMB_MOUSE, ev->type == EV_KeyDown); break;
|
||||
case KEY_MWHEELUP: mouseSetBit(WHEELUP_MOUSE, ev->type == EV_KeyDown); break;
|
||||
case KEY_MWHEELDOWN: mouseSetBit(WHEELDOWN_MOUSE, ev->type == EV_KeyDown); break;
|
||||
case KEY_MOUSE5: mouseSetBit(THUMB2_MOUSE, ev->type == EV_KeyDown); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
keySetState(ev->data1, ev->type == EV_KeyDown);
|
||||
if (ev->data2) keySetChar(ev->data2);
|
||||
}
|
||||
|
||||
int32_t mouseReadButtons(void)
|
||||
{
|
||||
return (!g_mouseEnabled || !appactive || !g_mouseInsideWindow || (osd && osd->flags & OSD_CAPTURE)) ? 0 : g_mouseBits;
|
||||
}
|
||||
|
||||
int mouseClickState()
|
||||
{
|
||||
return g_mouseClickState;
|
||||
}
|
||||
|
||||
void clearMouseClickState()
|
||||
{
|
||||
g_mouseClickState = MOUSE_IDLE;
|
||||
}
|
||||
|
||||
|
||||
int32_t mouseAdvanceClickState(void)
|
||||
{
|
||||
switch (g_mouseClickState)
|
||||
{
|
||||
case MOUSE_PRESSED: g_mouseClickState = MOUSE_HELD; return 1;
|
||||
case MOUSE_RELEASED: g_mouseClickState = MOUSE_IDLE; return 1;
|
||||
case MOUSE_HELD: return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
static inline int32_t MouseGetButtons(void) { return mouseReadButtons(); }
|
||||
static inline void MouseClearButton(int32_t b) { g_mouseBits &= ~b; }
|
||||
static inline void MouseClearAllButtonss(void) { g_mouseBits = 0; }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -4605,7 +4605,7 @@ static void Menu_RunScrollbar(Menu_t *cm, MenuMenuFormat_t const * const format,
|
|||
|
||||
rotatesprite_fs(scrollx + ((scrollwidth>>17)<<16) - ((tilesiz[scrollTileCursor].x>>1)*ud.menu_scrollcursorz), scrollregionstart + scale(scrollregionheight, *scrollPos, scrollPosMax), ud.menu_scrollcursorz, 0, scrollTileCursor, 0, 0, 26);
|
||||
|
||||
if (cm == m_currentMenu && !m_mousecaught && MOUSEACTIVECONDITIONAL(g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (cm == m_currentMenu && !m_mousecaught && MOUSEACTIVECONDITIONAL(inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t scrolltilehalfheight = (tilesiz[scrollTileCursor].y>>1)*ud.menu_scrollcursorz;
|
||||
const int32_t scrollregiony = scrollregionstart + scrolltilehalfheight;
|
||||
|
@ -4814,7 +4814,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -4859,7 +4859,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -4915,7 +4915,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
menu->currentColumn = 1;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[1], mousey, column1textsize.x, object->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[1], mousey, column1textsize.x, object->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -4938,7 +4938,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
menu->currentColumn = 0;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[0], mousey, column0textsize.x, object->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[0], mousey, column0textsize.x, object->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -5023,7 +5023,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((((tilesiz[SLIDEBAR+1].x)*ud.menu_slidecursorz)>>2) + ud.menu_slidebarmargin, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5122,7 +5122,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((2+tilesiz[SLIDEBAR+1].x)<<15, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5222,7 +5222,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((2+tilesiz[SLIDEBAR+1].x)<<15, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5295,7 +5295,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
}
|
||||
|
||||
#ifndef EDUKE32_TOUCH_DEVICES
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, mousewidth, h) && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, h))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, mousewidth, h) && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, h))
|
||||
#endif
|
||||
{
|
||||
if (entry == currentry && object->editfield != NULL)
|
||||
|
@ -5423,7 +5423,7 @@ static void Menu_RunOptionList(Menu_t *cm, MenuEntry_t *entry, MenuOption_t *obj
|
|||
object->options->currentEntry = e;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, object->options->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, object->options->font->get_yline()))
|
||||
{
|
||||
object->options->currentEntry = e;
|
||||
|
||||
|
@ -5446,7 +5446,7 @@ static void Menu_RunOptionList(Menu_t *cm, MenuEntry_t *entry, MenuOption_t *obj
|
|||
|
||||
static int32_t Menu_RunInput_MouseAdvance(void)
|
||||
{
|
||||
return MOUSEACTIVECONDITIONAL(!m_mousecaught && g_mouseClickState == MOUSE_RELEASED);
|
||||
return MOUSEACTIVECONDITIONAL(!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED);
|
||||
}
|
||||
|
||||
static int32_t Menu_RunInput_MouseReturn_status;
|
||||
|
@ -5491,10 +5491,10 @@ static int32_t Menu_RunInput_MouseReturn(void)
|
|||
#if !defined EDUKE32_TOUCH_DEVICES
|
||||
Menu_RunInput_MouseReturn_status = 1;
|
||||
#else
|
||||
Menu_RunInput_MouseReturn_status = (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD);
|
||||
Menu_RunInput_MouseReturn_status = (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD);
|
||||
#endif
|
||||
|
||||
return !m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, MouseReturnRegionX, 0, backbuttonbound.x, backbuttonbound.y);
|
||||
return !m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, MouseReturnRegionX, 0, backbuttonbound.x, backbuttonbound.y);
|
||||
}
|
||||
|
||||
Menu_RunInput_MouseReturn_status = 0;
|
||||
|
@ -5701,7 +5701,7 @@ static void Menu_Run(Menu_t *cm, const vec2_t origin)
|
|||
Menu_RunInput_FileSelect_MovementVerify(object);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, textdim.x, object->font[i]->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, textdim.x, object->font[i]->get_yline()))
|
||||
{
|
||||
object->findhigh[i] = dir;
|
||||
object->currentList = i;
|
||||
|
@ -6919,7 +6919,7 @@ void M_DisplayMenus(void)
|
|||
Menu_AnimateChange(MENU_QUIT, MA_Advance);
|
||||
|
||||
int32_t mousestatus = mouseReadAbs(&m_mousepos, &g_mouseAbs);
|
||||
if (mousestatus && g_mouseClickState == MOUSE_PRESSED)
|
||||
if (mousestatus && inputState.mouseClickState() == MOUSE_PRESSED)
|
||||
m_mousedownpos = m_mousepos;
|
||||
|
||||
Menu_RunInput(m_currentMenu);
|
||||
|
@ -7124,7 +7124,7 @@ void M_DisplayMenus(void)
|
|||
}
|
||||
}
|
||||
else
|
||||
g_mouseClickState = MOUSE_IDLE;
|
||||
inputState.clearMouseClickState();
|
||||
#endif
|
||||
|
||||
if ((g_player[myconnectindex].ps->gm&MODE_MENU) != MODE_MENU)
|
||||
|
|
|
@ -31,27 +31,8 @@ Modifications for JonoF's port by Jonathon Fowler (jf@jonof.id.au)
|
|||
#define mouse_h_
|
||||
|
||||
#include "baselayer.h"
|
||||
#include "inputstate.h"
|
||||
|
||||
#define LEFT_MOUSE 1
|
||||
#define RIGHT_MOUSE 2
|
||||
#define MIDDLE_MOUSE 4
|
||||
#define THUMB_MOUSE 8
|
||||
#define WHEELUP_MOUSE 16
|
||||
#define WHEELDOWN_MOUSE 32
|
||||
|
||||
#define LEFT_MOUSE_PRESSED(button) (((button)&LEFT_MOUSE) != 0)
|
||||
#define RIGHT_MOUSE_PRESSED(button) (((button)&RIGHT_MOUSE) != 0)
|
||||
#define MIDDLE_MOUSE_PRESSED(button) (((button)&MIDDLE_MOUSE) != 0)
|
||||
|
||||
static inline bool Mouse_Init(void)
|
||||
{
|
||||
mouseInit();
|
||||
return ((inputdevices & 2) == 2);
|
||||
}
|
||||
|
||||
static inline void MOUSE_Shutdown(void) { mouseUninit(); }
|
||||
static inline int32_t MOUSE_GetButtons(void) { return mouseReadButtons(); }
|
||||
static inline void MOUSE_ClearButton(int32_t b) { g_mouseBits &= ~b; }
|
||||
static inline void MOUSE_ClearAllButtons(void) { g_mouseBits = 0; }
|
||||
|
||||
#endif /* __mouse_h */
|
||||
|
|
|
@ -342,7 +342,7 @@ static void CONTROL_GetDeviceButtons(void)
|
|||
if (CONTROL_MouseEnabled)
|
||||
{
|
||||
DoGetDeviceButtons(
|
||||
MOUSE_GetButtons(), t,
|
||||
inputState.MouseGetButtons(), t,
|
||||
CONTROL_NumMouseButtons,
|
||||
CONTROL_MouseButtonState,
|
||||
CONTROL_MouseButtonClickedTime,
|
||||
|
@ -636,10 +636,9 @@ bool CONTROL_Startup(controltype which, int32_t(*TimeFunction)(void), int32_t ti
|
|||
if (initinput())
|
||||
return true;
|
||||
|
||||
KB_Startup();
|
||||
|
||||
CONTROL_NumMouseButtons = MAXMOUSEBUTTONS;
|
||||
CONTROL_MousePresent = Mouse_Init();
|
||||
mouseInit();
|
||||
CONTROL_MousePresent = ((inputdevices & 2) == 2);
|
||||
CONTROL_MouseEnabled = CONTROL_MousePresent;
|
||||
|
||||
CONTROL_ResetJoystickValues();
|
||||
|
@ -654,7 +653,7 @@ void CONTROL_Shutdown(void)
|
|||
if (!CONTROL_Started)
|
||||
return;
|
||||
|
||||
MOUSE_Shutdown();
|
||||
mouseUninit();
|
||||
uninitinput();
|
||||
|
||||
CONTROL_Started = FALSE;
|
||||
|
|
|
@ -36,14 +36,14 @@ int32_t I_CheckAllInput(void)
|
|||
{
|
||||
return
|
||||
inputState.keyBufferWaiting()
|
||||
|| MOUSE_GetButtons()
|
||||
|| inputState.MouseGetButtons()
|
||||
|| JOYSTICK_GetButtons();
|
||||
}
|
||||
void I_ClearAllInput(void)
|
||||
{
|
||||
inputState.keyFlushChars();
|
||||
inputState.ClearKeysDown();
|
||||
MOUSE_ClearAllButtons();
|
||||
inputState.MouseClearAllButtonss();
|
||||
JOYSTICK_ClearAllButtons();
|
||||
inputState.ClearAllButtons();
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ int32_t I_TextSubmit(void)
|
|||
return
|
||||
inputState.GetKeyStatus(sc_Enter)
|
||||
|| inputState.GetKeyStatus(sc_kpad_Enter)
|
||||
//|| MOUSEINACTIVECONDITIONAL(MOUSE_GetButtons()&LEFT_MOUSE)
|
||||
//|| MOUSEINACTIVECONDITIONAL(inputState.MouseGetButtons()&LEFT_MOUSE)
|
||||
|| (JOYSTICK_GetGameControllerButtons()&(1<<GAMECONTROLLER_BUTTON_A));
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ void I_TextSubmitClear(void)
|
|||
inputState.keyFlushChars();
|
||||
inputState.ClearKeyStatus(sc_kpad_Enter);
|
||||
inputState.ClearKeyStatus(sc_Enter);
|
||||
MOUSE_ClearButton(LEFT_MOUSE);
|
||||
inputState.MouseClearButton(LEFT_MOUSE);
|
||||
JOYSTICK_ClearGameControllerButton(1<<GAMECONTROLLER_BUTTON_A);
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ int32_t I_ReturnTrigger(void)
|
|||
{
|
||||
return
|
||||
inputState.GetKeyStatus(sc_Escape)
|
||||
|| (MOUSE_GetButtons()&RIGHT_MOUSE)
|
||||
|| (inputState.MouseGetButtons()&RIGHT_MOUSE)
|
||||
|| (JOYSTICK_GetGameControllerButtons()&(1<<GAMECONTROLLER_BUTTON_B));
|
||||
}
|
||||
|
||||
|
@ -92,7 +92,7 @@ void I_ReturnTriggerClear(void)
|
|||
{
|
||||
inputState.keyFlushChars();
|
||||
inputState.ClearKeyStatus(sc_Escape);
|
||||
MOUSE_ClearButton(RIGHT_MOUSE);
|
||||
inputState.MouseClearButton(RIGHT_MOUSE);
|
||||
JOYSTICK_ClearGameControllerButton(1<<GAMECONTROLLER_BUTTON_B);
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ int32_t I_MenuUp(void)
|
|||
return
|
||||
inputState.GetKeyStatus(sc_UpArrow)
|
||||
|| inputState.GetKeyStatus(sc_kpad_8)
|
||||
|| (MOUSE_GetButtons()&WHEELUP_MOUSE)
|
||||
|| (inputState.MouseGetButtons()&WHEELUP_MOUSE)
|
||||
|| inputState.BUTTON(gamefunc_Move_Forward)
|
||||
|| (JOYSTICK_GetHat(0)&HAT_UP)
|
||||
|| (JOYSTICK_GetGameControllerButtons()&(1<<GAMECONTROLLER_BUTTON_DPAD_UP))
|
||||
|
@ -149,7 +149,7 @@ void I_MenuUpClear(void)
|
|||
{
|
||||
inputState.ClearKeyStatus(sc_UpArrow);
|
||||
inputState.ClearKeyStatus(sc_kpad_8);
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
inputState.ClearButton(gamefunc_Move_Forward);
|
||||
JOYSTICK_ClearHat(0);
|
||||
JOYSTICK_ClearGameControllerButton(1<<GAMECONTROLLER_BUTTON_DPAD_UP);
|
||||
|
@ -162,7 +162,7 @@ int32_t I_MenuDown(void)
|
|||
return
|
||||
inputState.GetKeyStatus(sc_DownArrow)
|
||||
|| inputState.GetKeyStatus(sc_kpad_2)
|
||||
|| (MOUSE_GetButtons()&WHEELDOWN_MOUSE)
|
||||
|| (inputState.MouseGetButtons()&WHEELDOWN_MOUSE)
|
||||
|| inputState.BUTTON(gamefunc_Move_Backward)
|
||||
|| (JOYSTICK_GetHat(0)&HAT_DOWN)
|
||||
|| (JOYSTICK_GetGameControllerButtons()&(1<<GAMECONTROLLER_BUTTON_DPAD_DOWN))
|
||||
|
@ -174,7 +174,7 @@ void I_MenuDownClear(void)
|
|||
inputState.ClearKeyStatus(sc_DownArrow);
|
||||
inputState.ClearKeyStatus(sc_kpad_2);
|
||||
inputState.ClearKeyStatus(sc_PgDn);
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.ClearButton(gamefunc_Move_Backward);
|
||||
JOYSTICK_ClearHat(0);
|
||||
JOYSTICK_ClearGameControllerButton(1<<GAMECONTROLLER_BUTTON_DPAD_DOWN);
|
||||
|
@ -216,7 +216,7 @@ int32_t I_MenuRight(void)
|
|||
|| (!inputState.ShiftPressed() && inputState.GetKeyStatus(sc_Tab))
|
||||
|| inputState.BUTTON(gamefunc_Turn_Right)
|
||||
|| inputState.BUTTON(gamefunc_Strafe_Right)
|
||||
|| (MOUSE_GetButtons()&MIDDLE_MOUSE)
|
||||
|| (inputState.MouseGetButtons()&MIDDLE_MOUSE)
|
||||
|| (JOYSTICK_GetHat(0)&HAT_RIGHT)
|
||||
|| (JOYSTICK_GetGameControllerButtons()&(1<<GAMECONTROLLER_BUTTON_DPAD_RIGHT))
|
||||
|| CONTROL_GetGameControllerDigitalAxisPos(GAMECONTROLLER_AXIS_LEFTX)
|
||||
|
@ -230,7 +230,7 @@ void I_MenuRightClear(void)
|
|||
inputState.ClearKeyStatus(sc_Tab);
|
||||
inputState.ClearButton(gamefunc_Turn_Right);
|
||||
inputState.ClearButton(gamefunc_Strafe_Right);
|
||||
MOUSE_ClearButton(MIDDLE_MOUSE);
|
||||
inputState.MouseClearButton(MIDDLE_MOUSE);
|
||||
JOYSTICK_ClearHat(0);
|
||||
JOYSTICK_ClearGameControllerButton(1<<GAMECONTROLLER_BUTTON_DPAD_RIGHT);
|
||||
CONTROL_ClearGameControllerDigitalAxisPos(GAMECONTROLLER_AXIS_LEFTX);
|
||||
|
@ -278,7 +278,7 @@ int32_t I_SliderLeft(void)
|
|||
return
|
||||
I_MenuLeft()
|
||||
#if !defined EDUKE32_TOUCH_DEVICES
|
||||
//|| MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELUP_MOUSE))
|
||||
//|| MOUSEINACTIVECONDITIONAL((inputState.MouseGetButtons()&LEFT_MOUSE) && (inputState.MouseGetButtons()&WHEELUP_MOUSE))
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
@ -286,7 +286,7 @@ int32_t I_SliderLeft(void)
|
|||
void I_SliderLeftClear(void)
|
||||
{
|
||||
I_MenuLeftClear();
|
||||
MOUSE_ClearButton(WHEELUP_MOUSE);
|
||||
inputState.MouseClearButton(WHEELUP_MOUSE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -295,7 +295,7 @@ int32_t I_SliderRight(void)
|
|||
return
|
||||
I_MenuRight()
|
||||
#if !defined EDUKE32_TOUCH_DEVICES
|
||||
//|| MOUSEINACTIVECONDITIONAL((MOUSE_GetButtons()&LEFT_MOUSE) && (MOUSE_GetButtons()&WHEELDOWN_MOUSE))
|
||||
//|| MOUSEINACTIVECONDITIONAL((inputState.MouseGetButtons()&LEFT_MOUSE) && (inputState.MouseGetButtons()&WHEELDOWN_MOUSE))
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
@ -303,7 +303,7 @@ int32_t I_SliderRight(void)
|
|||
void I_SliderRightClear(void)
|
||||
{
|
||||
I_MenuRightClear();
|
||||
MOUSE_ClearButton(WHEELDOWN_MOUSE);
|
||||
inputState.MouseClearButton(WHEELDOWN_MOUSE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4897,7 +4897,7 @@ static void Menu_RunScrollbar(Menu_t *cm, MenuMenuFormat_t const * const format,
|
|||
|
||||
rotatesprite_fs(scrollx + (scrollwidth>>1) - ((tilesiz[scrollTileCursor].x*ud.menu_scrollcursorz)>>1), scrollregionstart + scale(scrollregionheight, *scrollPos, scrollPosMax), ud.menu_scrollcursorz, 0, scrollTileCursor, 0, 0, 26);
|
||||
|
||||
if (cm == m_currentMenu && !m_mousecaught && MOUSEACTIVECONDITIONAL(g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (cm == m_currentMenu && !m_mousecaught && MOUSEACTIVECONDITIONAL(inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t scrolltilehalfheight = (tilesiz[scrollTileCursor].y*ud.menu_scrollcursorz)>>1;
|
||||
const int32_t scrollregiony = scrollregionstart + scrolltilehalfheight;
|
||||
|
@ -5106,7 +5106,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -5151,7 +5151,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, entry->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -5201,7 +5201,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
menu->currentColumn = 1;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[1], mousey, column1textsize.x, object->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[1], mousey, column1textsize.x, object->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -5224,7 +5224,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
menu->currentColumn = 0;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[0], mousey, column0textsize.x, object->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, columnx[0], mousey, column0textsize.x, object->font->get_yline()))
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
|
@ -5310,7 +5310,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((((tilesiz[cursorTile].x)*ud.menu_slidecursorz)>>2) + ud.menu_slidebarmargin, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5410,7 +5410,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((2+tilesiz[cursorTile].x)<<15, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5511,7 +5511,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_RunInput_Menu_MovementVerify(menu);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD))
|
||||
if (!m_mousecaught && (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD))
|
||||
{
|
||||
const int32_t slidepointhalfwidth = mulscale16((2+tilesiz[cursorTile].x)<<15, z);
|
||||
const int32_t slideregionx = slidebarx + slidepointhalfwidth;
|
||||
|
@ -5584,7 +5584,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
}
|
||||
|
||||
#ifndef EDUKE32_TOUCH_DEVICES
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, mousewidth, h) && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, h))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, mousewidth, h) && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, h))
|
||||
#endif
|
||||
{
|
||||
if (entry == currentry && object->editfield != NULL)
|
||||
|
@ -5655,7 +5655,7 @@ static void M_RunMenu_CdPlayer(Menu_t *cm, MenuMenu_t *menu, const vec2_t origin
|
|||
|
||||
if (MOUSEACTIVECONDITIONAL(cm == m_currentMenu && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, 8<<16, 8<<16)))
|
||||
{
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED)
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED)
|
||||
{
|
||||
menu->currentEntry = e;
|
||||
|
||||
|
@ -5692,7 +5692,7 @@ static void M_RunMenu_CdPlayer(Menu_t *cm, MenuMenu_t *menu, const vec2_t origin
|
|||
const int32_t mousey = origin.y+(113<<16)-(8<<16);
|
||||
if (MOUSEACTIVECONDITIONAL(cm == m_currentMenu && !Menu_MouseOutsideBounds(&m_mousepos, mousex, mousey, 16<<16, 16<<16)))
|
||||
{
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED)
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED)
|
||||
{
|
||||
mus_enabled = !mus_enabled;
|
||||
|
||||
|
@ -5798,7 +5798,7 @@ static void Menu_RunOptionList(Menu_t *cm, MenuEntry_t *entry, MenuOption_t *obj
|
|||
object->options->currentEntry = e;
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, object->options->font->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, mousewidth, object->options->font->get_yline()))
|
||||
{
|
||||
object->options->currentEntry = e;
|
||||
|
||||
|
@ -5821,7 +5821,7 @@ static void Menu_RunOptionList(Menu_t *cm, MenuEntry_t *entry, MenuOption_t *obj
|
|||
|
||||
static int32_t Menu_RunInput_MouseAdvance(void)
|
||||
{
|
||||
return MOUSEACTIVECONDITIONAL(!m_mousecaught && g_mouseClickState == MOUSE_RELEASED);
|
||||
return MOUSEACTIVECONDITIONAL(!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED);
|
||||
}
|
||||
|
||||
static int32_t Menu_RunInput_MouseReturn_status;
|
||||
|
@ -5866,10 +5866,10 @@ static int32_t Menu_RunInput_MouseReturn(void)
|
|||
#if !defined EDUKE32_TOUCH_DEVICES
|
||||
Menu_RunInput_MouseReturn_status = 1;
|
||||
#else
|
||||
Menu_RunInput_MouseReturn_status = (g_mouseClickState == MOUSE_PRESSED || g_mouseClickState == MOUSE_HELD);
|
||||
Menu_RunInput_MouseReturn_status = (inputState.mouseClickState() == MOUSE_PRESSED || inputState.mouseClickState() == MOUSE_HELD);
|
||||
#endif
|
||||
|
||||
return !m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, MouseReturnRegionX, 0, backbuttonbound.x, backbuttonbound.y);
|
||||
return !m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, MouseReturnRegionX, 0, backbuttonbound.x, backbuttonbound.y);
|
||||
}
|
||||
|
||||
Menu_RunInput_MouseReturn_status = 0;
|
||||
|
@ -6068,7 +6068,7 @@ static void Menu_Run(Menu_t *cm, const vec2_t origin)
|
|||
Menu_RunInput_FileSelect_MovementVerify(object);
|
||||
}
|
||||
|
||||
if (!m_mousecaught && g_mouseClickState == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, textdim.x, object->font[i]->get_yline()))
|
||||
if (!m_mousecaught && inputState.mouseClickState() == MOUSE_RELEASED && !Menu_MouseOutsideBounds(&m_mousedownpos, mousex, mousey, textdim.x, object->font[i]->get_yline()))
|
||||
{
|
||||
object->findhigh[i] = dir;
|
||||
object->currentList = i;
|
||||
|
@ -7472,7 +7472,7 @@ void M_DisplayMenus(void)
|
|||
Menu_AnimateChange(MENU_QUIT, MA_Advance);
|
||||
|
||||
int32_t mousestatus = mouseReadAbs(&m_mousepos, &g_mouseAbs);
|
||||
if (mousestatus && g_mouseClickState == MOUSE_PRESSED)
|
||||
if (mousestatus && inputState.mouseClickState() == MOUSE_PRESSED)
|
||||
m_mousedownpos = m_mousepos;
|
||||
|
||||
Menu_RunInput(m_currentMenu);
|
||||
|
@ -7580,7 +7580,8 @@ void M_DisplayMenus(void)
|
|||
}
|
||||
}
|
||||
else
|
||||
g_mouseClickState = MOUSE_IDLE;
|
||||
inputState.clearMouseClickState();
|
||||
|
||||
#endif
|
||||
|
||||
if ((g_player[myconnectindex].ps->gm&MODE_MENU) != MODE_MENU)
|
||||
|
|
Loading…
Reference in a new issue