STARK: Detect TLJ Steam version to fix missing bg resource
An alternative fix for bug https://bugs.scummvm.org/ticket/12762 that replaces the previous fix.
This fix will set a flag at detection time (when adding the game to ScummVM)
so that the Steam version will skip trying to load a background image resource
from the exe file (game.exe), since that specific version is missing a valid version
of this resource which leads to an assertion fault.
It wont be necessary to re-add (redetect) the game, if it has already been added before this fix. The current AdvancedDetector implementation takes care of setting the flag at game launch. (As explained by sev) we run detection on every run and returning the relevant detection entry.
The previous fix was this commit which was based only on version info of the exe file:
https://github.com/scummvm/scummvm/commit/565a0559ed09660daa83cd529afa4e0efb6949c5
That one also works without having to re-add/re-detect the game, but perhaps just checking
version info is not the best approach.
Fixes the GUI passing the charset mapping in the argument slot for stem
darkening. Fixes the Russian characters being improperly displayed in
the GUI.
Fixes#1560.
In the GOG version the font size for the computer (Arial) is set to 11
but 14 is required for the text to be properly aligned and the "White
cardinal" text to be clickable.
Fixes#1528.
The previous animation blending system had some flows. The
AnimationHandler was owned by the model which was incorrect, since it's
possible to change models during an animation sequence. The
AnimationHandler is now owned by the item, ensuring there is only one
per character instance.
We now ignore animation change requests for one frame. This is because
the scripts often cause an animation change, and request another one the
very next frame. This used to cause issues because we were blending the
latest animation with the previous one which was only active for one
frame, causing a discontinuity. This new solution is kind of a hack.
Hopefully it is good enough and there is no need to implement animation
blending for more than two animations at once.
The replacement PNG files can have larger dimensions when compared to
the original XMG images, enabling the creation of a high resolution mod.
The game looks for the replacement files in the game directory and then
in the xarc subdirectory of the directory containing the archive in
which the xmg picture to be replaced is located. For instance:
'1e/00/xarc/fountain_layercenter.png' should be used for the Venice park
background.
Prevents the game screen from being visible for one frame before scripts
have a chance to update it after a FMV ends.
All user interface screen changes should probably be updated to work
that way. Running the update method of a screen and the render method of
another on the same frame seems really bad.
These properties are saved for inactive levels as well. However inactive
level properties are restored too early and would sometimes be
overwritten by the on enter location callback. Now we save the animation
properties in the active level as well. These properties are restored
after the location enter callback.
Fixes#1496.