diff options
author | Chris Xiong <chirs241097@gmail.com> | 2015-10-05 23:49:07 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2015-10-05 23:49:07 +0800 |
commit | 7f6e5a022b800af0a2f7ab502743805e6fbc448c (patch) | |
tree | 6a96d4b0d49fc0f0325dc26661cbfc6d2ec3781a /src/core/fncmodules.cpp | |
parent | 068cfdc8fb0e31c9ff736ee426f1291d07115c11 (diff) | |
download | bullet-lab-remix-7f6e5a022b800af0a2f7ab502743805e6fbc448c.tar.xz |
Enable the BLR script VM (prototype).
The code (definitely) still require improvements.
TODOs:
Reimplement the call stack.
Unify float data types.
Diffstat (limited to 'src/core/fncmodules.cpp')
-rw-r--r-- | src/core/fncmodules.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/core/fncmodules.cpp b/src/core/fncmodules.cpp index 14d2f48..08747c8 100644 --- a/src/core/fncmodules.cpp +++ b/src/core/fncmodules.cpp @@ -2,7 +2,6 @@ #include "bullet.hpp" #include "scriptshared.hpp" #include "vmrunner.hpp" -extern callStack<Idata> callStk; Idata randr() { Idata ret;ret.type=1; @@ -19,17 +18,16 @@ Idata randi() } Idata createBullet() { - Idata x,y,bs,rad; - x=callStk.pop(); - y=callStk.pop(); - bs=callStk.pop(); - rad=callStk.pop(); + float x,y,bs,rad; + rad=callStk.pop().r(); + bs=callStk.pop().r(); + y=callStk.pop().r(); + x=callStk.pop().r(); 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())); + int i=bmInstance->createBullet<bulletBase>(); + bmInstance->getHandle(i)->pos.x=x; + bmInstance->getHandle(i)->pos.y=y; + bmInstance->getHandle(i)->vel=bs*smvec2d(cos(rad),sin(rad)); bmInstance->getHandle(i)->acc=smvec2d(0,0); bmInstance->getHandle(i)->basecolor=blue; bmInstance->getHandle(i)->rendercolor=0xC0FFFFFF; |