From 06d3e8182d018ca613f177f6ff7a3bbb6494cc79 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 28 May 2018 17:07:04 -0400 Subject: Various additions Various additions, updates, and bugfixes while making mahjong solitare. --- src/shared/lua_api/common.c | 37 +++++++++++++++++++++++++++++++++++++ src/shared/lua_api/common.h | 3 +++ 2 files changed, 40 insertions(+) (limited to 'src/shared') diff --git a/src/shared/lua_api/common.c b/src/shared/lua_api/common.c index 9a8baca..2eeee11 100644 --- a/src/shared/lua_api/common.c +++ b/src/shared/lua_api/common.c @@ -153,6 +153,43 @@ int popvector3d(lua_State* L,double* a,double* b,double* c){ return 0; } +int popvector4d(lua_State* L, double *a, double *b, double *c, double *d){ + lua_pushinteger(L,1);//{a,b,c,d},1 + lua_gettable(L,-2);//{a,b,c,d},a + *a = lua_tonumber(L,-1);//{a,b,c,d},a + lua_pop(L,1);//{a,b,c,d} + + lua_pushinteger(L,2); + lua_gettable(L,-2); + *b = lua_tonumber(L,-1); + lua_pop(L,1); + + lua_pushinteger(L,3); + lua_gettable(L,-2); + *c = lua_tonumber(L,-1); + lua_pop(L,1); + + lua_pushinteger(L,4); + lua_gettable(L,-2); + *d = lua_tonumber(L,-1); + lua_pop(L,1); + + lua_pop(L,1); + return 0; +} + +//{{sx,sy},{ex,ey}} +int poprecti(lua_State* L, long *sx, long *sy, long *ex, long *ey){ + lua_pushnumber(L,1); + lua_gettable(L,-2); + popvector2i(L,sx,sy); + lua_pushnumber(L,2); + lua_gettable(L,-2); + popvector2i(L,ex,ey); + lua_pop(L,1); + return 0; +} + int popvector2i(lua_State* L, long* a, long* b){ lua_pushinteger(L,1); lua_gettable(L,-2); diff --git a/src/shared/lua_api/common.h b/src/shared/lua_api/common.h index c2e067d..6086065 100644 --- a/src/shared/lua_api/common.h +++ b/src/shared/lua_api/common.h @@ -12,6 +12,9 @@ int pushvector3d(lua_State*,double,double,double); int pushvector2i(lua_State*,long,long); int popvector4i(lua_State*,long*,long*,long*,long*); +int popvector4d(lua_State*,double*,double*,double*,double*); int popvector3i(lua_State*,long*,long*,long*); int popvector3d(lua_State*,double*,double*,double*); int popvector2i(lua_State*,long*,long*); + +int poprecti(lua_State* L,long*,long*,long*,long*); -- cgit v1.2.3-70-g09d2