diff options
author | Nicola Mettifogo | 2007-04-06 18:29:55 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-04-06 18:29:55 +0000 |
commit | 40245fe4504ecc7cb26ccfc5b5c7d5d2b15cbbe7 (patch) | |
tree | 0d9ea3fb6bd4f9d44572458513e88769b64c62bc | |
parent | f069c5e8fff3e52e94cb0bda0ad7eb1218e271c1 (diff) | |
download | scummvm-rg350-40245fe4504ecc7cb26ccfc5b5c7d5d2b15cbbe7.tar.gz scummvm-rg350-40245fe4504ecc7cb26ccfc5b5c7d5d2b15cbbe7.tar.bz2 scummvm-rg350-40245fe4504ecc7cb26ccfc5b5c7d5d2b15cbbe7.zip |
Made Program hold an explicit reference to its set of Instruction(s) instead of simply being a Node chained with them.
svn-id: r26393
-rw-r--r-- | engines/parallaction/animation.cpp | 8 | ||||
-rw-r--r-- | engines/parallaction/zone.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/engines/parallaction/animation.cpp b/engines/parallaction/animation.cpp index b74ce0bebd..7102aa8136 100644 --- a/engines/parallaction/animation.cpp +++ b/engines/parallaction/animation.cpp @@ -157,7 +157,7 @@ void Parallaction::freeScript(Program *program) { if (!program) return; delete[] program->_locals; - freeNodeList(program); + freeNodeList(&program->_start); return; } @@ -261,7 +261,7 @@ void Parallaction::loadProgram(Animation *a, char *filename) { a->_program = new Program; a->_program->_locals = new LocalVariable[10]; - Node *vD0 = a->_program; + Node *vD0 = &a->_program->_start; Instruction *vCC = new Instruction; @@ -280,7 +280,7 @@ void Parallaction::loadProgram(Animation *a, char *filename) { delete script; - a->_program->_ip = (Instruction*)a->_program->_next; + a->_program->_ip = (Instruction*)a->_program->_start._next; return; } @@ -588,7 +588,7 @@ void jobRunScripts(void *parm, Job *j) { a->_flags &= ~kFlagsActing; _vm->runCommands(a->_commands, a); } - a->_program->_ip = (Instruction*)a->_program->_next; + a->_program->_ip = (Instruction*)a->_program->_start._next; goto label1; diff --git a/engines/parallaction/zone.h b/engines/parallaction/zone.h index 8d61dedf9e..8d33963951 100644 --- a/engines/parallaction/zone.h +++ b/engines/parallaction/zone.h @@ -279,11 +279,12 @@ struct Instruction : public Node { }; -struct Program : public Node { +struct Program { LocalVariable *_locals; uint16 _loopCounter; Instruction *_ip; Instruction *_loopStart; + Instruction _start; Program() { _locals = NULL; |