Add a class to group all renderer related (static) functions.
This allows to have getBestMatchingAvailableType inline in all engines.
The matching code is now shared between all engines but allows
customization for engines needing it (Grim, WME3D).
The new code takes runtime availability of features to select the
best renderer.
It avoid crashes when user choosed OpenGL but GLES2 is used.
This was due to the engine both exiting immediately from the game loop
and pushing a QUIT_EVENT (through the call to quitGame()). This meant
that that QUIT_EVENT was processed only after the game had already
returned to the launcher, causing the launcher to close.
This fixes bug #12904
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:
565a0559ed
That one also works without having to re-add/re-detect the game, but perhaps just checking
version info is not the best approach.
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.
* Show an active cursor when hovering the scroll buttons
* Clicking on a inactive scroll button no longer closes the inventory
* Changing the visibility of the inventory window now closes the action
menu.
* The inventory management hotkeys only work when the game is
interactive.
* Hide the inventory window when loading a save.
* Hide the action menu when loading a save.