aboutsummaryrefslogtreecommitdiff
path: root/engines
AgeCommit message (Collapse)Author
2017-11-13COMPOSER: Fix the detection for the French Gregory versionBastien Bouclet
The commit message of 2739d8fa2 says this is for the French version. The language was set to English by mistake. Ref#6548
2017-11-12DREAMWEB: Use accurate memory reclamation for Ex transfersColin Snover
When the Ex memory regions are close to full, it is possible for the game to fail to purge objects and then crash with an OOM error even if it isn't actually out of memory. This patch calculates the amount of free memory truly needed when allocating to Ex memory to allow exactly the entire frame & text regions to be used, instead previously where a hard-coded amount of free space to maintain was used, which guaranteed that the entire memory region could not actually be used by the game. This change may be masking some underlying memory leak, or it may just be that near the end of the game the game naturally comes close to reaching the maximum memory region size. For the moment, I am assuming the latter. This commit also adds some assertion checks to the memory transfer functions to make sure the regions don't quietly overflow in other cases, since pickupConts performs transfers in a manner that doesn't ensure enough free memory exists for them to be successful. Fixes Trac#6820.
2017-11-12SCUMM: Fix race condition in MOD playerColin Snover
Fixes Trac#6272.
2017-11-12XEEN: Added How Much dialogPaul Gilbert
2017-11-12XEEN: Added resetYearlyBitsPaul Gilbert
2017-11-12XEEN: Added remainder of giveTakePaul Gilbert
2017-11-12SWORD25: Suppress GCC Cast Qualification Warnings.D G Turner
Since lua_pushlightuserdata and lua_touserdata operate on (void *) values, it is tricky to fix these warnings "correctly" without looking at invasive changes to a significant amount of Lua internal code. Since these pointers to consts are already being recast to drop the const qualifications, then removing the const on the underlying value declaration does not further expose this to change and stops the compiler warnings associated with this. Anyone with a better fix for this can restore the const qualifications later.
2017-11-12XEEN: Fix compiler warnings & AmigaOS errorsPaul Gilbert
2017-11-11XEEN: Added more giveTakePaul Gilbert
2017-11-11SCI32: Fix integer overflow calculating audio durationColin Snover
Due to the need to calculate the audio duration with millisecond precision from the file size, it is possible to overflow a 32-bit integer in games with long background audio loops, like RAMA, during the calculation of the duration. It is also not necessary to give some framerate here, so eliminate the unnecessary explicit Timestamp construction with the second argument.
2017-11-11XEEN: In progress implementing giveTakePaul Gilbert
2017-11-11ADL: Remove ADGF_TESTING for hires3+4Walter van Niftrik
2017-11-11DREAMWEB: Fix out-of-bounds read of frame animation dataColin Snover
The game reads until it sees 0xFF, which is not until frame 14 for some animations in the first interactive room of the game. This happened to work previously because the struct is packed so it would read into the b31.. members, but this was still technically an out-of-bounds read.
2017-11-11XEEN: Fix comparisons for script If opcodePaul Gilbert
2017-11-11XEEN: Debugger commands for gold and gemsPaul Gilbert
2017-11-11XEEN: Fix premature sound parsing endPaul Gilbert
2017-11-11DRASCULA: Merge the floor coordinates into _walkRectFilippos Karapetis
2017-11-11DRASCULA: Rename gotoObject() to walkToPoint() and simplify itFilippos Karapetis
2017-11-11DRASCULA: Clean up room variables, and simplify some related checksFilippos Karapetis
2017-11-11DRASCULA: Reduce the scope of framesWithoutActionFilippos Karapetis
2017-11-11DRASCULA: walkToObject is a boolean variableFilippos Karapetis
2017-11-11DRASCULA: Simplify the drawing code in BJ's roomFilippos Karapetis
2017-11-11DRASCULA: Remove superfluous variableFilippos Karapetis
2017-11-11DRASCULA: characterMoved and characterVisible are boolean variablesFilippos Karapetis
2017-11-11SWORD25: Add a constructor to initialize SoundHandle membersBastien Bouclet
Fixes #7018
2017-11-11SWORD25: Fix leaking the save thumbnail surfaceBastien Bouclet
2017-11-11ADL: Remove ADGF_TESTING for hires5+6Walter van Niftrik
2017-11-10SWORD1: Fix use of deallocated stack memoryColin Snover
FSNode::getName returns a String object, not a reference, so the pointer from c_str is valid only until the end of the statement.
2017-11-10SKY: Fix use of deallocated stack memoryColin Snover
FSNode::getName returns a String object, not a reference, so the pointer from c_str is valid only until the end of the statement.
2017-11-10Merge pull request #1041 from criezy/variadic-undefinedThierry Crozat
Fix undefined behaviour in variadic functions
2017-11-10XEEN: Fix event handling for town messagesPaul Gilbert
2017-11-10XEEN: Fix rendering of town messagesPaul Gilbert
2017-11-10ENGINES: Improve output of unknown game variant detectionColin Snover
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-10ENGINES: Continue to check file presence after a hash/size mismatchColin Snover
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-10CGE: Remove garbage character from commentsColin Snover
2017-11-10BBVS: Remove all bit shifts of potentially negative integersColin Snover
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-10ALL: Fix misuse of comma operatorColin Snover
2017-11-10XEEN: Fix animation of wall torchesPaul Gilbert
2017-11-09Merge pull request #1049 from csnover/lure-unalignedPaul Gilbert
LURE: Stop taking address of unaligned pointer
2017-11-09XEEN: Cleanup of PowType enum namesPaul Gilbert
2017-11-09XEEN: Properly animate arrow shootingPaul Gilbert
2017-11-09XEEN: Create a PowType enum for ranged arrow/spell typesPaul Gilbert
2017-11-08XEEN: Changed multiAttack to rangedAttackPaul Gilbert
2017-11-07LURE: Stop taking address of unaligned pointerColin Snover
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-07XEEN: Fix FX calls in multiAttackPaul Gilbert
2017-11-04TITANIC: Remove testing flag from German versionPaul Gilbert
2017-11-02MOHAWK: RIVEN: Remove the testing flagBastien Bouclet
2017-10-31SCUMM: Prevent false detection of Steam gamesBen Castricum
2017-10-29XEEN: Enable starting game from startup menuPaul Gilbert
2017-10-29SCI: Fix UB in SegManager memcpy/strcpy operationsColin Snover
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.