[Scummvm-git-logs] scummvm master -> 497e47abff5f8a809bb6cba04b429501f3b2c33b
sdelamarre
noreply at scummvm.org
Sat Apr 29 21:49:16 UTC 2023
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:
b3da790ad7 GOB: move Adibou1 setRenderFlag opcode to setupOpcodesDraw()
98204cb180 GOB: fix Adibou1 non-blocking videos
497e47abff GOB: fix animation when answering an exercise in some Adibou1 versions
Commit: b3da790ad76a3ad0f86f27d0fec2470a9394b26c
https://github.com/scummvm/scummvm/commit/b3da790ad76a3ad0f86f27d0fec2470a9394b26c
Author: Simon Delamarre (simon.delamarre14 at gmail.com)
Date: 2023-04-29T23:47:51+02:00
Commit Message:
GOB: move Adibou1 setRenderFlag opcode to setupOpcodesDraw()
Changed paths:
engines/gob/inter_adibou1.cpp
diff --git a/engines/gob/inter_adibou1.cpp b/engines/gob/inter_adibou1.cpp
index 7ea5364f8db..ff001ece2bd 100644
--- a/engines/gob/inter_adibou1.cpp
+++ b/engines/gob/inter_adibou1.cpp
@@ -39,11 +39,11 @@ Inter_Adibou1::Inter_Adibou1(GobEngine *vm) : Inter_v2(vm) {
void Inter_Adibou1::setupOpcodesDraw() {
Inter_v2::setupOpcodesDraw();
+ OPCODEDRAW(0x0A, o1_setRenderFlags);
}
void Inter_Adibou1::setupOpcodesFunc() {
Inter_v2::setupOpcodesFunc();
- OPCODEDRAW(0x0A, o1_setRenderFlags);
}
void Inter_Adibou1::setupOpcodesGob() {
Commit: 98204cb180f7bcc732255b3ca88b8cd574bd600e
https://github.com/scummvm/scummvm/commit/98204cb180f7bcc732255b3ca88b8cd574bd600e
Author: Simon Delamarre (simon.delamarre14 at gmail.com)
Date: 2023-04-29T23:47:51+02:00
Commit Message:
GOB: fix Adibou1 non-blocking videos
A 1994 German version of Adibou1 already uses this "non-blocking video" feature, which had been found only in later games (e.g. Urban Runner, 1996) until now.
Fixes Adibou's song sound when completing an exercise.
Changed paths:
engines/gob/inter_v2.cpp
diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp
index a47b92b4f68..a8dc695259e 100644
--- a/engines/gob/inter_v2.cpp
+++ b/engines/gob/inter_v2.cpp
@@ -970,7 +970,11 @@ void Inter_v2::o2_playImd() {
bool close = (props.lastFrame == -1);
if (props.startFrame == -2) {
props.startFrame = 0;
- props.lastFrame = 0;
+ if (_vm->getGameType() == kGameTypeAdibou1) {
+ props.lastFrame = -1;
+ props.noBlock = true;
+ } else
+ props.lastFrame = 0;
close = false;
}
Commit: 497e47abff5f8a809bb6cba04b429501f3b2c33b
https://github.com/scummvm/scummvm/commit/497e47abff5f8a809bb6cba04b429501f3b2c33b
Author: Simon Delamarre (simon.delamarre14 at gmail.com)
Date: 2023-04-29T23:47:51+02:00
Commit Message:
GOB: fix animation when answering an exercise in some Adibou1 versions
These animations are supposed to loop while there is a sound playing (here a VMD
with a spoken phrase from Adibou). Scripts do that by checking the value of a
special game variable (VAR(1) = isSoundPlaying) updated by the engine.
Changed paths:
engines/gob/inter.cpp
engines/gob/videoplayer.cpp
engines/gob/videoplayer.h
diff --git a/engines/gob/inter.cpp b/engines/gob/inter.cpp
index 2f458ccdddc..fd5ddac51c4 100644
--- a/engines/gob/inter.cpp
+++ b/engines/gob/inter.cpp
@@ -173,7 +173,11 @@ void Inter::storeKey(int16 key) {
WRITE_VAR(12, _vm->_util->getTimeKey() - _vm->_game->_startTimeKey);
storeMouse();
- WRITE_VAR(1, _vm->_sound->blasterPlayingSound());
+ bool isSoundPlaying = _vm->_sound->blasterPlayingSound() ||
+ (_vm->getGameType() == kGameTypeAdibou1 && // NOTE: may be needed by other games as well
+ _vm->_vidPlayer->isSoundPlaying());
+
+ WRITE_VAR(1, isSoundPlaying);
if (key == kKeyUp)
key = kShortKeyUp;
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index 971bb58718e..280d4dfb740 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -397,6 +397,11 @@ bool VideoPlayer::isPlayingLive() const {
return video && video->live;
}
+bool VideoPlayer::isSoundPlaying() const {
+ const Video *video = getVideoBySlot(0);
+ return video && video->decoder && video->decoder->isSoundPlaying();
+}
+
void VideoPlayer::updateLive(bool force) {
for (int i = 0; i < kVideoSlotCount; i++)
updateLive(i, force);
diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h
index a4c5f40215b..2e2102e0767 100644
--- a/engines/gob/videoplayer.h
+++ b/engines/gob/videoplayer.h
@@ -126,6 +126,7 @@ public:
int32 getExpectedFrameFromCurrentTime(int slot);
bool isPlayingLive() const;
+ bool isSoundPlaying() const;
void updateLive(bool force = false);
More information about the Scummvm-git-logs
mailing list