Pass mouse coordinates (mousex, mousey, mouseb, mousebq) and Lua click handling

This commit is contained in:
Simon Robertshaw 2011-05-31 18:38:13 +01:00
parent 2327d9678d
commit 2c8c4bc567
4 changed files with 22 additions and 12 deletions

View File

@ -9,4 +9,6 @@ function do_step()
increment = 2
end
tpt.drawtext(numberthing, 50, "Oh my god, this is amazing", 255, 255, 255, 255)
tpt.drawtext(mousex, mousey, "Oh my god, this is amazing", 255, 255, 255, 255)
return true
end

View File

@ -6,7 +6,7 @@
#include <defines.h>
void luacon_open();
int luacon_step();
int luacon_step(int mx, int my, int mb, int mbq, char key);
int luacon_keypress(char key);
int luacon_eval(char *command);
char *luacon_geterror();

View File

@ -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);
}

View File

@ -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)