[Scummvm-git-logs] scummvm master -> 85265f68f5670b2a64fddc3bd566babe9061b888

dwatteau noreply at scummvm.org
Wed Jan 18 19:07:50 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:
3d608e10f6 SCUMM: Make the Plunder Town Theater music workaround an optional enhancement
28a4e9c2ee SCUMM: Document that Trac#4464 workaround is intentionally not an enhancement
85265f68f5 SCUMM: DIG: Reindent a workaround and remove its ENABLE_SCUMM_7_8 ifdef


Commit: 3d608e10f6201171d18bd3002cedaed7f15fb619
    https://github.com/scummvm/scummvm/commit/3d608e10f6201171d18bd3002cedaed7f15fb619
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2023-01-18T19:46:49+01:00

Commit Message:
SCUMM: Make the Plunder Town Theater music workaround an optional enhancement

This is an original script bug that also happens with the original
EXE, and so this fix is an enhancement.

Changed paths:
    engines/scumm/script_v6.cpp


diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index cc4e2c8350c..cf6cdb2926a 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -749,7 +749,7 @@ void ScummEngine_v6::o6_startScript() {
 	// This fix checks for this situation happening (and only this one), and makes a call
 	// to a soundKludge operation like script 29 would have done.
 	if (_game.id == GID_CMI && _currentRoom == 19 &&
-		vm.slot[_currentScript].number == 168 && script == 118) {
+		vm.slot[_currentScript].number == 168 && script == 118 && _enableEnhancements) {
 		int list[16] = { 4096, 1278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 		_sound->soundKludge(list, 2);
 	}


Commit: 28a4e9c2eed9a55f041982b078f60234c3d1baa9
    https://github.com/scummvm/scummvm/commit/28a4e9c2eed9a55f041982b078f60234c3d1baa9
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2023-01-18T20:04:22+01:00

Commit Message:
SCUMM: Document that Trac#4464 workaround is intentionally not an enhancement

This workaround fixed a complete scene hang that any user could
trigger during a legitimate gameplay, and there's no point in letting
users hang the game… (if you're really curious for it, you know how to
build ScummVM or how to run an original interpreter).

Also make it explicit that the bug also happens with DREAMM, while
there.

Changed paths:
    engines/scumm/script_v6.cpp


diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index cf6cdb2926a..421e5a4efad 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -719,7 +719,11 @@ void ScummEngine_v6::o6_jump() {
 
 	// WORKAROUND bug #4464: Talking to the guard at the bigfoot party, after
 	// he's let you inside, will cause the game to hang, if you end the conversation.
-	// This is a script bug, due to a missing jump in one segment of the script.
+	// This is a script bug, due to a missing jump in one segment of the script,
+	// and it also happens with the original interpreters.
+	//
+	// Intentionally not using `_enableEnhancements`, since having the game hang
+	// is not useful to anyone.
 	if (_game.id == GID_SAMNMAX && vm.slot[_currentScript].number == 101 && readVar(0x8000 + 97) == 1 && offset == 1) {
 		offset = -18;
 	}


Commit: 85265f68f5670b2a64fddc3bd566babe9061b888
    https://github.com/scummvm/scummvm/commit/85265f68f5670b2a64fddc3bd566babe9061b888
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2023-01-18T20:07:01+01:00

Commit Message:
SCUMM: DIG: Reindent a workaround and remove its ENABLE_SCUMM_7_8 ifdef

The workaround itself doesn't require any v7/v8-only feature, and
there's no much sense in saving a few bytes for such a small
workaround. Others Dig/FT/COMI workarounds don't use an ifdef for
this anyway.

Changed paths:
    engines/scumm/script.cpp


diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
index ff34a07bfee..31cb10bb539 100644
--- a/engines/scumm/script.cpp
+++ b/engines/scumm/script.cpp
@@ -993,24 +993,22 @@ void ScummEngine::runExitScript() {
 	if (VAR_EXIT_SCRIPT2 != 0xFF && VAR(VAR_EXIT_SCRIPT2))
 		runScript(VAR(VAR_EXIT_SCRIPT2), 0, 0, nullptr);
 
-#ifdef ENABLE_SCUMM_7_8
 	// WORKAROUND: Once the water has been diverted to the grate, but
 	// before Maggie has been freed, the spider lair (room 44) will play
-        // the sound of trickling water (sound 215). It doesn't seem to trigger
-        // the first time you enter the room, only but if you leave and
-        // re-enter it. Which is probably why it's so rarely noticed.
-        //
-        // The sound is not stopped when you leave the room, so it will keep
-        // playing even where it makes no sense. This also happens with the
-        // original interpreter.
-        //
-        // The same sound effect is also used in the underwater cavern (room
-        // 33), so we do the same fade out as in that room's exit script.
+	// the sound of trickling water (sound 215). It doesn't seem to trigger
+	// the first time you enter the room, only but if you leave and
+	// re-enter it. Which is probably why it's so rarely noticed.
+	//
+	// The sound is not stopped when you leave the room, so it will keep
+	// playing even where it makes no sense. This also happens with the
+	// original interpreter.
+	//
+	// The same sound effect is also used in the underwater cavern (room
+	// 33), so we do the same fade out as in that room's exit script.
 	if (_game.id == GID_DIG && _currentRoom == 44 && _enableEnhancements) {
 		int scriptCmds[] = { 14, 215, 0x600, 0, 30, 0, 0, 0 };
 		_sound->soundKludge(scriptCmds, ARRAYSIZE(scriptCmds));
 	}
-#endif
 }
 
 void ScummEngine::runEntryScript() {




More information about the Scummvm-git-logs mailing list