aboutsummaryrefslogtreecommitdiff
path: root/src/core/fncwrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/fncwrapper.cpp')
-rw-r--r--src/core/fncwrapper.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/core/fncwrapper.cpp b/src/core/fncwrapper.cpp
index 8f08bae..c19f313 100644
--- a/src/core/fncwrapper.cpp
+++ b/src/core/fncwrapper.cpp
@@ -1,13 +1,22 @@
#include "vmrunner.hpp"
#include "fncmodules.hpp"
+#define bindFuncr(fs,fn) if(getHash(fnc)==getHash(fs))vm->vmSetRetValf(fn().r())
+#define bindFunci(fs,fn) if(getHash(fnc)==getHash(fs))vm->vmSetRetVald(fn().i())
+#define bindFuncv(fs,fn) if(getHash(fnc)==getHash(fs))fn()
extern unsigned getHash(const char *s);
void callFnc(const char* fnc)
{
- if(getHash(fnc)==getHash("randi"))
- vm->vmSetRetVald(randi().i());
- if(getHash(fnc)==getHash("randr"))
- vm->vmSetRetValf(randr().r());
- if(getHash(fnc)==getHash("createBullet"))
- vm->vmSetRetValf(createBullet().i());
+ bindFunci("randi",randi);bindFuncr("randr",randr);
+ bindFunci("createBullet",createBullet);
+ bindFuncv("setBulletPropf",setBulletPropf);
+ bindFuncv("setBulletPropi",setBulletPropi);
+ bindFuncr("sin",vmsin);bindFuncr("cos",vmcos);
+ bindFuncr("tan",vmtan);bindFuncr("sqrt",vmsqrt);
+ bindFuncr("absf",vmabsf);bindFunci("absd",vmabsd);
+ bindFuncr("asin",vmasin);bindFuncr("acos",vmacos);
+ bindFuncr("atan",vmatan);bindFuncr("atan2",vmatan2);
+ bindFuncr("log",vmlog);bindFuncr("ceil",vmceil);
+ bindFuncr("floor",vmfloor);bindFuncr("trunc",vmtrunc);
+ bindFuncr("round",vmround);
if(callStk.empty())callStk.clear();
}