aboutsummaryrefslogtreecommitdiff
path: root/src/core/fncmodules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/fncmodules.cpp')
-rw-r--r--src/core/fncmodules.cpp48
1 files changed, 47 insertions, 1 deletions
diff --git a/src/core/fncmodules.cpp b/src/core/fncmodules.cpp
index 8d1c8b6..6ae2570 100644
--- a/src/core/fncmodules.cpp
+++ b/src/core/fncmodules.cpp
@@ -1 +1,47 @@
-
+#include <cstdarg>
+#include "smmath.hpp"
+#include "bullet.hpp"
+#include "scriptshared.hpp"
+#include "vmrunner.hpp"
+Idata randr(Idata a,...)
+{
+ Idata ret;ret.type=1;
+ va_list val;
+ va_start(val,a);
+ extern blrScriptVM *vm;
+ ret.r()=vm->re->nextDouble(a.r(),va_arg(val,Idata).r());
+ va_end(val);
+ return ret;
+}
+Idata randi(Idata a,...)
+{
+ Idata ret;ret.type=0;
+ va_list val;
+ va_start(val,a);
+ extern blrScriptVM *vm;
+ ret.i()=vm->re->nextInt(a.i(),va_arg(val,Idata).i());
+ va_end(val);
+ return ret;
+}
+Idata createBullet(Idata x,...)
+{
+ Idata y,bs,rad;
+ va_list val;
+ va_start(val,x);
+ y=va_arg(val,Idata);
+ bs=va_arg(val,Idata);
+ rad=va_arg(val,Idata);
+ extern bulletManager *bmInstance;
+ int i=bmInstance->allocBullet<bulletBase>();
+ bmInstance->getHandle(i)->init();
+ bmInstance->getHandle(i)->pos.x=x.r();
+ bmInstance->getHandle(i)->pos.y=y.r();
+ bmInstance->getHandle(i)->vel=bs.r()*smvec2d(cos(rad.r()),sin(rad.r()));
+ bmInstance->getHandle(i)->acc=smvec2d(0,0);
+ bmInstance->getHandle(i)->basecolor=blue;
+ bmInstance->getHandle(i)->rendercolor=0xC0FFFFFF;
+ bmInstance->getHandle(i)->collrange=4;
+ bmInstance->getHandle(i)->scollrange=16;
+ Idata ret;ret.type=0;ret.i()=i;
+ return ret;
+}