diff options
Diffstat (limited to 'scumm/scumm.cpp')
-rw-r--r-- | scumm/scumm.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 1ffaa2a72b..d6d84b5909 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -691,6 +691,10 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _skipDrawObject = 0; _skipProcessActors = 0; + _auxBlocksNum = 0; + memset(_auxBlocks, 0, sizeof(_auxBlocks)); + _auxEntriesNum = 0; + memset(_auxEntries, 0, sizeof(_auxEntries)); _heSndSoundId = 0; _heSndOffset = 0; _heSndChannel = 0; @@ -1820,8 +1824,14 @@ load_game: drawFlashlight(); setActorRedrawFlags(); } - - processActors(); + if (_heversion >= 72) { + preProcessAuxQueue(); + processActors(); + postProcessAuxQueue(); + } else { + processActors(); + } + _fullRedraw = false; if (_version >= 4 && _heversion <= 60) cyclePalette(); @@ -2329,9 +2339,8 @@ void ScummEngine::startScene(int room, Actor *a, int objectNr) { stopCycle(0); _sound->processSoundQues(); - if (_heversion >= 70 && _WizPolygons) { - for (i = 0; i < _WizNumPolygons; i++) - memset(&_WizPolygons[i], 0, sizeof(WizPolygon)); + if (_heversion >= 70 && _WizPolygons) { + memset(_WizPolygons, 0, _WizNumPolygons * sizeof(WizPolygon)); } for (i = 0; i < _numRoomVariables; i++) |