mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 03:31:40 +00:00
CRUISE: Fix update of background animations while waiting for user.
This is the third and final part of the patch supplied by Ignaz Forster on bug #3423955 ("CRUISE: Slow / unresponsive game behaviour") for avoiding blocking graphical updates during user wait loops. The removal of the continue statement fixes the update of background animations while waiting for user to respond i.e. try opening a locked door on the upper deck of the boat and check the sea background animation, but it also has the side effect of allowing hotspots to respond during this period if the user clicks fast enough. However, this bug was also present in the original interpreter, and a workaround has been added to inhibit this.
This commit is contained in:
parent
f351a1d7ba
commit
a5745434d3
@ -1872,6 +1872,14 @@ void CruiseEngine::mainLoop() {
|
||||
// readKeyboard();
|
||||
|
||||
bool isUserWait = userWait != 0;
|
||||
// WORKAROUND: This prevents hotspots responding during
|
||||
// delays i.e. Menu opening if you click fast on another
|
||||
// hotspot after trying to open a locked door, which
|
||||
// occurred with the original interpreter.
|
||||
if (userDelay) {
|
||||
currentMouseButton = 0;
|
||||
}
|
||||
|
||||
playerDontAskQuit = processInput();
|
||||
if (playerDontAskQuit)
|
||||
break;
|
||||
@ -1883,7 +1891,6 @@ void CruiseEngine::mainLoop() {
|
||||
|
||||
if (userDelay && !userWait) {
|
||||
userDelay--;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isUserWait & !userWait) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user