summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-05-31 17:38:13 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-05-31 17:38:13 (GMT)
commit2c8c4bc567b09996ee69584a7229356cd411c51a (patch)
tree3298c14e85fb4bf7c0741851c0cdd6068b59c843 /src
parent2327d9678d5b75f1fcf6133966de8f4d754b0476 (diff)
downloadpowder-2c8c4bc567b09996ee69584a7229356cd411c51a.zip
powder-2c8c4bc567b09996ee69584a7229356cd411c51a.tar.gz
Pass mouse coordinates (mousex, mousey, mouseb, mousebq) and Lua click handling
Diffstat (limited to 'src')
-rw-r--r--src/luaconsole.c16
-rw-r--r--src/main.c14
2 files changed, 19 insertions, 11 deletions
diff --git a/src/luaconsole.c b/src/luaconsole.c
index 53f81f0..9e55d76 100644
--- a/src/luaconsole.c
+++ b/src/luaconsole.c
@@ -34,17 +34,23 @@ void luacon_open(){
luaL_openlibs(l);
luaL_openlib(l, "tpt", tptluaapi, 0);
}
-int luacon_step(){
+int luacon_step(int mx, int my, int mb, int mbq, char key){
if(step_function && step_function[0]){
+ //Set mouse globals
+ lua_pushinteger(l, mbq);
+ lua_pushinteger(l, mb);
+ lua_pushinteger(l, my);
+ lua_pushinteger(l, mx);
+ lua_setfield(l, LUA_GLOBALSINDEX, "mousex");
+ lua_setfield(l, LUA_GLOBALSINDEX, "mousey");
+ lua_setfield(l, LUA_GLOBALSINDEX, "mouseb");
+ lua_setfield(l, LUA_GLOBALSINDEX, "mousebq");
lua_getfield(l, LUA_GLOBALSINDEX, step_function);
lua_call(l, 0, 0);
+ return lua_toboolean(l, -1);
}
return 0;
}
-int luacon_keypress(char key){
- //Nothing here yet
- return 0;
-}
int luacon_eval(char *command){
return luaL_dostring (l, command);
}
diff --git a/src/main.c b/src/main.c
index c7e325d91..bbaee68 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2372,9 +2372,9 @@ int main(int argc, char *argv[])
}
}
}
-#ifdef LUACONSOLE
- luacon_keypress(sdl_key);
-#endif
+//#ifdef LUACONSOLE
+ //luacon_keypress(sdl_key);
+//#endif
#ifdef PYCONSOLE
if (pyready==1 && pygood==1)
if (pkey!=NULL && sdl_key!=NULL)
@@ -2466,6 +2466,11 @@ int main(int argc, char *argv[])
bq = b; // bq is previous mouse state
b = SDL_GetMouseState(&x, &y); // b is current mouse state
+#ifdef LUACONSOLE
+ if(luacon_step(x, y, b, bq, sdl_key))
+ b = 0; //Mouse click was handled by Lua step
+#endif
+
for (i=0; i<SC_TOTAL; i++)//draw all the menu sections
{
draw_menu(vid_buf, i, active_menu);
@@ -3372,9 +3377,6 @@ int main(int argc, char *argv[])
}
//execute python step hook
-#ifdef LUACONSOLE
- luacon_step();
-#endif
#ifdef PYCONSOLE
if (pyready==1 && pygood==1)
if (pstep!=NULL)