[Scummvm-git-logs] scummvm branch-2-6 -> 7ce22c47eb776e947da38d12e4a6c09ef3021330

AndywinXp noreply at scummvm.org
Fri Aug 5 10:14:13 UTC 2022


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:
2000114850 SCUMM: DiMUSE: Remove unnecessary mutex call causing softlocks
8dcb63b76b SCUMM: v7-8: Make blastText rect taller by one pixel
7ce22c47eb SCUMM: v7-8: Apply e94d467 only for non-_newStyle text rendering


Commit: 20001148509804c37e0a6eaf4d3df2ab68b56f32
    https://github.com/scummvm/scummvm/commit/20001148509804c37e0a6eaf4d3df2ab68b56f32
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-08-05T12:12:42+02:00

Commit Message:
SCUMM: DiMUSE: Remove unnecessary mutex call causing softlocks

The call was unnecessary since the one being fundamental is the call made
to the resource manager mutex in _vm->getResourceAddress(); this fixes
some very rare (but also very real) cases of v7-8 games softlocking.

Changed paths:
    engines/scumm/imuse_digi/dimuse_files.cpp


diff --git a/engines/scumm/imuse_digi/dimuse_files.cpp b/engines/scumm/imuse_digi/dimuse_files.cpp
index 0a36a39dc08..b98f5957c29 100644
--- a/engines/scumm/imuse_digi/dimuse_files.cpp
+++ b/engines/scumm/imuse_digi/dimuse_files.cpp
@@ -98,7 +98,6 @@ uint8 *IMuseDigiFilesHandler::getSoundAddrData(int soundId) {
 	if (_engine->isEngineDisabled())
 		return nullptr;
 
-	Common::StackLock lock(_mutex);
 	// This function is always used for SFX (tracks which do not
 	// have a stream pointer), hence the use of the resource address
 	if (soundId != 0) {


Commit: 8dcb63b76b8806bb46978ab64c94b00f848a177b
    https://github.com/scummvm/scummvm/commit/8dcb63b76b8806bb46978ab64c94b00f848a177b
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-08-05T12:12:42+02:00

Commit Message:
SCUMM: v7-8: Make blastText rect taller by one pixel

This solves an issue where some fonts would go out of rect and the screen update
would leak those extraneous pixels (e.g. commas of the small font during the FT credits).

Changed paths:
    engines/scumm/string_v7.cpp


diff --git a/engines/scumm/string_v7.cpp b/engines/scumm/string_v7.cpp
index e774259331d..fe03619a76b 100644
--- a/engines/scumm/string_v7.cpp
+++ b/engines/scumm/string_v7.cpp
@@ -226,7 +226,7 @@ void TextRenderer_v7::drawString(const char *str, byte *buffer, Common::Rect &cl
 	clipRect.left = (flags & kStyleAlignCenter) ? x - maxWidth / 2 : ((flags & kStyleAlignRight) ? x - maxWidth : x);
 	clipRect.right = MIN<int>(clipRect.right, clipRect.left + maxWidth);
 	clipRect.top = y2;
-	clipRect.bottom = y;
+	clipRect.bottom = y + 1;
 }
 
 void TextRenderer_v7::drawStringWrap(const char *str, byte *buffer, Common::Rect &clipRect, int x, int y, int pitch, int16 col, TextStyleFlags flags) {
@@ -377,7 +377,7 @@ void TextRenderer_v7::drawStringWrap(const char *str, byte *buffer, Common::Rect
 	clipRect.left = (flags & kStyleAlignCenter) ? x - maxWidth / 2 : ((flags & kStyleAlignRight) ? x - maxWidth : x);
 	clipRect.right = MIN<int>(clipRect.right, clipRect.left + maxWidth);
 	clipRect.top = y2;
-	clipRect.bottom = y;
+	clipRect.bottom = y + 1;
 }
 
 Common::Rect TextRenderer_v7::calcStringDimensions(const char *str, int x, int y, TextStyleFlags flags) {


Commit: 7ce22c47eb776e947da38d12e4a6c09ef3021330
    https://github.com/scummvm/scummvm/commit/7ce22c47eb776e947da38d12e4a6c09ef3021330
Author: AndywinXp (andywinxp at gmail.com)
Date: 2022-08-05T12:12:42+02:00

Commit Message:
SCUMM: v7-8: Apply e94d467 only for non-_newStyle text rendering

Changed paths:
    engines/scumm/string_v7.cpp


diff --git a/engines/scumm/string_v7.cpp b/engines/scumm/string_v7.cpp
index fe03619a76b..0f031d12841 100644
--- a/engines/scumm/string_v7.cpp
+++ b/engines/scumm/string_v7.cpp
@@ -226,7 +226,7 @@ void TextRenderer_v7::drawString(const char *str, byte *buffer, Common::Rect &cl
 	clipRect.left = (flags & kStyleAlignCenter) ? x - maxWidth / 2 : ((flags & kStyleAlignRight) ? x - maxWidth : x);
 	clipRect.right = MIN<int>(clipRect.right, clipRect.left + maxWidth);
 	clipRect.top = y2;
-	clipRect.bottom = y + 1;
+	clipRect.bottom = y + (_newStyle ? 0 : 1);
 }
 
 void TextRenderer_v7::drawStringWrap(const char *str, byte *buffer, Common::Rect &clipRect, int x, int y, int pitch, int16 col, TextStyleFlags flags) {
@@ -377,7 +377,7 @@ void TextRenderer_v7::drawStringWrap(const char *str, byte *buffer, Common::Rect
 	clipRect.left = (flags & kStyleAlignCenter) ? x - maxWidth / 2 : ((flags & kStyleAlignRight) ? x - maxWidth : x);
 	clipRect.right = MIN<int>(clipRect.right, clipRect.left + maxWidth);
 	clipRect.top = y2;
-	clipRect.bottom = y + 1;
+	clipRect.bottom = y + (_newStyle ? 0 : 1);
 }
 
 Common::Rect TextRenderer_v7::calcStringDimensions(const char *str, int x, int y, TextStyleFlags flags) {




More information about the Scummvm-git-logs mailing list