80262 Commits

Author SHA1 Message Date
Eugene Sandulenko
3f1e1113de
CRUISE: Added Atari ST French version. Bugreport #12824 2021-08-23 16:17:31 +02:00
Eugene Sandulenko
2e1391e3b0
SCUMM: Added atlantis Mac demo. Bugreport #12831 2021-08-23 16:17:31 +02:00
Eugene Sandulenko
bd280c8971
MOHAWK: Added another grandma demo. Bugreport #12830 2021-08-23 16:17:31 +02:00
Eugene Sandulenko
11bb4634e6
MOHAWK: Added Mac English/Spanish arthur demo. Bugreport #12829 2021-08-23 16:17:31 +02:00
athrxx
033084505c SCUMM: (COMI) - fix bug no. 4424 ("Guybrush walks in place when examining certain objects")
Minor walking code fix from disasm. I have verified that the changes have to be applied to all SCUMM7/8 games, but not to the lower versions.
2021-08-23 15:48:10 +02:00
Martin Gerhardy
ca57b25a32 TWINE: fixed issue #12827 (Unable to exit scene on citadel island)
introduced in 70fd4f428d9ed5ba1f71bb02f35b8fae7fccb410
2021-08-23 13:50:07 +02:00
Orgad Shaneh
6aeda12247 ENGINES: Warn when overwriting a non-autosave on autosave 2021-08-23 13:34:35 +02:00
Orgad Shaneh
7adad5aaf5 ENGINES: Streamline auto-save write/delete protection
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.
2021-08-23 13:34:35 +02:00
Martin Gerhardy
063970ba8a TWINE: removed outdated todo comment 2021-08-23 12:17:01 +02:00
Martin Gerhardy
b3befdf6b9 TWINE: fixed unlocking achievements when resetting game flags 2021-08-23 12:17:01 +02:00
Martin Gerhardy
6d44405f5a TWINE: fixed savegame thumbnail creation
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
2021-08-23 12:17:00 +02:00
Martin Gerhardy
d701616f87 TWINE: disable custom thumbnail for now
workaround for the save bug that still needs a proper solution for the thumbnails
2021-08-23 12:17:00 +02:00
Martin Gerhardy
a1c9b60557 TWINE: Extended error output 2021-08-23 12:17:00 +02:00
Martin Gerhardy
637af0396d TWINE: fixed global main menu binding
bind it to F5 - as ctrl is already bound
2021-08-23 12:17:00 +02:00
Eugene Sandulenko
8812574dc8
GLK: GLULX: Added detecion for Italian Beyond. Bugreport #12825 2021-08-23 00:40:37 +02:00
a/
e6bb527771 SAGA2: Remove globals/static variables in transit.cpp 2021-08-23 06:16:52 +09:00
antoniou79
8749a2bb36 BLADERUNNER: RESTOREDCONTENT: Fix bugs in Crazylegs arrest
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
2021-08-23 00:09:51 +03:00
Martin Gerhardy
60111294a0 BACKENDS: moved the audio cd track path assembly into one location
also added m4a audio cd support as it is supported in openStreamFile() which
is called in DefaultAudioCDManager::play()
2021-08-23 00:09:03 +03:00
Martin Gerhardy
dcaad26e86 ENGINES: keep existExtractedCDAudioFiles in sync with DefaultAudioCDManager::play()
out of sync since: f5164c911758e84804ef7d4e18c72cef21185daf
2021-08-23 00:09:03 +03:00
Ben Castricum
9f44c5522a SCUMM: MONKEY-VGA fix bug #10571, Object stopped with active cutscene
Also occurs in original

Script 68 contains the code for handling the mugs. The issue occurs when a mug
changes state. It will call setObjectName for the new state which in its turn
restarts objects in inventory. Some objects (kidnap note) can be in a cutscene state
what causes a crash if the object gets restarted. This workaroud waits for cutscenes
to end, preventing the crash.

Script #68
[0000] (DD) setClass(Local[0],[146]);
[0007] (28) if (!Bit[421]) {
[000C] (1A)   Bit[421] = 1;
[0011] (62)   stopScript(201);
[0013] (62)   stopScript(188);
[0015] (80)   breakHere();
[0016] (D8)   printEgo([Text(sound(0x612F889, 0xA) + "This stuff is eating right through the mug!")]);
[0054] (80)   breakHere();
[0055] (0A)   startScript(201,[]);
[0058] (**) }
[0058] (2E) delay(300);
[005C] (DD) setClass(Local[0],[147]);
[0063] (D4) setObjectName(Local[0],"melting mug");
[0072] (1A) Var[233] = 500;
[0077] (48) if (VAR_ROOM == 33) {
[007E] (3A)   Var[233] -= 2;
[0083] (48) } else if (VAR_ROOM == 35) {
[008D] (3A)   Var[233] -= 3;
[0092] (48) } else if (VAR_ROOM == 34) {
[009C] (3A)   Var[233] -= 5;
[00A1] (18) } else {
[00A4] (3A)   Var[233] -= 1;
[00A9] (**) }
[00A9] (80) breakHere();
[00AA] (78) unless (Var[233] < 1) goto 0077;
[00B1] (DD) setClass(Local[0],[134]);
[00B8] (D4) setObjectName(Local[0],"mug near death");
[00CA] (2E) delay(300);
[00CE] (DD) setClass(Local[0],[12]);
[00D5] (D4) setObjectName(Local[0],"pewter wad");
[00E3] (9A) Local[1] = VAR_ROOM;
[00E8] (80) breakHere();
[00E9] (C8) if (Local[1] == VAR_ROOM) {
[00F0] (18)   goto 00E8;
[00F3] (**) }
[00F3] (A9) setOwnerOf(Local[0],0);
[00F7] (A9) setOwnerOf(Local[0],15);
[00FB] (0A) startScript(11,[]);
[00FE] (0A) startScript(12,[]);
[0101] (DD) setClass(Local[0],[19,6,140]);
[010E] (0C) Resource.unlockScript(69);
[0111] (A0) stopObjectCode();
END
2021-08-23 00:08:08 +03:00
Ben Castricum
ccc7412c57 SCUMM: MONKEY-VGA fix bug #346, Object stopped with active cutscene
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
2021-08-23 00:08:08 +03:00
Cameron Cawley
15b6a58c98 GUI: Fix displaying static engine options widgets in the in-game options dialog 2021-08-23 00:07:11 +03:00
Cameron Cawley
644e7354f5 CREDITS: Update credits 2021-08-22 22:25:33 +03:00
Thierry Crozat
3c81027efa AGS: Allow using pixel format with different color depth than requested
This allows to play 32 bit games on iOS (the backend currently only
supports 16 bit color depth).
2021-08-22 19:45:20 +01:00
djsrv
a60e144e1e DIRECTOR: Fix punycode in detection tables 2021-08-22 13:16:13 -04:00
Cameron Cawley
751a1ce28c GLK: Include Comprehend and Glulxe in release builds 2021-08-22 13:34:06 +01:00
a/
713d3813b4 SAGA2: Fix memory leaks in audio.cpp 2021-08-22 20:22:33 +09:00
Paul Gilbert
e06bec1f15 AGS: Fix commentary speech in Strangeland 2021-08-21 17:08:10 -07:00
Thierry Crozat
c168c85db5 PRINCE: Fix out of bound access when examining objects
The bug was introduced in commit 9a09449e8 and was causing random
crashes.
2021-08-21 23:36:50 +01:00
a/
d766d8d270 SAGA2: Objectify vpal.cpp 2021-08-22 07:26:40 +09:00
a/
e23ba98f05 SAGA2: Fix timer cleanup 2021-08-22 07:26:40 +09:00
a/
06de8af3f6 SAGA2: Move some globaL variables to Saga2Engine 2021-08-22 07:26:40 +09:00
Orgad Shaneh
f32624c8f2 ENGINES: Remove unimplemented function declaration 2021-08-21 23:58:33 +03:00
Roland van Laar
80bca91b30 DIRECTOR: Don't load nonexisting projector movie
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.
2021-08-21 21:39:13 +02:00
aviloria
9a09449e88
PRINCE: Fix display of multiple phrases (#3298)
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.
2021-08-21 22:29:11 +03:00
Thierry Crozat
7f886d51e1 AGS: Add warning about playing overlapping sounds in ags_wave
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.
2021-08-21 19:17:44 +01:00
Thierry Crozat
0b307e46a4 AGS: Fix music not looping in Strangeland 2021-08-21 19:17:44 +01:00
Thierry Crozat
d9cf6e626a AGS: Fix music and sfx being stopped when changing room in Strangeland
The original is unloading sounds that had already stopped, but is not
stopping the ones still playing.
2021-08-21 19:17:44 +01:00
Thierry Crozat
4e70c7e687 AGS: Fix playing the same sound again and again in ags_wave
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!
2021-08-21 19:17:44 +01:00
Paul Gilbert
31bf101af1 AGS: Fix quitting via abort key 2021-08-21 10:49:13 -07:00
Eugene Sandulenko
869c9d497e
DIRECTOR: Added original file name for Mac warlock 2021-08-21 14:25:28 +02:00
Eugene Sandulenko
c1c9e06573
DIRECTOR: Enable running unknown variants.
Since our fallback detection is pretty advanced, we may run games
not added to the detection tables.
2021-08-21 13:39:55 +02:00
Eugene Sandulenko
df51215678
DIRECTOR: Added alternate Wrath of the Gods detection 2021-08-21 13:34:10 +02:00
Paweł Kołodziejski
517ca67cfc
GRIM: Revert "GRIM: Add Monkey4 Steam/GOG version detection" 2021-08-21 08:00:05 +02:00
Paul Gilbert
50c59252c7 AGS: Added Bitmap::ResetClip() for simpler unsetting of clipping
From upstream a0ad337a24ec2c25822949494c717529c57e56c3
2021-08-20 21:49:39 -07:00
Paul Gilbert
994c67a3ed AGS: Updated build version (3.5.1.10)
From upstream edd1eded7f5b1097511b986c7c2c3d944195ded9

This is despite the prior version being 3.6.0.7
2021-08-20 21:49:38 -07:00
Paul Gilbert
83388a11e2 AGS: Fixed ListBox items may become unaccessible after resize
From upstream 6e2a1ff2d8ca0430099261e5b2eeb79e73c8012d
2021-08-20 21:49:38 -07:00
Paul Gilbert
6a8f1f9a71 AGS: More accurate notification of GUI control changes for redrawing
From upstream fd7cb8dc822e50cc485aa0dfc937217ead1cb996
2021-08-20 21:49:38 -07:00
Paul Gilbert
db783e1734 AGS: Mark GUI for redraw when a plugin font is set
From upstream dfb82a2e36ea16e21a557afd9dffdbd7035ca527
2021-08-20 21:49:38 -07:00
Paul Gilbert
3ec7897644 AGS: Fixed ListBox calling SetFont in Draw, causing GUI to reupdate
From upstream 15bbe018e1f05a202de54ebebb335a5ee4611732
2021-08-20 21:49:38 -07:00