This fixes occasional problem with save overriding game options that
must not be changed at runtime.
From upstream cf093f3a6ea657a2082edfc08c35cc7650961ab6
This fixes a case when a clip was ordered to Play right before
a Room change, or similar game mode change, but is delayed
until after the change occurs.
From upstream d327b06bf5f3d8fff02b454d07560fcd5fc05b24
This fixes IsSpeechVoxAvailable() returning positive when game is run from
the Editor, because Speech folder is always created in the project.
From upstream 0ca660e998e69283484f74818e17e837889e5896
The bug is in UpdateSharedDDB(), the short-term texture cache did not test
whether the bitmap resolution is still matching the texture.
From upstream 1537ed77c875bbe660face3c07a3c4843b8bd95a
The bug is in UpdateSharedDDB(), the short-term texture cache did not
test whether the bitmap resolution is still matching the texture.
From upstream 1537ed77c875bbe660face3c07a3c4843b8bd95a
* handle readonly options;
* don't do anything if new value equals old value;
* replace if/else sequence with a switch;
From upstream 2476bc3e517c13ef1abde83fca2e55571bcfff4a
The latest change (c694126) was meant to fix a timeout test logic,
but it broke the primary loop count check.
The incorrect behavior may be observed when a function with
many loops and `noloopcheck` modifier is called *repeatedly*
from another function. Normally in such case the iterations
passed withing a `noloopcheck` function should not be counted,
but they were.
Apparently the situation cannot be resolved without having 2 counters:
1. One is working all the time, and is used to detect timeouts, as these
may occur both in normal circumstances and in functions with
`noloopcheck` modifier.
2. Second is working only in functions without `noloopcheck` modifier
and is used to do the "stuck in a loop" test.
+ backported small optimization from 3.6.1 branch.
From upstream 70afd47f4879b4eaed5dab664af9e4485055875f
This patch completely removes framesOffset and rebuildChannelData()
The framesOffset was used to store the number of frames and their
starting position in frame stream, however this information is not
needed as when in frames jumping, all the channels needed to be built
from frame 1, thus only position of first frame is needed.
This patch refactors the code that builds the framesOffsets table,
initially each frame of movie was being parsed and sprite casts loaded
then was being discarded, this was not very efficient. Refactored code
to load cast only when they are required, thus reducing the time to load
a movie.
Fixed slow loading of large movies in `totaldistortion-win`
--start-movie="ATD/HD/ADTDVSVF/TDVIDDB1.DIR" totaldistortion-win
I received a report on Discord from fracturehill that the width I had
specified for the volume sliders in the high resolution themes (where
they have to share space with the "Mute all" checkbox) was too wide. I
don't know how to fix this properly, so I'm reverting to the old width.
The rest of the recent slider changes should be safe, so they remain
unchanged. I hope someone else will be able to fix this properly,
because I don't know how.
(the Chinese version has a version string of its own hard
coded onto the bitmap. We have to move our scummvm
version string a bit to the right to avoid printing over the
other text.