diff options
Diffstat (limited to 'engines/parallaction/parallaction.cpp')
-rw-r--r-- | engines/parallaction/parallaction.cpp | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index a11e88391a..62268aa3c1 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -136,9 +136,6 @@ uint16 _introSarcData2 = 1; // private stuff - - - static Job *_jDrawInventory = NULL; Job *_jDrawLabel = NULL; Job *_jEraseLabel = NULL; @@ -146,12 +143,6 @@ Zone *_hoverZone = NULL; static Job *_jRunScripts = NULL; - -static Job _jobs = { { NULL, NULL }, 0, 0, 0, NULL, 0 }; - - - - Parallaction::Parallaction(OSystem *syst) : Engine(syst) { @@ -248,7 +239,7 @@ int Parallaction::init() { _vm->_char._ani._zone._label._cnv._data0 = NULL; _vm->_char._ani._zone._label._text = strdup("yourself"); - addNode(&_animations, &_vm->_char._ani._zone._node); + addNode(&_animations, &_vm->_char._ani._zone); _gfx = new Gfx(this); int midiDriver = MidiDriver::detectMusicDriver(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MIDI); @@ -902,7 +893,7 @@ void removeNode(Node *n) { } -Job *addJob(JobFn fn, void *parm, uint16 tag) { +Job *Parallaction::addJob(JobFn fn, void *parm, uint16 tag) { Job *v8 = (Job*)malloc(sizeof(Job)); @@ -914,41 +905,41 @@ Job *addJob(JobFn fn, void *parm, uint16 tag) { Job *v4 = &_jobs; - while (v4->_node._next && ((Job*)(v4->_node._next))->_tag > tag) { - v4 = (Job*)v4->_node._next; + while (v4->_next && ((Job*)(v4->_next))->_tag > tag) { + v4 = (Job*)v4->_next; } - addNode(&v4->_node, &v8->_node); + addNode(v4, v8); return v8; } -void removeJob(Job *j) { +void Parallaction::removeJob(Job *j) { - removeNode(&j->_node); + removeNode(j); free(j); return; } -void pauseJobs() { +void Parallaction::pauseJobs() { _engineFlags |= kEnginePauseJobs; return; } -void resumeJobs() { +void Parallaction::resumeJobs() { _engineFlags &= ~kEnginePauseJobs; return; } -void runJobs() { +void Parallaction::runJobs() { if (_engineFlags & kEnginePauseJobs) return; - Job *j = (Job*)_jobs._node._next; + Job *j = (Job*)_jobs._next; while (j) { debugC(3, kDebugJobs, "runJobs: %i", j->_tag); (*j->_fn)(j->_parm, j); - Job *v4 = (Job*)j->_node._next; + Job *v4 = (Job*)j->_next; if (j->_finished == 1) removeJob(j); @@ -974,7 +965,7 @@ void jobWaitRemoveJob(void *parm, Job *j) { count++; if (count == 2) { count = 0; - removeJob(arg); + _vm->removeJob(arg); _engineFlags &= ~kEngineMouse; j->_finished = 1; } |