mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-24 21:31:46 +00:00
Also use KeyDown for gamepads, add player argument
This commit is contained in:
parent
be3e7e7edf
commit
92b5e32127
2 changed files with 13 additions and 14 deletions
19
src/g_game.c
19
src/g_game.c
|
@ -2302,21 +2302,16 @@ boolean G_LuaResponder(event_t *ev)
|
||||||
{
|
{
|
||||||
boolean cancelled = false;
|
boolean cancelled = false;
|
||||||
|
|
||||||
if (ev->type == ev_keydown)
|
switch (ev->type)
|
||||||
{
|
{
|
||||||
cancelled = LUA_HookKey(ev, HOOK(KeyDown));
|
case ev_keydown: cancelled = LUA_HookKey(ev, HOOK(KeyDown)); break;
|
||||||
LUA_InvalidateUserdata(ev);
|
case ev_keyup: cancelled = LUA_HookKey(ev, HOOK(KeyUp)); break;
|
||||||
|
case ev_gamepad_down: cancelled = LUA_HookGamepadButton(ev, HOOK(GamepadButtonDown)) | LUA_HookKey(ev, HOOK(KeyDown)); break;
|
||||||
|
case ev_gamepad_up: cancelled = LUA_HookGamepadButton(ev, HOOK(GamepadButtonUp)) | LUA_HookKey(ev, HOOK(KeyUp)); break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
else if (ev->type == ev_keyup)
|
|
||||||
{
|
|
||||||
cancelled = LUA_HookKey(ev, HOOK(KeyUp));
|
|
||||||
LUA_InvalidateUserdata(ev);
|
|
||||||
}
|
|
||||||
else if (ev->type == ev_gamepad_down)
|
|
||||||
cancelled = LUA_HookGamepadButton(ev, HOOK(GamepadButtonDown));
|
|
||||||
else if (ev->type == ev_gamepad_up)
|
|
||||||
cancelled = LUA_HookGamepadButton(ev, HOOK(GamepadButtonUp));
|
|
||||||
|
|
||||||
|
LUA_InvalidateUserdata(ev);
|
||||||
return cancelled;
|
return cancelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -169,9 +169,13 @@ static luaL_Reg lib[] = {
|
||||||
static int lib_getGameKeyDown(lua_State *L)
|
static int lib_getGameKeyDown(lua_State *L)
|
||||||
{
|
{
|
||||||
int i = luaL_checkinteger(L, 2);
|
int i = luaL_checkinteger(L, 2);
|
||||||
|
int p = luaL_optinteger(L, 3, 0);
|
||||||
if (i < 0 || i >= NUMINPUTS)
|
if (i < 0 || i >= NUMINPUTS)
|
||||||
return luaL_error(L, "Key index %d out of range (0 - %d)", i, NUMINPUTS-1);
|
return luaL_error(L, "Key index %d out of range (0 - %d)", i, NUMINPUTS-1);
|
||||||
lua_pushboolean(L, G_CheckKeyDown(0, i, false) || G_CheckKeyDown(1, i, false));
|
if (p > 0)
|
||||||
|
lua_pushboolean(L, G_CheckKeyDown(p-1, i, false));
|
||||||
|
else
|
||||||
|
lua_pushboolean(L, G_CheckKeyDown(0, i, false) | G_CheckKeyDown(1, i, false));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue