aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-07-11 13:06:28 +0000
committerNicola Mettifogo2008-07-11 13:06:28 +0000
commit8ed023142a9ce0ee825eb3d6c33759281d68357b (patch)
treefe01c86cc8d04a88fb82a29e79279c25c4e8e922 /engines/parallaction/parallaction.cpp
parentfe655836575214c33c82120e9dd714b95a96e475 (diff)
downloadscummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.tar.gz
scummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.tar.bz2
scummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.zip
Moved program and command execution code out of the engine, into their own brand new
classes. svn-id: r33003
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r--engines/parallaction/parallaction.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp
index b2146bd292..295f10820f 100644
--- a/engines/parallaction/parallaction.cpp
+++ b/engines/parallaction/parallaction.cpp
@@ -84,12 +84,11 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam
Parallaction::~Parallaction() {
- clearSet(_commandOpcodes);
- clearSet(_instructionOpcodes);
-
delete _debugger;
delete _globalTable;
delete _callableNames;
+ delete _cmdExec;
+ delete _programExec;
_gfx->clearGfxObjects(kGfxObjCharacter | kGfxObjNormal);
hideDialogueStuff();
@@ -386,7 +385,11 @@ void Parallaction::runGame() {
_gfx->beginFrame();
if (_input->_inputMode == Input::kInputModeGame) {
- runScripts();
+ _programExec->runScripts(_location._programs.begin(), _location._programs.end());
+ _char._ani->_z = _char._ani->height() + _char._ani->_top;
+ if (_char._ani->gfxobj) {
+ _char._ani->gfxobj->z = _char._ani->_z;
+ }
walk();
drawAnimations();
}
@@ -422,7 +425,7 @@ void Parallaction::doLocationEnterTransition() {
pal.makeGrayscale();
_gfx->setPalette(pal);
- runScripts();
+ _programExec->runScripts(_location._programs.begin(), _location._programs.end());
drawAnimations();
_gfx->updateScreen();