80288 Commits

Author SHA1 Message Date
Eugene Sandulenko
cb60da0f6e
TOLTECS: Added sanity check to avoid potential out-of-bounds read. CID 1403261 2021-08-25 01:30:44 +02:00
sluicebox
0aa55ce452 SCI32: Avoid global constructors in CelObj
Fixes the last clang warning in the SCI engine
2021-08-24 18:01:42 -05:00
Thierry Crozat
e4d1871a6e AGS: Translate error dialog messages 2021-08-24 21:48:13 +01:00
D G Turner
8075db3c2c DIRECTOR: Simplify convertPixelIntoSurface method in BIT Decoder
This had identical code paths after the recent changes.

CID 1461549
2021-08-24 16:17:52 +01:00
Martin Gerhardy
72016e4ae3 TWINE: fixed return to launcher 2021-08-24 13:12:46 +02:00
Martin Gerhardy
53b1463f01 TWINE: fixed translation for the custom in-game options 2021-08-24 13:12:46 +02:00
Martin Gerhardy
11fbed8535 TWINE: reset projection state when entering holomap 2021-08-24 13:12:46 +02:00
Martin Gerhardy
d88f6a6737 TWINE: improved getNextHolomapLocation() in a way that the current location is ordered correctly 2021-08-24 13:12:46 +02:00
sluicebox
7934070bf5 SCI: Avoid global constructor in resource patcher 2021-08-23 21:10:32 -05:00
Thierry Crozat
aa114a259c AGS: Improve error message for pre-2.5 games 2021-08-24 02:03:45 +01:00
SupSuper
c9d67e48a9 BACKENDS: Use FSNode::getName in string operations 2021-08-23 21:22:27 +01:00
SupSuper
8c86319923 BACKENDS: Use U32String for FSNode::getDisplayName 2021-08-23 21:22:27 +01:00
djsrv
d27574acae DIRECTOR: Fix mouseUp events
Before, the code for setting a button's hilite flag made it so that
mouseUp only ever went to the last sprite that had a mouseDown
event. That is not correct. Whatever sprite the mouse goes up on
gets the event, even if it didn't get the last mouseDown event.
2021-08-23 16:10:44 -04:00
djsrv
1a0393bc19 DIRECTOR: Consider buttons to respond to mouse
Even without scripts, respondsToMouse and isActive should treat
buttons as if they have scripts since they change visually.
2021-08-23 16:10:44 -04:00
djsrv
80b4d55586 DIRECTOR: Make isMouseIn return false for invisible sprites 2021-08-23 16:10:44 -04:00
Martin Gerhardy
1412148344 TWINE: fixed endless rotation on the holomap 2021-08-23 22:08:12 +02:00
Martin Gerhardy
3d67b01510 TWINE: ensure the correct casting for unsigned shorts
... when converting to ints
2021-08-23 22:08:12 +02:00
Orgad Shaneh
121d06bf4a ENGINES: Remove deprecated function 2021-08-23 20:53:27 +03:00
a/
43945dfe39 SAGA2: Remove some globals in audio.cpp 2021-08-24 02:43:16 +09:00
a/
e14937dd9c SAGA2: Rename constant in assign.cpp 2021-08-24 02:43:15 +09:00
a/
c123a4914c SAGA2: Move _actorList from Saga2Engine to ActorManager 2021-08-24 02:43:15 +09:00
a/
323a345cc7 SAGA2: Remove globals in actor.cpp 2021-08-24 02:43:15 +09:00
a/
ebba60f8eb SAGA2: Move currentMapNum to Saga2Engine 2021-08-24 02:43:15 +09:00
Martin Gerhardy
580223e2b2 TWINE: added Lupin Island Destiny and Prequel mod support
see https://bugs.scummvm.org/ticket/12833
2021-08-23 17:43:59 +02:00
Martin Gerhardy
49590e1f4c TWINE: add SCENE_SIZE_MAX comment 2021-08-23 17:43:59 +02:00
Eugene Sandulenko
3af9677427
CRUISE: Added support for Amiga Spanish version 2021-08-23 16:17:31 +02:00
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