aboutsummaryrefslogtreecommitdiff
path: root/src/client/lua_api/gui/iguiutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/lua_api/gui/iguiutil.cpp')
-rw-r--r--src/client/lua_api/gui/iguiutil.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/client/lua_api/gui/iguiutil.cpp b/src/client/lua_api/gui/iguiutil.cpp
new file mode 100644
index 0000000..0e8d179
--- /dev/null
+++ b/src/client/lua_api/gui/iguiutil.cpp
@@ -0,0 +1,61 @@
+#include <stdio.h>
+
+extern "C" {
+ #include <lua.h>
+ #include <lauxlib.h>
+ #include <lualib.h>
+}
+
+#include <btBulletDynamicsCommon.h>
+
+#include <irrlicht.h>
+#include "iguiutil.hpp"
+
+int lua_popvector2(lua_State* L,int pos, float* x,float* y){
+ float p[2];
+
+ for(int i = 0; i < 2; i++){
+ lua_pushnumber(L,i+1);
+ lua_gettable(L,pos);
+ p[i] = (float) lua_tonumber(L,-1);
+ lua_pop(L,1);
+ }
+
+ printf("Found vector (%f,%f)\n",p[0],p[1]);
+ *x = p[0];
+ *y = p[1];
+ return 0;
+}
+
+int lua_popvector2i(lua_State* L,int pos, int* x,int* y){
+ int p[2];
+
+ for(int i = 0; i < 2; i++){
+ lua_pushnumber(L,i+1);
+ lua_gettable(L,pos);
+ p[i] = (int) lua_tonumber(L,-1);
+ lua_pop(L,1);
+ }
+
+ printf("Found vector (%d,%d)\n",p[0],p[1]);
+ *x = p[0];
+ *y = p[1];
+ return 0;
+}
+
+int lua_popscolor(lua_State* L, int pos, irr::video::SColor* c){
+ int p[4];
+
+ for(int i = 0; i < 4; i++){
+ lua_pushnumber(L,i+1);
+ lua_gettable(L,pos);
+ p[i] = (int) lua_tonumber(L,-1);
+ lua_pop(L,1);
+ }
+ c->setRed(p[0]);
+ c->setBlue(p[1]);
+ c->setGreen(p[2]);
+ c->setAlpha(p[3]);
+
+ return 0;
+}