Prevents extra speed throttling from being applied when a script queries
the restart flag. Some rooms such as the KQ6 caves and the QFG4 caves do
this on every game cycle. In practice, this extra throttling didn't seem
to have much effect, but the intent is to only throttle game loops and
the script patches that fix inner loops.
Updated script patches to call kGameIsRestarting like game loops.
We have several SCI32 script patches that replace kGetTime spin loops
with calls to kWait for the intended delay. This prevents blocking
the main thread and allows ScummVM to be responsive and update the
screen. But kWait isn't a simple sleep, it's a throttling function,
and the duration that it sleeps (if any) is determined by the time
since it was last called. kWait was only in SCI16 interpreters so it
had to be restored to SCI32 and this required a further workaround
for Phant2 compatibility.
Now we have a dedicated custom kernel function, kScummVMSleep, which
does a simple sleep so that SCI32 script patch delays are consistent
and the Phant2 workaround isn't needed. This approach is similar to
kScummVMSaveLoad.
Only enable the speech+subs toggle in the English version of PQ4.
French and German versions feature localized text with English voices.
Also, our injected speech+subtitles view is currently only in English.
This script patch caused the bug it claimed to fix.
It appears that during SCI32 development in 2017, a bug sent the horse
at Banbury Cross on an incorrect path behind the fountain instead of in
front of it. This would have looked glitchy since the horse has a higher
priority than the fountain. But this was misdiagnosed as a priority bug,
even though the original doesn't have any problems, and the script was
patched to set the horse to a lower priority. The real ScummVM bug was
fixed some time later, and ever since the horse has taken the correct
path and looked glitchy due to the patch setting the wrong priority.
Replaces a room-specific script patch with a generic one that should
fix the bug wherever it occurs. At the time, it wasn't known if this
could occur in other parts of the game under ScummVM, and so patching
the only known symptom was safer.
Makes the signature more precise so that it's not accidentally applied
to the wrong place when a script already contains this patch.
Fixes incompatibility with NRS' SQ4 Update 1.3
In addition to simplifying, this fixes the message in Spanish and
Italian versions. The CD patch signature matched these floppy versions
too and altered their correct messages.
GOG includes NRS scripts in PQ1VGA and PQ3 which trigger our
warning about fan patches. The patches introduce several forms of
speed throttling but we already throttle at the engine level.
This changes timing throughout the games and may cause conflicts.
This commit:
- Disables the speed throttling that the patches introduce
- Removes the warning for these versions
GOG versions now play the same as original unpatched ones.
This patch removes a call to kDoAudio(13) because at the time it was
written, the subop was unimplemented and didn't return a value.
kDoAudio(13) was later changed to always return 1 so this patch has been
moot for a while. Now we need this script to do what it's supposed to
and detect sound interruptions so I'm about to implement kDoAudio(13).