From 7f6e5a022b800af0a2f7ab502743805e6fbc448c Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Mon, 5 Oct 2015 23:49:07 +0800 Subject: Enable the BLR script VM (prototype). The code (definitely) still require improvements. TODOs: Reimplement the call stack. Unify float data types. --- src/core/fncmodules.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/core/fncmodules.cpp') 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 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(); - 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(); + 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; -- cgit v1.2.3