Some engines call setAutosave and some don't. isAutosave is used to
determine if a saved game is an autosave, but in fact, on most cases it
just falls back to comparing the name to "Autosave".
This is wrong for several reasons:
* Older versions of ScummVM used Autosave 0.
* The name "Autosave" is translated, so if you change the language, it
won't be detected.
Instead of relying on the name, use the well-known getAutosaveSlot() from
Engine/MetaEngine.
Fixes#12735.
see https://bugs.scummvm.org/ticket/12827
this fixes a previous error that created invalid thumbnail images
a savegame with an invalid thumbnail included, could not get loaded
Also restore a few lines for dialogue with Runciter, and a Steele cue
And added notes for bugs to resolve in the future, the BLOND WOMAN dialogue bug with Early Q in particular
Also occurs in original.
In script 204 room 25 (Cannibal Village) a crash can occur when you are
expected to give something to the cannibals, but instead look at certain
items like the compass or kidnap note. Those inventory items contain little
cutscenes and are abrubtly stopped by the cutscene in script 204 at 0x0060.
This workaround changes the result of isScriptRunning(164) to also wait for
any inventory scripts that are in a cutscene state, preventing the crash.
Script #204
[0000] (1A) Bit[354] = 1;
[0005] (1A) Var[249] = 0;
[000A] (5D) setClass(303,[32]);
[0011] (DD) setClass(VAR_EGO,[5]);
[0018] (2E) delay(1200);
[001C] (80) breakHere();
[001D] (68) VAR_RESULT = isScriptRunning(164);
[0021] (A8) if (VAR_RESULT) {
[0026] (18) goto 001C;
[0029] (**) }
[0029] (58) endOverride();
[002B] (91) animateCostume(VAR_EGO,3);
[002F] (5D) setClass(303,[160]);
[0036] (40) cutscene([]);
[0038] (AE) WaitForMessage();
[003A] (14) print(5,[Text("Obviously you have nothing for us.")]);
[0060] (C0) endCutscene();
[0061] (2A) startScript(105,[],F);
[0064] (A0) stopObjectCode();
END
Continue playing the current movie when the one referenced as projector
isn't found. It seems the best option. ScummVM crashes anyway when it switches to a non-existing movie
This resolves a crash in `The Kids Works 2 Demo`. It's a single file D3
movie which contains everything needed to run it.
When examining an object, if the description has multiple phrases, only the first one was displayed on the screen (but speech audio continues).
Thant's because multiple phrases are encoded in the same string using '\0' separator, so strcpy/strncpy should be avoided.
This is currently not implemented, and is not trivial to implement
with the current way we implemented the plugin.
Playing overlapping sound is for example used when moving the cursor
over the buttons in the options or quit dialogs in Strangeland.
In Strangeland, it seems to start the same sound again and again
(multiple times per second, the sound itself is 45s long). In
ScummVM we were stopping and restarting the sound each time. It
seams the original was only starting the sound if it was not
already playing.
This fixes noise (as we played again and again the first few ms
of the same sound) when starting Strangeland. And this means we
can now hear the music!