[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