transferred input processing to its own file
This commit is contained in:
parent
077b2759ad
commit
f44bcede74
3 changed files with 25 additions and 56 deletions
|
@ -1,35 +1,32 @@
|
||||||
|
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
void process_input(SDL_Keysym keysym) {
|
void process_input(SDL_Keysym &keysym, bool down, lua_State &luaState) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Call engine.keypressed(key)
|
|
||||||
lua_getglobal(luaState, "engine");
|
lua_getglobal(luaState, "engine");
|
||||||
|
|
||||||
if (lua_istable(luaState, -1)) {
|
if (lua_istable(luaState, -1)) {
|
||||||
|
if (down) {
|
||||||
|
lua_getfield(luaState, -1, "KeyDown");
|
||||||
|
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.KeyDown: " << error << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
lua_getfield(luaState, -1, "KeyPressed");
|
lua_getfield(luaState, -1, "KeyPressed");
|
||||||
if (lua_isfunction(luaState, -1)) {
|
if (lua_isfunction(luaState, -1)) {
|
||||||
lua_pushinteger(luaState, keysym.scancode);
|
lua_pushinteger(luaState, keysym.scancode);
|
||||||
|
|
||||||
if (lua_pcall(luaState, 1, 0, 0) != LUA_OK) {
|
if (lua_pcall(luaState, 1, 0, 0) != LUA_OK) {
|
||||||
const char* error = lua_tostring(luaState, -1);
|
const char* error = lua_tostring(luaState, -1);
|
||||||
std::cerr << "Lua error in engine.keypressed: " << error << std::endl;
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void process_input();
|
void process_input(SDL_Keysym &keysym, bool down, lua_State &luaState);
|
||||||
|
|
|
@ -20,33 +20,6 @@ void createLuaTables() {
|
||||||
lua_setglobal(luaState, "engine");
|
lua_setglobal(luaState, "engine");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TEMPORARY
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
std::cout << "Starting...\n";
|
std::cout << "Starting...\n";
|
||||||
|
|
||||||
|
@ -107,8 +80,7 @@ int main(int argc, char* argv[]) {
|
||||||
SDL_Keysym* keysym;
|
SDL_Keysym* keysym;
|
||||||
keysym = &key->keysym;
|
keysym = &key->keysym;
|
||||||
|
|
||||||
process_input(*keysym);
|
process_input(*keysym, false, *luaState);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue