Commit Graph
137148 Commits
Author SHA1 Message Date
Colin Snover a2bdff02d7 ENGINES: Improve output of unknown game variant detection
When a user tries to add a game expecting it to be a particular
game for a particular engine, but a detector from another engine
happens to match some files that exist in the game directory and
reports on those files instead, this can cause a lot of confusion
because the detector doesn't say what engine or game it thought it
matched.

This patch adds the name of the matching engine as well as any
matching game IDs (if applicable) to the detector's logged output.
It also provides more specific guidance about where to send the
detection information (to the bug tracker), and properly wraps the
first part of the report to 80 columns.

Refs Trac#10272.
2017-11-10 09:57:41 -06:00
Colin Snover 66826a8b9b ENGINES: Continue to check file presence after a hash/size mismatch
If an early file in the game's signature list has a hash/size
mismatch, it is still necessary to continue to check the rest of
the candidate files for existence, since the non-existence of
candidate files is supposed to disqualify a game description as
matching a game to an unknown variant.

By quitting the file check early, the detector had been allowing
descriptions to randomly match if there happened to be an early
file in the detection list with the right name but wrong hash/size,
even if some of the other signature files did not exist at all.
2017-11-10 09:57:41 -06:00
Colin Snover dda0f77bcf COMMON: Add basic fixed-width word wrap to Common::String 2017-11-10 09:57:41 -06:00
Colin Snover 216376477a CGE: Remove garbage character from comments 2017-11-10 09:57:03 -06:00
Colin Snover 972c453986 BBVS: Remove all bit shifts of potentially negative integers
Previous patches that removed shifts of constant negative values
to eliminate UB were valid, but did not correct all places where
this engine was potentially bit shifting negative values. There is
no reason to not just use multiplication and division and let the
compiler make the right choice for optimisation for an
architecture, so that is what this patch does.
2017-11-10 09:57:03 -06:00
Colin Snover 51329c0dc6 ALL: Fix misuse of comma operator 2017-11-10 09:57:03 -06:00
Colin Snover 2de83e0937 COMMON: Use C++11 static_assert when available
This improves the output of static assertions in all compilers,
and prevents problems in MSVC 2015 where the mechanism for
triggering a compilation error in C++98 mode may cause errors when
that compiler builds in release mode.

Fixes Trac#10154.
2017-11-10 09:56:43 -06:00
Paul Gilbert 600fe749c5 XEEN: Fix animation of wall torches 2017-11-10 06:09:30 -05:00
Paul Gilbert d8aab6362a Merge pull request #1049 from csnover/lure-unaligned
LURE: Stop taking address of unaligned pointer
2017-11-09 18:29:07 -05:00
Paul Gilbert cb90f861b8 XEEN: Cleanup of PowType enum names 2017-11-09 11:05:28 -05:00
Paul Gilbert 381567c1a3 XEEN: Properly animate arrow shooting 2017-11-09 10:48:39 -05:00
Paul Gilbert fed68d19d2 XEEN: Create a PowType enum for ranged arrow/spell types 2017-11-09 07:57:05 -05:00
Paul Gilbert cd0f896253 XEEN: Changed multiAttack to rangedAttack 2017-11-08 19:55:41 -05:00
Bastien Bouclet 1757f7dc5d AUDIO: Switch to BitStreamMemoryStream in the QDM2 decoder 2017-11-08 20:57:35 +01:00
Bastien Bouclet bf3c98815f AUDIO: Add some padding to the QDM2 decoder input buffer
Fixes out of bounds reads in the Myst ME intro videos.

OOB reads may happen because:
- The bitstream implementation reads 4 bytes at a time, and the buffer
  size is not guaranteed to be a multiple of 4.
- The huffman parsing code reads a fixed amount of bits when it
  sometimes needs not all of them.

Also fixed bits vs bytes mismatch for the size parameter of the calls to
the bitstream constructor, and removed a few unnecessary heap
allocations.

Fixes #10220.
2017-11-08 20:57:24 +01:00
Colin Snover b0eb5caa51 LURE: Stop taking address of unaligned pointer
While usage of these pointers was technically safe because they
were read through an alignment-aware API, taking the address of an
unaligned pointer was generating warnings in Clang, and is not
strictly necessary here. This change solves the warning and also
protects this code from any future change that might cause it to
start reading unsafely.
2017-11-07 22:57:33 -06:00
Colin Snover 8e8ec3900c SDL: Get correct default graphics mode ID when queried
Fixes Trac#10312.
2017-11-07 21:34:42 -06:00
Paul Gilbert 8a42959eed XEEN: Fix FX calls in multiAttack 2017-11-07 20:04:00 -05:00
Lothar Serra Mari 262570a576 I18N: Update translation (German)
Currently translated at 100.0% (959 of 959 strings)
2017-11-07 21:13:23 +01:00
D G Turner 872c5ee7c5 LINUX: Fix Header for major/minor macros, thus removing warnings.
Warnings are as follows:
"In the GNU C Library, "minor" is defined by <sys/sysmacros.h>.
For historical compatibility, it is currently defined by
<sys/types.h> as well, but we plan toremove this soon.
To use "minor", include <sys/sysmacros.h> directly. If you did
not intend to use a system-defined macro "minor", you should
undefine it after including <sys/types.h>"
2017-11-07 20:18:22 +00:00
Thierry Crozat 18b8a8cd78 I18N: Regenerate translations data file 2017-11-06 05:05:04 +01:00
Paweł Kołodziejski e130f3c711 DOCS: update NEWS and KNOWN_BUGS entries 2017-11-05 18:04:07 +01:00
Bastien Bouclet 44d35556bc STARK: Implement the diary index screen 2017-11-05 16:23:52 +01:00
Bastien Bouclet 3c0344bf7e STARK: Add a Screen abstraction to the user interface 2017-11-05 16:23:52 +01:00
Bastien Bouclet c1fc03aa5f STARK: Add static resource reference resolution handling 2017-11-05 16:23:52 +01:00
Bastien Bouclet cacf165949 STARK: Add static location handling to StaticProvider 2017-11-05 16:23:52 +01:00
Bastien Bouclet 29a330e839 STARK: Move UI elements to the world subfolder 2017-11-05 16:23:52 +01:00
Bastien Bouclet d55597ff81 NEWS: Minor fixes 2017-11-05 09:11:47 +01:00
Bastien Bouclet 3fb54b128d NEWS: Mention the switch to SDL2 by default 2017-11-05 09:00:00 +01:00
Bastien Bouclet dc8196dc1c NEWS: Add stubs for v0.4.0 2017-11-05 08:44:49 +01:00
Bastien Bouclet c8ab82a36a RELEASE: This is 0.4.0git 2017-11-05 08:38:52 +01:00
Paul Gilbert 87bff2dfcd TITANIC: Remove testing flag from German version 2017-11-04 11:38:19 -04:00
rootfather e742be431f ŃEWS: Update German NEWS file 2017-11-04 09:20:08 +01:00
Bastien Bouclet 3f42f212d4 NEWS: Add important Myst bug fixes 2017-11-02 19:49:43 +01:00
Bastien Bouclet f4a0566e37 MOHAWK: RIVEN: Remove the testing flag 2017-11-02 19:49:43 +01:00
Bastien Bouclet 2f733c812a BASE: Minor command line detection cleanup 2017-11-02 19:49:43 +01:00
Bastien Bouclet 9b9600a50f VIDEO: Express VideoDecoder::endOfVideo using easier to understand logic 2017-11-02 19:49:43 +01:00
Bastien Bouclet a7e4c6d748 MYST3: Fix original engine saves missing thumbnail in RVM menus
The original engine saved the thumbnail with the alpha value set to
fully transparent, and the ResidualVM GUI is rendering with alpha
blending enabled. Now the alpha bits from on-disk thumbnails are ignored.
2017-11-01 12:11:53 +01:00
Bastien Bouclet 25940d2f1f MYST3: Only run drag scripts when the position changed
Fixes lever dragging sounds looping while levers are beeing dragged on
Voltaic.

Fixes #1368.
2017-11-01 11:06:50 +01:00
Thierry Crozat 174276455f I18N: Update translations templates 2017-10-31 11:04:09 +01:00
Ben Castricum a8faf239a1 SCUMM: Prevent false detection of Steam games 2017-10-31 11:03:53 +01:00
Paul Gilbert 91d79769cc XEEN: Enable starting game from startup menu 2017-10-29 17:06:58 -04:00
rootfather 8258bca063 DOC: Remove reference to SF for the Bug Tracker; improve wording 2017-10-29 19:37:22 +01:00
rootfather 4e026e7275 DOC: Remove reference to Sourceforge for the Bug Tracker 2017-10-29 19:37:22 +01:00
Colin Snover 37459bc6c1 SCI: Fix UB in SegManager memcpy/strcpy operations
Passing overlapping buffers to C standard library memcpy, strcpy,
and strncpy is undefined behavior. In SSCI these operations would
perform a forward copy, and most stdlib implementations do the
same, but at least newer Linux glibc on x86 copies bytes in
reverse, so just using the standard library on this platform
results in broken output.

Because SSCI used a blind forward copy instead of memmove for
overlapping copy operations, this patch implements an explicit
forward copy to ensure that overlapping copies continue to operate
the same as in SSCI.

This fixes the Island of Dr. Brain v1.1 flamingo puzzle
(script 185, flamingos::init, localCall 4c3) on platforms that do
not perform forward copy in memcpy/strcpy/strncpy.

Thanks to @moralrecordings for research on this bug and an initial
patch using memmove.

Closes gh-1034.
2017-10-29 13:18:37 -05:00
Willem Jan Palenstijn 4233156505 TESTBED: Only build cloud tests if libcurl is available too
This matches the module.mk checks for backends/cloud
2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn a416c98980 CONFIGURE: Handle freetype-config SYSROOT duplication in prefix
Since version 2.3.12, freetype-config adds SYSROOT to all paths.
If we pass a --prefix that already includes SYSROOT, this will return
a duplicate SYSROOT. This patch detects that and adjusts prefix
accordingly.
2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn 0bcaf623aa CONFIGURE: Add missing --with-libcurl-prefix option 2017-10-29 00:05:51 +02:00
Willem Jan Palenstijn bef5629519 CONFIGURE: Improve configure help formatting consistency 2017-10-29 00:05:51 +02:00
Thierry Crozat 56a1dd9b2f Merge pull request #1046 from digitall/saga_ite_french
SAGA: Add Code to Support French Fan Translation.
2017-10-28 12:23:59 -07:00