aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-08COMMON: Add more lcov-guided Span testsColin Snover
2017-01-08COMMON: Restrict use of data access helpersColin Snover
The data access helpers as written are effectively little-endian when reading from spans with value_types larger than the size of the requested data (e.g. more than 1 byte for getting a char, more than 2 bytes for getting a uint16, etc.). For now, restrict use of these methods at compile time until someone actually needs to read memory that way.
2017-01-08COMMON: Improve test coverage for Span and fix bugs from testingColin Snover
2017-01-08COMMON: Add STATIC_ASSERT macro to scummsys.hColin Snover
2017-01-08COMMON: Add Span to common libraryColin Snover
Span is roughly modelled on the GSL span<T> type, and is intended to replace direct access to raw pointers -- especially pointers that are passed to functions along with a separate size parameter. It provides low-cost bounds-checked reads and writes, as well as convenience functions for reading common values (integers of varying endianness, strings, etc.). While similar to MemoryReadStream in purpose, Span is superior in cases where memory is writable, where memory is accessed randomly rather than sequentially, or where any invalid access should be treated as an unrecoverable error. It should also be more efficient than a MemoryReadStream because it is implemented using CRTP, so there is no runtime overhead from dynamic dispatch. NamedSpan is an extension of Span which provides enhanced debugging information when out-of-bounds memory accesses occur. It allows programmers to name the memory span at construction time, and it also tracks the offsets of subspans so that the absolute byte offset of the original memory can be provided in the error message if an out-of-bounds access occurs. SpanOwner is similar to ScopedPtr but has awareness of the design of Span objects, so allows the memory pointed to by the Span object inside the SpanOwner to be freed when the SpanOwner is freed without requiring holding a separate pointer to the start of memory. It also provides some copy semantics, so unlike a ScopedPtr, SpanOwners can be held by objects in movable containers like Common::Array -- but note that because there are no move semantics in C++98, this means that a new, complete memory copy of the pointed-to data will be created, rather than just a new Span pointing to the same block of memory, when a container holding a SpanOwner expands.
2017-01-08COMMON: Add type traits to common libraryColin Snover
Type traits allow conditional selection and manipulation of types during compilation.
2017-01-08CHEWY: Add console command to change scenesFilippos Karapetis
2017-01-08CHEWY: Initial implementation of scene sprites, props and hotspotsFilippos Karapetis
2017-01-08CHEWY: Make the error for invalid text resources more verboseFilippos Karapetis
2017-01-08CHEWY: Clean up cursors a bitFilippos Karapetis
2017-01-08I18N: Update translation (Hungarian)George Kormendi
Currently translated at 99.3% (923 of 929 strings)
2017-01-08DIRECTOR: Added g_director uglynessEugene Sandulenko
2017-01-08DIRECTOR: Lingo: Documented D3 menu propertiesEugene Sandulenko
2017-01-08DIRECTOR: Lingo: Added more D3 stubsEugene Sandulenko
2017-01-07DIRECTOR: Lingo: Fix arguments check for built-insEugene Sandulenko
2017-01-07DIRECTOR: Lingo: Stubbed "sound*" built-insEugene Sandulenko
2017-01-07DIRECTOR: Lingo: Added stub for 'me' keywordEugene Sandulenko
2017-01-07DIRECTOR: Lingo: Switch bison debug at runtimeEugene Sandulenko
--debugflags=lingocompile -d10
2017-01-07DIRECTOR: Lingo: Fix 'on' keyword parsingEugene Sandulenko
It requires handler name after 'end' keyword
2017-01-07DIRECTOR: Lingo: Documented catmember differences for D3Eugene Sandulenko
2017-01-07I18N: Revert encoding of Polish translation back to ISO-8859-2Thierry Crozat
The translation was automatically converted to UTF-8 due to the use of curly brackets, which I had to replace with straight ones.
2017-01-07I18N: Update translation (Italian)Walter Agazzi
Currently translated at 100.0% (929 of 929 strings)
2017-01-07I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 100.0% (929 of 929 strings)
2017-01-07I18N: Change back encoding of Finnish translation to ISO-8859-1Thierry Crozat
It was changed to UTF-8 by Weblate due to the use of a character that cannot be encoded with the ISO-8859-1 charset. The character was the ellipses, which I had to replace with three dots.
2017-01-07I18N: Update translation (Greek)Arius
Currently translated at 100.0% (929 of 929 strings)
2017-01-07I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 99.7% (927 of 929 strings)
2017-01-07I18N: Update translation (Greek)Arius
Currently translated at 99.7% (927 of 929 strings)
2017-01-07I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 98.8% (918 of 929 strings)
2017-01-06I18N: Update translation (Greek)Arius
Currently translated at 98.8% (918 of 929 strings)
2017-01-06I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 98.2% (913 of 929 strings)
2017-01-06I18N: Update translation (Greek)Arius
Currently translated at 98.2% (913 of 929 strings)
2017-01-06I18N: Update translation (Italian)Walter Agazzi
Currently translated at 100.0% (929 of 929 strings)
2017-01-06I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 97.7% (908 of 929 strings)
2017-01-06I18N: Update translation (Greek)Arius
Currently translated at 97.7% (908 of 929 strings)
2017-01-06I18N: Update translation (Greek)Filippos Karapetis
Currently translated at 97.4% (905 of 929 strings)
2017-01-06I18N: Update translation (Greek)Arius
Currently translated at 97.4% (905 of 929 strings)
2017-01-06SCI32: Fix overlapped memory copies in SciStringColin Snover
2017-01-06SCI32: Fix a subtle bug in SciArray::trim()Filippos Karapetis
With this bug, whenever a string was trimmed from the right, the last character was always cut off, even if it wasn't whitespace. This was apparent in the RAMA demo, which parses a text file for its scenes, and each line is trimmed
2017-01-06Revert "Merge pull request #885 from csnover/faster-travis"Colin Snover
Travis builds are failing randomly after this change due to upstream bug travis-ci/travis-ci#7103, so reverting these changes until it is fixed. This reverts commit 72f421cb38149d9a66d7145609be81cec2514d48, reversing changes made to c919c9996c6f62cf4f0d1a22d0522b0ee9a0514c.
2017-01-06DIRECTOR: Lingo: Properly fix compilation on DreamcastEugene Sandulenko
It should originally go to lingo-lex.l, as lingo-lex.cpp is autogenerated. The fix was initially in 0da273fc8c843a6248e11f
2017-01-06Merge pull request #873 from wjp/sci_save_palvaryWillem Jan Palenstijn
SCI: Unconditionally save palvary state
2017-01-06SCI: Add FIXME for (very unlikely) race condition in _palVarySignalWillem Jan Palenstijn
2017-01-06SCI: Unconditionally save palvary stateWillem Jan Palenstijn
Additionally, add workaround to fix up old QfG3 saves with broken _palVaryPaused state. Fixes bug #9674.
2017-01-06I18N: Update translation (Finnish)Timo Mikkolainen
Currently translated at 100.0% (929 of 929 strings)
2017-01-06DIRECTOR: Lingo: Add test for eventsEugene Sandulenko
2017-01-06DIRECTOR: Lingo: Implement 'on' statement parsingEugene Sandulenko
2017-01-06I18N: Update translation (Italian)Walter Agazzi
Currently translated at 99.8% (928 of 929 strings)
2017-01-06I18N: Update translation (Polish)Rafał Rzepecki
Currently translated at 88.6% (824 of 929 strings)
2017-01-06I18N: Update translation (Finnish)Timo Mikkolainen
Currently translated at 100.0% (929 of 929 strings)
2017-01-06I18N: Update translation (Swedish)Petter Sjölund
Currently translated at 98.7% (917 of 929 strings)