[Scummvm-git-logs] scummvm master -> a67e4bee50ebe41b163579a65a0aa4222272ce8a
djsrv
dservilla at gmail.com
Tue Jul 21 21:34:46 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1d0f8db46a DIRECTOR: Get rid of blocking loops
17be87ffb3 DIRECTOR: Rename Movie::getCurrentStage getStage
a67e4bee50 DIRECTOR: Update screen in DirectorEngine::draw
Commit: 1d0f8db46ac104f8a676aeed87005491d716cf27
https://github.com/scummvm/scummvm/commit/1d0f8db46ac104f8a676aeed87005491d716cf27
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-21T17:34:22-04:00
Commit Message:
DIRECTOR: Get rid of blocking loops
Changed paths:
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 7f4c32c4dd..695f7123ab 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -64,6 +64,7 @@ Score::Score(Movie *movie) {
_nextFrame = 0;
_currentLabel = 0;
_nextFrameTime = 0;
+ _waitForChannel = 0;
_playState = kPlayNotStarted;
_numChannelsDisplayed = 0;
@@ -253,6 +254,13 @@ void Score::stopPlay() {
}
void Score::update() {
+ if (_waitForChannel) {
+ if (_soundManager->isChannelActive(_waitForChannel))
+ return;
+
+ _waitForChannel = 0;
+ }
+
if (g_system->getMillis() < _nextFrameTime && !debugChannelSet(-1, kDebugFast)) {
return;
}
@@ -357,14 +365,10 @@ void Score::update() {
_vm->waitForClick();
} else if (tempo == 135) {
// Wait for sound channel 1
- while (_soundManager->isChannelActive(1)) {
- _vm->processEvents();
- }
+ _waitForChannel = 1;
} else if (tempo == 134) {
// Wait for sound channel 2
- while (_soundManager->isChannelActive(2)) {
- _vm->processEvents();
- }
+ _waitForChannel = 2;
}
}
diff --git a/engines/director/score.h b/engines/director/score.h
index 86b6bb2cb8..948172ca9d 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -118,6 +118,7 @@ public:
byte _puppetTempo;
PlayState _playState;
uint32 _nextFrameTime;
+ int _waitForChannel;
Cursor *_currentCursor;
int _numChannelsDisplayed;
Commit: 17be87ffb3c9d6b66b777f94b59e530ff45688f0
https://github.com/scummvm/scummvm/commit/17be87ffb3c9d6b66b777f94b59e530ff45688f0
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-21T17:34:22-04:00
Commit Message:
DIRECTOR: Rename Movie::getCurrentStage getStage
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-the.cpp
engines/director/movie.h
engines/director/score.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 747d91cab5..f6dba65f49 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1947,7 +1947,7 @@ void LB::b_updateStage(int nargs) {
}
Score *score = movie->getScore();
- if (movie->getCurrentStage()->render())
+ if (movie->getStage()->render())
g_director->draw();
g_director->processEvents(true);
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 2bd3455965..2f07637784 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1280,7 +1280,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
}
if (d.asInt() != channel->_currentPoint.x) {
- g_director->getCurrentMovie()->getCurrentStage()->addDirtyRect(channel->getBbox());
+ g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
channel->_currentPoint.x = d.asInt();
} else {
channel->_dirty = false;
@@ -1294,7 +1294,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
}
if (d.asInt() != channel->_currentPoint.y) {
- g_director->getCurrentMovie()->getCurrentStage()->addDirtyRect(channel->getBbox());
+ g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
channel->_currentPoint.y = d.asInt();
} else {
channel->_dirty = false;
@@ -1361,7 +1361,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
}
if (channel->_dirty && g_director->getCurrentMovie())
- g_director->getCurrentMovie()->getCurrentStage()->addDirtyRect(channel->getBbox());
+ g_director->getCurrentMovie()->getStage()->addDirtyRect(channel->getBbox());
}
Datum Lingo::getTheCast(Datum &id1, int field) {
diff --git a/engines/director/movie.h b/engines/director/movie.h
index 561d10815f..7c1f9e76ed 100644
--- a/engines/director/movie.h
+++ b/engines/director/movie.h
@@ -91,7 +91,7 @@ public:
void setArchive(Archive *archive);
Archive *getArchive() const { return _movieArchive; };
Common::String getMacName() const { return _macName; }
- Stage *getCurrentStage() const { return _stage; }
+ Stage *getStage() const { return _stage; }
DirectorEngine *getVM() const { return _vm; }
Cast *getCast() const { return _cast; }
Cast *getSharedCast() const { return _sharedCast; }
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 695f7123ab..164be0b7b9 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -49,7 +49,7 @@ namespace Director {
Score::Score(Movie *movie) {
_movie = movie;
- _stage = movie->getCurrentStage();
+ _stage = movie->getStage();
_vm = _movie->getVM();
_lingo = _vm->getLingo();
Commit: a67e4bee50ebe41b163579a65a0aa4222272ce8a
https://github.com/scummvm/scummvm/commit/a67e4bee50ebe41b163579a65a0aa4222272ce8a
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-21T17:34:22-04:00
Commit Message:
DIRECTOR: Update screen in DirectorEngine::draw
Changed paths:
engines/director/events.cpp
engines/director/graphics.cpp
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 9770827f77..7d8fedbc2e 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -180,7 +180,6 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
if (!bufferLingoEvents)
_lingo->processEvents();
- g_system->updateScreen();
g_system->delayMillis(10);
if (getVersion() >= 3 && sc->getCurrentFrame() > 0 && sc->_playState != kPlayStopped && _lingo->getEventCount() == 0)
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 0d37fa88fd..d04fae6fd3 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -796,6 +796,7 @@ void DirectorEngine::setCursor(int type) {
void DirectorEngine::draw() {
_wm->renderZoomBox(true);
_wm->draw();
+ g_system->updateScreen();
}
void inkDrawPixel(int x, int y, int src, void *data) {
More information about the Scummvm-git-logs
mailing list