[Scummvm-git-logs] scummvm master -> 7ec6f59d22cf0c598e0415f86b0dbc0e4a35d896
dreammaster
noreply at scummvm.org
Sat Feb 10 02:21:34 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e81e01c3ca M4: Fix speech cue sequence using the kibble
7ec6f59d22 M4: Remove unwanted call to unload() for a sound
Commit: e81e01c3ca6878844a129158d024503ff694fe77
https://github.com/scummvm/scummvm/commit/e81e01c3ca6878844a129158d024503ff694fe77
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2024-02-09T18:21:29-08:00
Commit Message:
M4: Fix speech cue sequence using the kibble
This was tested in the demo, but it looks like it should be the same case for game proper
It looks like a typo in the assignment of the _G(wilbur_should) global var, made the engine/script only play the first speech cue and then do a different action
(which also used to cause a crash https://bugs.scummvm.org/ticket/14948)
The game when played in DosBox, plays the speech cues and returns control to the player.
However, as of yet, there are two issues I could find with this speech sequence:
1. Sometimes the "hmmm" idle animation of Wilbur will interfere while the speech cues are playing (in between them I think) and then Wilbur will get stuck (soft lock)
without the engine giving control back to the player. An assumption here is that due to the engine currently not playing the speech animation for Wilbur, which may be could "block"
the idle animation from kicking in(?).
2. The sfx (a "crunch" sound) (600_008) and first speech cue (602w012) when using the kibble only plays the first time. Subsequenct uses do not produce the sfx sound (but the speech plays). On DosBox the sfx plays in subsequent uses.
Changed paths:
engines/m4/burger/burger.cpp
diff --git a/engines/m4/burger/burger.cpp b/engines/m4/burger/burger.cpp
index 3205ec50c93..fa4753dc510 100644
--- a/engines/m4/burger/burger.cpp
+++ b/engines/m4/burger/burger.cpp
@@ -290,7 +290,7 @@ void BurgerEngine::global_daemon() {
break;
case 10009:
ws_unhide_walker(_G(my_walker));
- _G(wilbur_should) = 10018;
+ _G(wilbur_should) = 10010;
_G(walker).wilbur_speech("602w012x", kCHANGE_WILBUR_ANIMATION);
break;
case 10010:
Commit: 7ec6f59d22cf0c598e0415f86b0dbc0e4a35d896
https://github.com/scummvm/scummvm/commit/7ec6f59d22cf0c598e0415f86b0dbc0e4a35d896
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2024-02-09T18:21:29-08:00
Commit Message:
M4: Remove unwanted call to unload() for a sound
Changed paths:
engines/m4/platform/sound/digi.cpp
engines/m4/platform/sound/digi.h
diff --git a/engines/m4/platform/sound/digi.cpp b/engines/m4/platform/sound/digi.cpp
index 5eedcad1d59..03813e2bd74 100644
--- a/engines/m4/platform/sound/digi.cpp
+++ b/engines/m4/platform/sound/digi.cpp
@@ -83,7 +83,7 @@ void Digi::unload(const Common::String &name) {
// Stop it if it's playing
for (int channel = 0; channel < MAX_CHANNELS; ++channel) {
if (_channels[channel]._name == name)
- stop(channel);
+ stop(channel, true);
}
// Remove the underlying resource
@@ -166,7 +166,7 @@ Common::String Digi::expand_name_2_RAW(const Common::String &name, int32 room_nu
}
}
-void Digi::stop(uint channel) {
+void Digi::stop(uint channel, bool calledFromUnload) {
assert(channel < 4);
Channel &c = _channels[channel];
@@ -177,7 +177,9 @@ void Digi::stop(uint channel) {
c._trigger = -1;
c._name.clear();
- digi_unload(name);
+ if (!calledFromUnload) {
+ digi_unload(name);
+ }
}
}
diff --git a/engines/m4/platform/sound/digi.h b/engines/m4/platform/sound/digi.h
index 51d68a5dc55..6d13c8e920c 100644
--- a/engines/m4/platform/sound/digi.h
+++ b/engines/m4/platform/sound/digi.h
@@ -95,7 +95,7 @@ public:
int32 play(const Common::String &name, uint channel, int32 vol, int32 trigger, int32 room_num = -1);
int32 play_loop(const Common::String &name, uint channel, int32 vol, int32 trigger, int32 room_num = -1);
void playFootsteps();
- void stop(uint channel);
+ void stop(uint channel, bool calledFromUnload = false);
void flush_mem();
void read_another_chunk();
More information about the Scummvm-git-logs
mailing list