Changed love.keyboard.isDown() to accept string args

This commit is contained in:
rxi
2016-09-24 23:45:59 +01:00
parent ccb011be2d
commit 7cee8f6854

View File

@@ -85,6 +85,7 @@ void keyboard_deinit(void) {
*/ */
const char *scancodeMap[] = { const char *scancodeMap[] = {
[ 0] = "?",
[ 1] = "escape", [ 1] = "escape",
[ 2] = "1", [ 2] = "1",
[ 3] = "2", [ 3] = "2",
@@ -217,9 +218,14 @@ const char *scancodeMap[] = {
int l_keyboard_isDown(lua_State *L) { int l_keyboard_isDown(lua_State *L) {
int code = luaL_checknumber(L, 1); int n = lua_gettop(L);
if (code < 0 || code >= KEYBOARD_KEY_MAX) return 0; int res = 0;
lua_pushboolean(L, keyboard_keyStates[code]); int i;
for (i = 1; i <= n; i++) {
int code = luaL_checkoption(L, 1, NULL, scancodeMap);
res |= keyboard_keyStates[code];
}
lua_pushboolean(L, res);
return 1; return 1;
} }