These are flagged by GCC if -Wswitch-default is enabled.
This avoids possible hard to diagnose bugs if the whence int parameter is
accidently set to an unexpected value.
It was introduced in 014bef9eab. There is
nothing wrong with our code, but strangely, it makes the
i686-apple-darwin9-as v1.38 to choke when parsing .stabd directives.
Once we upgrade buildbot or do another change to system.h, hopefully
this could be removed.
GCC emits "warning: type qualifiers ignored on cast result type" when
some types are used for HashMap because of the const modifier.
This applies especially to pointer-to-member-functions.
The const there is not really useful as it only prevents unfortunate
object editions.
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.
* Delete multiple empty rows
* Make getVolume non-virtual and leave just the implementation
in base class
* Resolve warning about signed / unsigned comparison in
gui-manager
* Clear availableVoices when updating voices on linux
* By default set language to transMan language on windows
(if the transMan is available)
* Remove freeVoices method from Windows ttsMan, it isn't needed
anymore
Voice is changed when changing language on windows, so when poping
state, the voice, that should get set has to be saved before
changing the language.
The speech shouldn't continue when changing state, so it is stopped
in pushState and popState.
Move #include<iconv.h> from common/encoding.h to
common/encoding.cpp and change the methods accordingly.
This resulted in not saving the iconvHandle if using the
"non-static" version of conversion, but it simplified the code
and hopefuly resolved issues with forbidden symbols on some
platforms.
Thil should fix the ds build. For some reason
I thought the forbidden.h wouldn't allow me to
include the iconv.h, so I tryed to include it
before the forbidden.h (it seems like I didn't
have to do that.)
Function now casts bytes (as <1024) to unsigned long int to correspond
"%lu" format string. For consistency, KB are now printed as floating
number. Finally, it looks like double is pretty precise to be used in
comparisons, so I made the function a little bit shorter.
Bug 1:
If the original C string contained chars > 127 they would be stored
as huge u32 numbers due to the underflow as char is signed.
It still might end-up with invalid UTF32 characters, but now the caller
can control it.
Bug 2:
The inline storage was not properly initialized when U32String was
initalized from shorter non-UTF32 strings.
* WINTERMUTE: Add detection for "The Driller Incident"
"The Driller Incident" is a small freeware game for Wintermute,
avaliable in English and Russian: http://questzone.ru/enzi/files/1645
* WINTERMUTE: Add detection table for "One Helluva Day" demo
"One Helluva Day" is a point-and-click adventure demo in English / Czech
/ Russian.
Free download:
https://store.steampowered.com/app/603680/One_helluva_day/
* WINTERMUTE: Support CHARSET property for TT fonts
"// we don't need this anymore" was a mistake =)
Surely, most Wintermute games are either designed for 1252 language
(DE_DEU, EN_ANY, ES_ESP, FR_FRA, IT_ITA, PT_BRA), or don't use TrueType
fonts (5ma, deadcity, grotter1, grotter2, thekite, tib), or use
CHARSET=1 with UTF strings (dirtysplit, reversion1, reversion2, twc),
which meen this conversion is not needed for those games.
However, there are some games that explicitly states CHARSET=10 (driller
(RU_RUS), oknytt (RU_RUS), onehelluvaday (UNK_LANG when playing as
Russian)) and there are some games with CHARSET=1 with non-1252 in mind
(bookofgron (RU_RUS excepts 1251), carolreed4 (RU_RUS excepts 1251),
kulivocko (CZ_CZE excepts 1250)).
This fixes text in some games: bookofgron, carolreed4, driller, kulivocko,
oknytt, onehelluvaday.
* WINTERMUTE: Break savegame compatibility
sizeof(BaseFontTT) was changed, so let's break savegame compatibility
* COMMON: Add conversion tables for win1253 and win1257
* COMMON: Add string conversion from U32String back to Common::String
convertUtf32ToUtf8 code is based on Wintermute::ConvertUTF32toUTF8
convertFromU32String use convertUtf32ToUtf8 for UTF8 or lookup through
conversion table for single-byte encodings
* WINTERMUTE: Use Common::convert functions for non-UTF charsets
* WINTERMUTE: Fix whitespaces at detection tables
* WINTERMUTE: Add TODO comments
Symbols for codes shorter than the prefix table index width are stored
in the table. All the entries in the table with an index starting with
the code are set to the symbol value. That way, when decoding it is
possible to get the number of bits corresponding to the table width from
the bitstream and directly find the symbol value. Longer code still need
to be searched for in the codes list.
* Fixed peekBits not to seek the underlying stream. Seeking can be slow
when the stream is a file.
* Changed multi-bit operations to work on multiple bits at once rather
than iterating over single-bit operations.
This is an almost direct port of a patch for xoreos provided by DrMcCoy.
matchString patterns couldn't be used to find files with the # character
as it was only treated as a digit wildcard. SCI expected that to work as
it looks for files that start with the # character.
Hidden files are now only ignored in the GUI file browser when the user
has not checked 'show hidden files'.
Myst III has the hidden flag set for one of the directories containing
datafiles on the CD-ROM. When users copy the files to their hard drives
the hidden flag is kept. Detection worked previously because hidden
files were explicitly requested in the AD code. The engine would fail
to open the datafiles because SearchMan.addSubDirectoryMatching
ignored hidden directories.
It's not very useful. However this is mostly to test the theory that the
build failure we've been experiencing in
engines/scumm/he/logic/football.cpp with the osx builder on buildbot is
related to the size of the intermediary assembly source file.
The current Portuguese entry is Brazilian dialect, so modifying the
description and adding an entry for European Portuguese.
This is required to deal with bug Trac #10791.
This fixes a crash due to concurrent access to the global MemoryPool
used by the String class when String objects are used simultaneously
from several threads (as is for example the case when enabling the
cloud features).
See bug #10524: Thread safety issue with MemoryPool
Some feature, such as mutexes, are only available once the backend
has been initialized. This new function can be used to avoid using
those feature too early or too late.
Scaling works correctly with the Windows variant, which uses AVI files,
but the DOS variant uses Robot videos, and the way scaling is done
there is different, and is not working yet with KQ7 DOS. Nonetheless,
both versions are included in the game, so it's not a major issue.
A new internal table has been added so that no if checks need to
be performed for the at() lookup.
The old table can still be accessed using getTable or atLegacy().
at() and atLegacy() return the same values, but at() is faster.
When the constructor for the cos/sin table was changed from
number of bits to number of points all usages thoughout the
code should of been changed, but this was missed in RDFT and DCT.
Fixes Trac#10683.
Previously, the cos/sin table had to be a power of 2, but there
are many use cases where the number of points is not necessarily
a power of 2 so this change the constructor so it now takes
in the number of points rather than the number of points as the
exponent of a power of 2.
The restriction is that the size must be divisible by 4.
When erasing and inserting many items this caused the hashmap capacity
to grow more than it should which resulted in performances issues (and
possibly memory issues as well). The issue was reported on IRC today
with the wintermute engine.
The cos/sin table class now has an at() function for indexing
safely into its internal array.
This allows the checking and computing of the correct
indexes to be done internally.
The indexing in allows cos/sine of 0 to 2pi to be
obtained.
The values returned by getTable are the same as before.
Comments that describe the values that the table
contains has been modified to line up with what
the code is doing.