In D'ni, after giving the white page to Atrus, or after coming without a
page, too videos of Atrus would play on top of each other after waiting
long enough for the first video to loop.
Fixes#10503.
The global variable "ending" tracks various
states that Atrus can be in.
This variable determines what video of
Atrus will be playing and if the brother
books have been destroyed.
Despite this variable being called ending
there are other endings not captured by
this variable (like the brother endings).
Also change spelling of Dini to Dni for one
usage of ActiveAge from a previous commit.
This global basically tracks what age/book/stack
the player is in.
It is also used to change stacks via
MohawkEngine_Myst::changeToStack() by
being an index for MystScriptParser::_stackMap
and MystScriptParser::_startCard.
E.x., instead of _global.currentAge = 2
now _global.currentAge = kMystLibrary.
Also two of the endings are considered Ages
instead of being apart of _global.ending.
The new approach is to delay kAnimate briefly (with an 68ms timeout)
while there is a zero-tick PalVary running, so that it has time to
trigger.
The previous workaround would immediately process a zero-tick
PalVaryInit/PalVaryReverse. This caused problems in QfG3 (bug #10304)
where it interfered with PalVaryPause.
The previous workaround could also be modified to handle pause/resume,
but this new approach should be closer to SSCI's behaviour, which used a
timer for a zero-tick PalVary too.
This fixes bug #10304, and keeps #5298 fixed too.
This was a miss in commit 00e59a3122. The new parameter was supposed
to be called skipThumbnail and default to true instead.
For consistency's sake (the rest of the tree uses skipThumbnail, not
loadThumbnail) I'm reverting this and will separately update the
declaration to how it should have been from the beginning.
Thanks dreammaster!
When SDL is built using CMake, Find_Package imports a target instead of
defining variables. If a target was imported we now define the include
path and linker flags variables from the target's properties.
Using imported targets is a best practice. Ideally, we should define an
imported target when we detect variables were defined.
However, the linker flags variable would need to be parsed into a
library path and a list of libraries, making that approach impractical.
In the original the sound reciever would provide a hint of the
source sound direction when the user was less than 5 degrees
away. In ScummVM it was less than or equal to 5 degrees.
Now it matches the behavior of the original.