Otherwise the only difference between it and pasteSpriteToBackDrop
is the different color used for blending.
burnString is supposed to transform brightness into alpha. This is
pre-rendered already at load time in burnSurface, so use that.
While at that, remove useLightTexture TODOs from above-mentioned
functions. The only thing the original interpreter does with
useLightTexture in those places is to make sure it's disabled.
OpenSLUDGE draws the first backdrop image with alpha channel
intact. Afterwards, next images are blended with previous backdrop
contents.
So far ScummVM always did the later part, but never the former,
which caused parallax to not work as it relies on alpha channel
being propagated into backdrop (which gets initiallly filled
with opaque black, so it had no chance to ever be transparent).
Fix that by clearing the area the first backdrop image is about
to get blitted into with full transparency.
Instead of manipulating alpha with BLEND_MULTIPLY, simply blend
in normal mode with translucent black. This fixes transitions with
low brightness levels (close to 0), which previously would
effectively act as if the level was set to 255.
newText is an escaped filename, which escapes characters like
: and /, which are essential for URLs. Use unescaped version
like original OpenSLUDGE does, as otherwise URLs get mangled
and become unusable.
loadHSI calls reserveBackdrop, which resets camera values.
Apply camera position and zoom in loadBackdrop after calling
loadHSI, so the stored camera state gets preserved.
The engine is using -1 as an undefined direction, so keep it that
way after save & restore cycle. Otherwise persons will spin around
for a while trying to rotate themselves to 65535 degrees when
aligning to a region with undefined direction.
Clang 11 and newer check the types of return values more strictly and
generate an error if there is a discrepancy.
However the "bool loadGame()" function, returns the value "NULL", if
loading of a savegame was unsucessful, whereas Clang expects a return
value of type "bool".
Remedy the issue by using "false" as return value instead of "NULL".