aboutsummaryrefslogtreecommitdiff
path: root/src/core/fncmodules.cpp
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-05 23:49:07 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-05 23:49:07 +0800
commit7f6e5a022b800af0a2f7ab502743805e6fbc448c (patch)
tree6a96d4b0d49fc0f0325dc26661cbfc6d2ec3781a /src/core/fncmodules.cpp
parent068cfdc8fb0e31c9ff736ee426f1291d07115c11 (diff)
downloadbullet-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.cpp20
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;