[Scummvm-git-logs] scummvm master -> 2f168d3581a27dfdf51103c971553b36b436cf8e

mduggan mgithub at guarana.org
Mon May 24 13:10:18 UTC 2021


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
7d4044cbc6 ULTIMA8: Mark emptystring as const
210b4c9102 ULTIMA8: JANITORIAL: Whitespace
72ed6c16d2 ULTIMA8: Add workaround for Crusader lockup
2f168d3581 ULTIMA8: Check for decoding errors in AVI stream


Commit: 7d4044cbc6c7de57cdc24f26fa6fbbe8f0f2bf02
    https://github.com/scummvm/scummvm/commit/7d4044cbc6c7de57cdc24f26fa6fbbe8f0f2bf02
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-24T22:09:43+09:00

Commit Message:
ULTIMA8: Mark emptystring as const

Changed paths:
    engines/ultima/ultima8/usecode/uc_machine.cpp


diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index cf634043de..4f6846319a 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -2068,7 +2068,7 @@ void UCMachine::execProcess(UCProcess *p) {
 
 
 const Std::string &UCMachine::getString(uint16 str) const {
-	static Std::string emptystring("");
+	static const Std::string emptystring("");
 
 	Std::map<uint16, Std::string>::const_iterator iter =
 			_stringHeap.find(str);


Commit: 210b4c91029286b07736eb4d4dd4258b05ecf9e8
    https://github.com/scummvm/scummvm/commit/210b4c91029286b07736eb4d4dd4258b05ecf9e8
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-24T22:09:43+09:00

Commit Message:
ULTIMA8: JANITORIAL: Whitespace

Changed paths:
    engines/ultima/ultima8/ultima8.h


diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index e8d24992e6..a35011ec68 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -376,7 +376,7 @@ public:
 		_hasCheated = true;
 	}
 	Gump *getMenuGump() const;
-	
+
 	bool isInterpolationEnabled() const {
 		return _interpolate;
 	}


Commit: 72ed6c16d28cdb8292970c693a6cec1635c1a868
    https://github.com/scummvm/scummvm/commit/72ed6c16d28cdb8292970c693a6cec1635c1a868
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-24T22:09:43+09:00

Commit Message:
ULTIMA8: Add workaround for Crusader lockup

Changed paths:
    engines/ultima/ultima8/kernel/kernel.cpp


diff --git a/engines/ultima/ultima8/kernel/kernel.cpp b/engines/ultima/ultima8/kernel/kernel.cpp
index b048b726f6..a1eda84ab4 100644
--- a/engines/ultima/ultima8/kernel/kernel.cpp
+++ b/engines/ultima/ultima8/kernel/kernel.cpp
@@ -144,6 +144,8 @@ void Kernel::runProcesses() {
 		return;
 	}
 
+	int num_run = 0;
+
 	_currentProcess = _processes.begin();
 	while (_currentProcess != _processes.end()) {
 		Process *p = *_currentProcess;
@@ -159,6 +161,23 @@ void Kernel::runProcesses() {
 			_runningProcess = p;
 			p->run();
 
+			num_run++;
+
+			//
+			// WORKAROUND:
+			// In Crusader: No Remorse, the HOVER near the end of Mission 3
+			// (Floor 1) gets stuck in a tight loop after moving to the
+			// destination (path egg frame 0).
+			//
+			// Something is probably not right about the switch trigger, but until
+			// we can work out what it is avoid the game totally hanging at this
+			// point.
+			//
+			if (num_run > 500) {
+				warning("Seem to be stuck in process loop - killing current process");
+				p->fail();
+			}
+
 			if (!_runningProcess)
 				return; // If this happens then the list was reset so leave NOW!
 


Commit: 2f168d3581a27dfdf51103c971553b36b436cf8e
    https://github.com/scummvm/scummvm/commit/2f168d3581a27dfdf51103c971553b36b436cf8e
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-24T22:09:43+09:00

Commit Message:
ULTIMA8: Check for decoding errors in AVI stream

The movies at the end of No Remorse mission 3 have some decoding errors. Check
and handle it gracefully.

Changed paths:
    engines/ultima/ultima8/graphics/avi_player.cpp


diff --git a/engines/ultima/ultima8/graphics/avi_player.cpp b/engines/ultima/ultima8/graphics/avi_player.cpp
index 6f94478c01..63c2926d94 100644
--- a/engines/ultima/ultima8/graphics/avi_player.cpp
+++ b/engines/ultima/ultima8/graphics/avi_player.cpp
@@ -80,7 +80,7 @@ void AVIPlayer::paint(RenderSurface *surf, int /*lerp*/) {
 	if (_decoder->needsUpdate())
 	{
 		const Graphics::Surface *frame = _decoder->decodeNextFrame();
-		if (!frame) {
+		if (!frame || _decoder->getCurFrame() < 0) {
 			// Some sort of decoding error?
 			_playing = false;
 			return;




More information about the Scummvm-git-logs mailing list