Commit Graph
137148 Commits
Author SHA1 Message Date
Nipun Garg 41e8724eda HDB: Fix private class member in readMPC() 2019-09-03 17:16:41 +02:00
Nipun Garg 9899cbc900 HDB: Update HDB to the Code Formatting Conventions 2019-09-03 17:16:41 +02:00
Nipun Garg 374958f442 HDB: Update HDB to the Code Formatting Conventions 2019-09-03 17:16:41 +02:00
Nipun Garg 74ff415903 HDB: Add decompresser to readMPC()
The .MPC decompression methods are added to readMPC(). The position and
length of each data file in held in the struct DataFile, which are stored in the
Array gameData. To extract a file, you need to access its entry in
gameData and read the file from the given position.
2019-09-03 17:16:41 +02:00
Nipun Garg 50e2b5b5bf HDB: Add the Console class to HDB for the interactive Debugger 2019-09-03 17:16:41 +02:00
Nipun Garg d560efbef7 HDB: Attach the HDBGame class into the HDBMetaEngine
Modified HBDMetaEngine's createInstance() method to instantiate the
engine to an HDBGame object
2019-09-03 17:16:41 +02:00
Nipun Garg 31826a2771 HDB: Create skeletal HDB game engine
A primordial HDB game engine that succesfully hooks into ScummVM and can
be used by the AdvancedDetector to detect the HDB game files.
2019-09-03 17:16:41 +02:00
Nipun Garg 44cf6077b7 HDB: Add array of ADGameDescription objects
The ADGameDescription object corresponding to hyperdemo.mpc is added to
gameDescriptions[]. Also, updated the getName() and
getOriginalCopyright() functions.
2019-09-03 17:16:41 +02:00
Nipun Garg da37a00ff1 HDB: Add MODULES_DIRS 2019-09-03 17:16:41 +02:00
Nipun Garg 3e9f64efb0 HDB: Add skeleton detection.cpp file
Subclassed the AdvancedMetaEngine and defined the following virtual
methods: hasFeature() and createInstance()
2019-09-03 17:16:41 +02:00
Nipun Garg 8dbc02f71d HDB: Add module.mk and configure.engine 2019-09-03 17:16:41 +02:00
Thanasis Antoniou dde41f1432 BLADERUNNER: Restored content - Fix bracelet purchase regression 2019-09-03 14:12:21 +03:00
D G Turner cf823c0733 GLK: TADS: Fix GCC Compiler Warnings
These were several undeclared fallthrough warnings i.e. after error
handler cases which will not return and another case of usage of
memset on a non-trivial structure which was fixed by using structure
constructor methods instead.
2019-09-03 10:01:50 +01:00
sluicebox 25e32b2067 SCI: Fix script patch macro 2019-09-02 17:27:07 -07:00
sluicebox 062d3088a8 SCI: Disable LONGBOW Amiga speed test 2019-09-02 17:24:13 -07:00
Thierry Crozat acebff9884 CONFIGURE: Add check for NSSpeechSynthesizerDelegate protocole availability on macOS 2019-09-02 22:24:42 +01:00
dafioram 717d7adc6e MADE: Split out the game detection entries and add a note for Manhole ME
The Manhole: Masterpiece Edition is not a MADE engine and should not be
added to the detection list. It is a HyperCard-like engine
2019-09-02 20:26:38 +03:00
D G Turner 41bc2a5260 GLK: GLUXE: Fix GCC Compiler Warnings
These were for possible unintended fallthrough, though inspection
shows that these were occurring after fatal error handler calls so
adding breaks would not be an issue.

However, since these call error() and thus the breaks will not be
executed and are thus "dead" code, this might provoke warnings in
future.

Another solution would have been to comment that these fallthroughs
are intended, but breaks are better in case the error handler is
changed in future.
2019-09-02 15:39:04 +01:00
D G Turner e376abf650 GUI: Fix Missing Field Initializer in List Widget
This field was introduced by the TTS code changes, but only one of
the constructors was modified to set the default value.
2019-09-02 11:42:17 +01:00
sluicebox 9306135a6a SCI: Fix LONGBOW Amiga Fulk rescue
Fixes bug #11137
2019-09-02 01:38:44 -07:00
SupSuper 1c1cc91ad5 COMMON: Don't include win32.h in common/encoding.h 2019-09-02 08:01:18 +03:00
Paul Gilbert e6e70b2042 XEEN: Don't de-equip armor/acccessories when broken 2019-09-01 20:12:40 -07:00
sluicebox 34a948aa0a SCI: Fix ECO2 reappearing items in shack
Fixes bug #11135
2019-09-01 17:46:54 -07:00
Paul Gilbert b0776c8f32 XEEN: Fix crash loading Great Pyramid Level 3 2019-09-01 15:29:33 -07:00
Jaromir Wysoglad d4a98dcadb COMMON: Add CP437 encoding conversion table. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 291360a280 COMMON: Add CP850 conversion.
CP850 is used by the mortevielle engine (and apparently by other
engines too). Anytime an engine using CP850 encoding wants to use
the TTS, the encoding has to be converted, so this is pretty
important encoding conversion to support. Unfortunately SDL
(when compiled without iconv) doesn't support this encoding
(which means, there might not be a way to convert this encoding
on some platforms), so I added a conversion table for this.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 55c399c7c0 TTS: Use Common::Encoding for encoding conversion. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 6baa9c8ddb TESTBED: Fix include guard in speech.h 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad d399c37e6e WIN32: Use uint instead of unsigned int. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 4b5b812712 TTS: Better documentation of TTSVoice. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 0d332e065e TTS: Rename LinuxTextToSpeechManager to SpeechDispatcherManager
Add a new define for the SpeechDispatcherManager
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad b97333d4b7 TTS: Remove USE_PLATFORM_TTS defines
Use defined(USE_TTS) && defined(PLATFORM) instead
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad d49331132a TTS: Add summary of changes in sphelper-scummvm.h 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad c402666635 TTS: Refactoring
Refactoring as suggested by bluegr on github.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 07acdb8433 TESTBED: Don't build TTS tests if TTS is disabled 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 54c37f6f46 TTS: Document diferences in resume()
On linux the resume() behaves slightly differently than on
other platforms.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad c861581adc TTS: Fix missing indentation 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad c2c4458253 JANITORIAL: Remove some trailing whitespaces 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad b1bffaba86 TTS: Implement our own queuing on windows.
Similarly as on linux, there isn't enough control of the speech
queue to properly implement INTERRUPT_NO_REPEAT. So since this
commit we use our own queuing and use SAPI to speak each speech.
This is done outside the main thread.
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 1a6ad384cb TESTBED: Increase pause in TTS pause test 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad be5c865c50 TTS: Add proper speech queuing, update INT_NO_REP.
Before I used SPD to queue messages and I had a copy of the queue,
so I could requeue everything when resume is called(). But more
control of the queue is needed, so I don't use the SPD's queue
and instead start speeches from my queue one by one from another
thread.

INTERRUPT_NO_REPEAT now behaves as described in the documentation
2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 01d843c527 TTS: Update documentation of INTERRUPT_NO_REPEAT 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad f131cad3e5 TESTBED: Improve some TTS tests 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 38e769430a TTS: Improve documentation 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad bc10117980 TTS: Restart SPD if resume() fails. 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 4036b73b6c TTS: Fix INTERRUPT_NO_REPEAT on Windows 2019-09-01 22:47:55 +03:00
Thierry Crozat 13a32fc5e9 TTS: Implement *_NO_REPEAT actions and Fix state synchronization issues on macOS
The NSSpeechSynthesizer is asynchronous and does not immediately start, pause,
or stop the speech. As a result querrying the state of the NSSpeechSynthesizer
does not alwats return the expected result (for example isSpeaking may not
yet been true just after we requested starting to speak). So instead the
TextToSpeechManager on macOS keeps track of the state itself.
2019-09-01 22:47:55 +03:00
Thierry Crozat bd2757138b TESTBED: Make sure to process events while waiting for speech to finish
Same implementations of TextToSpeechManager may require system events
to be processed for the state synchronisation to work properly.

This commit also fixes a few typos or inconsistencies in some texts.
2019-09-01 22:47:55 +03:00
Thierry Crozat 5198459bba TESTBED: Move the TTS tests after the critical components 2019-09-01 22:47:55 +03:00
Jaromir Wysoglad 21fb4cef06 TTS: Implement our own queuing for linux
It seems like, that at least some versions of speech-dispatcher
aren't able to successfuly pause and resume. For me, when trying
to pause, it still finishes the speech just being said instead
of pausing it and then it puts it at the end of the speech queue
with some speech-dispatcher internal commands added to it, which
are also hearable.

There is no way to find out where the speech ended when calling
pause, so it is just stopped and when resume is called it is
read from it's start again.
2019-09-01 22:47:55 +03:00