35 lines
749 B
C++
35 lines
749 B
C++
|
|
#include "input.h"
|
|
|
|
void process_input(SDL_Keysym keysym) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Call engine.keypressed(key)
|
|
lua_getglobal(luaState, "engine");
|
|
if (lua_istable(luaState, -1)) {
|
|
lua_getfield(luaState, -1, "KeyPressed");
|
|
if (lua_isfunction(luaState, -1)) {
|
|
lua_pushinteger(luaState, keysym.scancode);
|
|
|
|
if (lua_pcall(luaState, 1, 0, 0) != LUA_OK) {
|
|
const char* error = lua_tostring(luaState, -1);
|
|
std::cerr << "Lua error in engine.keypressed: " << error << std::endl;
|
|
}
|
|
}
|
|
}
|
|
|
|
switch (keysym.scancode) {
|
|
case SDL_SCANCODE_ESCAPE:
|
|
isRunning = false;
|
|
|
|
std::cout << "Closing game\n";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|