Commit Graph
98365 Commits
Author SHA1 Message Date
aryanrawlani28 bf26fbcd25 GUI: RTL: Make tooltip messages rtl friendly 2020-06-22 00:03:02 +02:00
aryanrawlani28 f8ee449227 GUI: RTL: Right align main list text 2020-06-22 00:03:02 +02:00
aryanrawlani28 5be57e5394 JANITORIAL: Replace my todos with "GUI TODO:" 2020-06-22 00:03:02 +02:00
aryanrawlani28 abd24fb1cb GUI: RTL: Base support for Sliders 2020-06-22 00:03:02 +02:00
aryanrawlani28 8966d9dfd9 GUI: RTL: Correctly draw dialogs 2020-06-22 00:03:02 +02:00
aryanrawlani28 9593b3b3fe GUI: RTL: Fix tooltip rendering 2020-06-22 00:03:02 +02:00
aryanrawlani28 1bd2701597 GUI: RTL: Fix caret position 2020-06-22 00:03:02 +02:00
aryanrawlani28 5db49a6d1e GUI: RTL: Test for strict RTL GUI 2020-06-22 00:03:02 +02:00
aryanrawlani28 08f5efd23e GUI: RTL: Add rtl flag and helper function to widget 2020-06-22 00:03:02 +02:00
lolbot-iichan 8de955df26 WINTERMUTE: Remove GF_3D flag for Everyday Grey (#2342) 2020-06-21 22:37:31 +03:00
Thierry Crozat 025dd965f5 MACOSX: Fix TTS when stopping speech and immediately starting another 2020-06-21 19:13:02 +01:00
Thierry Crozat 6c2aaba04f TESTBED: Add test for stopping speech and immediately starting another 2020-06-21 19:09:49 +01:00
Roland van Laar 87e9cdee28 DIRECTOR: implement debugflag for screenshotting
It's now possible to screenshot all played frames by using:
    `--debugflags=screenshot`
The screenshots are stored in `dumps/<archivename>-movie-<frameran#>.png`.

Note: it's PNG only.
2020-06-21 17:51:48 +02:00
Thierry Crozat 6254fe8dec TTS: Add override keyword 2020-06-21 16:31:15 +01:00
Thierry Crozat 4b774d71ac TESTBED: Use the default voice for the TTS tests 2020-06-21 16:31:15 +01:00
Thierry Crozat a362d58821 GUI: Allow selecting the default TTS voice in the Options 2020-06-21 16:31:15 +01:00
Thierry Crozat 75698aa306 MACOSX: Implement TextToSpeechManager::getDefaultVoice()
On macOS, TextToSpeechManager::getDefaultVoice() now returns the
system default voice (assuming the system language is the same as
the language for which we ask the default voice in ScummVM, otherwise
it returns the first voice).
2020-06-21 16:31:15 +01:00
Thierry Crozat 3591003ea3 TTS: Add method to get the default voice
This returns by default the first voice, but can be reimplemented
in derived classes to return the system default voice.
2020-06-21 16:31:15 +01:00
Bastien Bouclet c777d66f92 SCUMM: Use OSystem::fillScreen when clearing the screen in MM NES
The previous code was allocating a temporary surface on the stack which
was causing the stack to overflow on the 3DS.

Fixes #11505.
2020-06-21 16:46:13 +02:00
NMIError 57cb344396 MIDI: Fix _gsBank init and bad if statement (#2341) 2020-06-21 16:07:20 +02:00
lolbot-iichan 1784961aca WINTERMUTE: Improve keyboard walking for Corrosion (#2340)
* WINTERMUTE: Mark custom actions as game-specific

* WINTERMUTE: Disable keyboard walking while city map is open

* WINTERMUTE: Fix misprints in comments
2020-06-21 15:03:25 +03:00
Lothar Serra Mari 1ebbaceeec DISTS: Add snapcraft build recipes
Initial import from https://github.com/snapcrafters/scummvm.

Importing the snapcrafters repository here is the first step in order
to officially take over maintenance of the snap package hosted at
snapcraft.io/scummvm.

For now, please submit PRs to the _snapcrafters_ repository.
2020-06-21 12:25:23 +02:00
Lothar Serra Mari 5520fc436e GIT: Add .snap packages to .gitignore 2020-06-21 12:25:23 +02:00
Scott Percival ff2741b01a DIRECTOR: Fix cascade failure in VWCR loader 2020-06-21 18:24:05 +08:00
Scott Percival e89112af3f DIRECTOR: Add stub for v3 DigitalVideoCast 2020-06-21 17:57:28 +08:00
Scott Percival 2729e141cc DIRECTOR: Add support for linked sound cast members 2020-06-21 17:27:37 +08:00
Scott Percival 6a6cf9d86e DIRECTOR: Load properties from digital video cast 2020-06-21 17:27:37 +08:00
Lothar Serra Mari 990df13f5f NEWS: Update German NEWS file 2020-06-21 09:58:55 +02:00
Lothar Serra Mari 825c83f97a NEWS: Add missing indentation 2020-06-21 09:56:15 +02:00
Eugene Sandulenko 67d3c30720 NEWS: Mention newly supported games 2020-06-21 02:09:24 +02:00
Jonathan Phénix e01ce5ed73 XEEN: Delete unused items.cpp file 2020-06-20 15:24:10 -07:00
NMIError 0af83d3faa KYRA/MIDI: Fix minor MT-32/GM issues (#2333)
* KYRA: Added GM initialization for Lands of Lore

The original interpreter of Lands of Lore uses two executables, which
both do initialization of MIDI devices. The main executable runs a
sysex file for GM devices; the intro executable does not.

ScummVM only does MIDI initialization once and it performs this like
the intro executable. I've added the GM initialization of the main
executable. Note that the initialization file consists mostly of
sysexes which alter the display of the SC-55, so it's not particulary
useful. Not many games did this though, so I thought it would be a
fun feature to include.

I also noticed that the check which distinguishes between the two
demo versions of LoL did not work properly; the useAltShapeHeader
flag was true for both versions. I've changed it to check for the
existence of a PAK file which was only included with one of the two
demos.

* MIDI: Delay parser after handling SysEx events

This changes the way delays between SysEx events in MIDI data are handled from
delaying the backend to delaying the MidiParser.

SysEx events require a delay between events to ensure correct processing by the
MIDI device. This is usually implemented by calling OSystem::delayMillis.
Some games use some form of MIDI sequence filled with SysEx messages to
initialize the MIDI device. This is handled by the MidiParser. Using the
delayMillis method causes the following MIDI events to be "bunched up" and be
executed in a shorter timespan than intended.

I've altered this by making the MidiParser stop parsing when a SysEx event is
encountered and not enough time has passed since the last SysEx. After enough
time has passed, the next SysEx is sent and parsing resumes. To facilitate
this, I've introduced an alternate sysExNoDelay fuction on the MidiDiver. This
does not execute the delay itself, but instead returns the required delay time,
so the parser can handle this instead.

I've currently only implemented this method for the Miles MT-32/GM driver. For
other driver implementations, this will call the regular sysEx method and
return a 0 delay time, so there will be no change in behavior.

This restores a sound effect at the end of the Legend of Kyrandia MT-32 MIDI
initialization. Before, the Note On and Note Off events would be transmitted
instantly after each other, causing the notes not to play.

* MIDI: Add instrument bank fallback

Some games rely on a feature of the Roland SC-55 v1.xx that corrects invalid
instrument banks. This feature was removed in later versions of the device and
not implemented in most other GM devices, causing some MIDI data (sound effects
mostly) to play incorrectly.

Specifically, this applies to Lands of Lore. For example, in the intro, the
sound effect of the ring sparkling uses an incorrect instrument bank. Depending
on how the MIDI device handles this, the sound will play correctly, with the
wrong instrument, or not at all.

This commit emulates the SC-55 functionality that corrects the invalid bank
numbers. I've implemented this (partially) on the MidiDriver, so that it can be
re-used for other games (Xeen 4 and 5 also have this issue with some sound
effects).

* KYRA: Start MIDI playback after selecting track

The MIDI parser would automatically start playback after loading MIDI data, but
KYRA engine games use MIDI files with multiple tracks. Because of this it was
necessary to immediately stop playback after loading MIDI data, and then select
the track that should be played for correct playback. The parser now has a
feature to disable automatically starting playback, so I've implemented this
for KYRA.

* KYRA: Improve stopping MIDI playback

In two places All Notes Off events were sent on all channels to stop MIDI
playback of the background music. However, this will also cut off any MIDI
sound effects which are playing. Where needed I've replaced this with simply
stopping playback of the background music; the parser will turn off any active
notes.
I've also made sure playback is stopped before freeing the music data
memory to prevent any issues.
I've added sending All Notes Off events when the game quits, just in case any
hanging notes are not ended by the parsers (should not really be a problem
though).

* MIDI/KYRA: Add pausing playback to MIDI parser

* KYRA: Fix invalid track selection

If a game would attempt to play an invalid track, the parser would start
playing the previously selected track. Fixed this so the parser will not start
playing.
2020-06-20 23:27:30 +02:00
Eugene Sandulenko d486387ad7 BUILD: Build also lzip source archive 2020-06-20 20:55:07 +02:00
Paul Gilbert 61593a0a9f XEEN: Do auto-capitalization of input text like original
Thanks to FrostyHitoshura
2020-06-20 09:27:47 -07:00
trembyle aae89e057b GOB: Add detection for new Gobliiins CD-i variant 2020-06-20 13:46:04 +02:00
Eugene Sandulenko 9336c9761b ALL: Specify encoding for *.lingo in .editorconfig 2020-06-20 13:03:05 +02:00
Eugene Sandulenko 844cd5b82e ALL: Specify encoding for *.lingo files 2020-06-20 12:47:02 +02:00
djsrv e248e9590c DIRECTOR: LINGO: Enable sprite on property set 2020-06-19 16:54:28 -04:00
djsrv a3a6988178 DIRECTOR: LINGO: Fix reference->number conversion 2020-06-19 16:54:27 -04:00
djsrv 3d36728754 DIRECTOR: Initialize channel _constraint 2020-06-19 16:54:23 -04:00
djsrv 87fa731cac DIRECTOR: LINGO: Remove b_birth 2020-06-19 16:47:15 -04:00
djsrv a548734a78 DIRECTOR: LINGO: Implement object comparison 2020-06-19 15:39:13 -04:00
djsrv 8f98f2eb48 DIRECTOR: LINGO: Remove faulty type check 2020-06-19 15:39:13 -04:00
djsrv 9b38e9a1c0 DIRECTOR: LINGO: Fix global var declaration
Global vars declared outside a handler should be available to the
script's handlers.
2020-06-19 15:39:12 -04:00
D G Turner 05c3d58607 ULTIMA: NUVIE: Fix GCC Compiler Warning
This is emitted if -Wformat-zero-length is set.
2020-06-19 19:37:09 +01:00
djsrv f2d9498754 DIRECTOR: LINGO: Fix cast reference printing 2020-06-19 13:04:26 -04:00
djsrv 8c9707a4bd DIRECTOR: LINGO: Fix strings.lingo encoding 2020-06-19 12:25:50 -04:00
Scott Percival 357550820f DIRECTOR: LINGO: Fix LUT codes for text entities 2020-06-20 00:22:03 +08:00
Scott Percival 8135a3a1cc DIRECTOR: LINGO: Tweak cb_objectcall to substitute variables 2020-06-20 00:22:03 +08:00
Scott Percival be2f5815a9 DIRECTOR: LINGO: Fix stack after failed cb_objectcall 2020-06-20 00:22:03 +08:00