aboutsummaryrefslogtreecommitdiff
path: root/engines
AgeCommit message (Collapse)Author
2019-07-02WINTERMUTE: Fix slider bugs in several gameslolbot-iichan
There is a bug introduced in WME Lite. Testcase: 1. Download https://github.com/lolbot-iichan/wme_testsuite/tree/master/slider_test/packages 2. Download https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/wmelite/wmelite_10_win.zip 3a. Run game.exe -> Slider moves with the mouse while it is pressed and released when mouse is released 3b. Run wmelite.exe -> Slider is never released 3c. Run ScummVM -> Slider is never released Related bugs: https://bugs.scummvm.org/ticket/6567 https://bugs.scummvm.org/ticket/9861 Reason: slider is a button object that changes it's X until "LeftRelease" event is revieved and breaks the endless loop. Sample code: https://github.com/lolbot-iichan/wme_testsuite/blob/master/slider_test/data/interface/system/speechvolume.script However, WME Lite does not send "LeftRelease" events to any objects, if Game object can handle such event, even is game is frozen and UI is shown. Original code: https://github.com/lolbot-iichan/Wintermute-Engine/blob/master/src/engine_core/wme_ad/AdGame.cpp#L2218 Changed in WME Lite: https://github.com/lolbot-iichan/wmelite/blob/master/src/AdGame.cpp#L2120 This behaviour was introduced in SVN period of wmelite, I believe it was made on purpose for handling some iOS scenarios at commit #37 mentioned on page https://code.google.com/archive/p/wmelite/source/default/commits My proposal is to mark iOS apps as WME_LITE and fill exact WME_1_X_X/WME_LITE versions for all known games. WME_1_X_X can be seen by right-clicking on main executable and seems to be non-empty for almost all existing WME games.
2019-07-02WINTERMUTE: Add detection for some Russian version of 1 1/2 Ritterlolbot-iichan
This seems to be some fan-made translation patch. File "string3.tab" seems to be the only thing translated, and it's stored as a plain file, outside dcp packages. Patch is applied to original by adding this file.
2019-07-02WINTERMUTE: Add detection for 6 more Carol Reed demoslolbot-iichan
Also fixes https://bugs.scummvm.org/ticket/11005
2019-07-02WINTERMUTE: Reorder Carol Reed detection recordslolbot-iichan
On undetected game user gets message like this: ``` Matched game IDs for the Wintermute engine: actualdest-win, basisoctavus-win-cz, agustin-win, bthreshold-win, bickadoodle-win, bookofgron-win-ru, carolreed4-demo-win, carolreed5-win, carolreed6-win, carolreed7-demo-win, carolreed8-win, carolreed9-win, carolreed10-win, carolreed11-win, carolreed12-win, carolreed13-win, carolreed14-win, chivalry-win, corrosion-win, deadcity-win-cz, dfafadventure-win, dirtysplit-win, dreaming-win, driller-win, ... ``` It's confusing that some carolreed games are mentioned as demos and some are not. Fixed this by reordering them.
2019-07-02SCI32: Fix QFG4 Look-Dungeon Messagesluicebox
2019-07-02SCI: Disable SQ4 timepod code for missing roomsluicebox
Fixes #11006
2019-07-01TESTBED: Correctly reset the number of skipped testsCameron Cawley
2019-07-01BLADERUNNER: Rat AI bug fixesThanasis Antoniou
Most prominent bugs fixed is behavior in KP02 and not attacking when near McCoy
2019-07-01BLADERUNNER: Fix warningCameron Cawley
2019-06-30JANITORIAL/CRYOMNI3D: Fix warnings in MSVCLe Philousophe
Most of them were due to setting -1 to unsigned values Else it was bogus unintialized values
2019-06-30COMMON & WINTERMUTE: Use non-1252 for 125X games (PR 1698)lolbot-iichan
* 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
2019-06-30BLADERUNNER: Fix Steele re-arresting Izo at RC03Thanasis Antoniou
2019-06-30BLADERUNNER: Additional potential Bullet Bob's gun fixThanasis Antoniou
2019-06-30BLADERUNNER: Possible gun blinking out fixThanasis Antoniou
2019-06-30SCI32: Promote QFG4 to testingFilippos Karapetis
2019-06-30CRYOMNI3D: Silence false positive warnings about uninitialized variablesFilippos Karapetis
2019-06-30SCI32: Extend scaler sanity checks to all SCI32 versionsFilippos Karapetis
Fixes QFG4 bug #10765. It's preferable to have sanity checks in the code, rather than crashing due to invalid draw rectangles from buggy game scripts. It's no use checking which specific interpreter versions had sanity checks and trust the game scripts of the other interpreters. Thus, it's easier and safer to always enable these sanity checks.
2019-06-30WINTERMUTE: Increase window title height by 1 for "5 Lethal Demons" gamelolbot-iichan
For some reason getFontHeight() is off-by-one comparing to height set in TITLE_RECT, which made text being bigger then title rect and drawing was skipped. This fixes https://bugs.scummvm.org/ticket/6501
2019-06-30SCI: Fix SQ4 English Amiga dress logic, bug #11004sluicebox
2019-06-29BLADERUNNER: JANITORIAL: Fix a compiler warning with a const cast. (#1719)jepael
Tested and it works. Thanks for the fix!
2019-06-28BLADERUNNER: JANITORIAL: Code formatting fixesThanasis Antoniou
2019-06-28BLADERUNNER: Pause NPC walkers for Gaff scene in CT12Thanasis Antoniou
2019-06-28BLADERUNNER: Avoid freeze in Gordo scene at CT05Thanasis Antoniou
If McCoy re-climbs the stairs immediately after retiring Zuben and having picked up the photo
2019-06-28SCI32: Fix QFG4 character selection, bug #11002sluicebox
2019-06-28SCI32: Fix kShakeScreen32 parameter count checksluicebox
2019-06-27GLK: ALAN2: Fix loading memory for Big EndianPaul Gilbert
2019-06-27WINTERMUTE: Do not optimize out alpha blits on rotationlolbot-iichan
This fixes defect #10684: 1-pixel width sprite becomes a big rectangle if rotation is applied. Case was originally reproduced with FoxTail game for WME, then reduced to testcase https://github.com/tobiatesan/wme_testsuite/tree/master/time_test/packages
2019-06-27SCI32: Make QFG4 tentacle patch GOG compatiblesluicebox
2019-06-26BLADERUNNER: Fix obstacle map in CT04Thanasis Antoniou
Prevent transient from walking through scenery alongside the right wall
2019-06-26BLADERUNNER: Pause walkers for special loop in RC03Thanasis Antoniou
Otherwise they may glitch with the background at the Hawker's Circle entrance.
2019-06-26BLADERUNNER: McCoy should holster his gun in MA07 when Gaff is thereThanasis Antoniou
2019-06-26BLADERUNNER: Stop McCoy from buying absinthe a second timeThanasis Antoniou
After he gives it to transient, he should not be able to buy it again That's because the Flask option is added to be selected only once, so McCoy won't be able to give it again to the homeless guy to get more info, and also the second time round, he gets the exact same dialogue from the bartender at the Hawker's Circle, which does not sound right.
2019-06-26BLADERUNNER: Correct fix for maze target timingsThanasis Antoniou
Still only applies in Hard and Normal mode difficulty
2019-06-26BLADERUNNER: Fix waiting time for targets in MazeThanasis Antoniou
Applies only for normal and hard mode. Easy mode keeps the original more relaxed behavior.
2019-06-26BLADERUNNER: Fix for police in UG07 post Guzza sceneThanasis Antoniou
Remove option for them to be there altogether to avoid overlap with Clovis
2019-06-26BLADERUNNER: Fix UG04 train disable control and Police AIThanasis Antoniou
2019-06-26SCI32: Fix QFG4 Ad Avis capture lockup, bug #11001sluicebox
2019-06-26WINTERMUTE: Implement Game.OpenDocument() methodlolbot-iichan
Game.OpenDocument() is used to open links for developer's site or social account in games like hellavuday, 5ld, etc.
2019-06-26SCI32: Fix QFG4CD Grooper crashes at inn and monolithsluicebox
Fixes bugs #10747, #10760
2019-06-25BLADERUNNER: Fixing clipping into Runciter's closed doorThanasis Antoniou
2019-06-25BLADERUNNER: Fix Elevator blink in when missing from UG08Thanasis Antoniou
Happens, if elevator missing because McCoy took it down to UG13 and then went the long way round
2019-06-25BLADERUNNER: fix wanring for clearNeverRepeatWasSelectedFlagThanasis Antoniou
2019-06-25WINTERMUTE: Add lots of entries to detection table and refactor handling of ↵lolbot-iichan
localization packages * WINTERMUTE: Add detection for unsupported "Basis Octavus" game This game is not supported by ScummVM, because it's 2.5D. However, there are already other 2.5D games in detection table and the intent is to add all known games, and support 2.5D in ResidualVM later. * WINTERMUTE: Add detection for Alimardan dilogy "Alimardan's Mischief" and "Alimardan Meets Merlin" are games by Iranian developer Resana Shokooh Kavir (http://rskgd.com/) It seems that Persian versions also exist, I'll surely look at it later: https://www.digikala.com/product/dkp-75901 There were 2 steam releases for alimardan1: https://steamdb.info/depot/694421/manifests/ There was only one steam release of alimardan2: https://steamdb.info/depot/694431/manifests/ * WINTERMUTE: Add detection for Oknytt 1.12 Oknytt had 2 steam releases (1.12 and 1.13): https://steamdb.info/depot/286321/manifests/ I have downloaded 1.12 and added detection. * WINTERMUTE: Add empty strings between detection table lines * WINTERMUTE: Add detection for Steam versions of reversion1 for Windows Source: https://steamdb.info/depot/270572/manifests/ * WINTERMUTE: Add detection for Steam version of reversion1 for Linux Source: https://steamdb.info/depot/270571/manifests/ * WINTERMUTE: Fix localization loading for Mac and Linux Mac and Linux builds of reversion1 & reversion2 does not have any "languages" folders. So, we need to filter those files according to filenames too. Once there is such filtering, there is no need for this overspecific hack for revision1's xlanguage_pt.dcp. * WINTERMUTE: Add detection for Steam versions of reversion2 for Windows Source: https://steamdb.info/depot/281061/manifests/ * WINTERMUTE: Language packages priority for Linux & Mac * WINTERMUTE: Add detection for Steam versions of reversion2 for Linux Source: https://steamdb.info/depot/281062/manifests/ * WINTERMUTE: Add detection for Steam versions of reversion2 for Mac Source: https://steamdb.info/depot/281063/manifests/ * WINTERMUTE: Add detection for Steam versions of reversion1 for Mac Source: https://steamdb.info/depot/270573/manifests/ * WINTERMUTE: Add detection for old Desura versions of reversion2 Source: https://bugs.scummvm.org/ticket/6564 * WINTERMUTE: Add detection for Spanish versions of reversion1&2 As was shown by windlepoons, xlanguage_* contains additional translation package, while data.dcp contains original translation (which is Spanish). So, even without owning those old releases of reversion1&2, I can wrote detection tables for them by not looking for any "xlanguage_*.dcp" file. However, we shouldn't use WME_ENTRY1s for Spanish, because advanced detector say "new best match, removing all previous candidates" once it hit a WME_ENTRY2s. Instead, let's just look for data.dcp twice to give user a choice of several WME_ENTRY2s. Lor Linux, it's WME_ENTRY3s. * WINTERMUTE: Filter language packages ignoring folder name There are 4 types of multilang games: 1. Each installation contain a data.dcp package (same for all languages) + an additional language package. Other localization packages are not installed. Those games are: "Helga Deep In Trouble", "Dirty Split", "Looky". 2. Each installation contain a data.dcp package (same for all languages) + a folder with all localization packages + a single "selected" language package copied to main folder. "xlanguage_" prefix is usual for reversion series. Other games usually use "english.dcp", "spanich.dcp", "czech.dcp", etc. Those are: "Five Lethal Demons", "Five Magical Amulets", "Dead City", "Oknytt", "Reversion: The Escape", "Reversion: The Meeting". 3. All localizations are inside data.dcp all-together. Those are: "One Hellavu Day", "The White Chamber" and "James Peris: No License Nor Control". 4. Different data.dcp build for each language. All other known games are here. This code covers all known filenames for localization packages and provide several guessworks for ignoring all irrelevant localization packages. * WINTERMUTE: Add localization detection for Five Lethal Demons * WINTERMUTE: Tweak detection for Dead City (Czech) "english.dcp" is not required to play Dead City in Czech language, so we don't need to detect it * WINTERMUTE: Add detection table for Looky in English I got English version here: https://bullshit-softworx.itch.io/looky-adventure * WINTERMUTE: Add detection for Czech versions of Helga "english.dcp" happen to be optional
2019-06-25WINTERMUTE: Add workaround for sprite glitch at Rosemary gamelolbot-iichan
This kind of fixes https://bugs.scummvm.org/ticket/6572 WME: Rosemary - Sprite flaw on going upwards Some Rosemary sprites have non-fully transparent background pixels, sprites of walking up has LOTS of them. Testing Rosemary walking character in a test WME game demonstrates some glitches with original WME as well. However, character sprite is downscaled most of time, and with original WME it isn't that seen when sprite is downscaled. This pull request provides a workaround for this case instead of changing downscaling algorithms: * if game ID is "rosemary" * if loaded sprite is from "actors" folder * if bytesPerPixel is 4 * if some pixel's alpha is between 1 and 15 * set this pixel's alpha to 0
2019-06-25WINTERMUTE: Add comments + warning() for IsKeyDown() methodlolbot-iichan
2019-06-25WINTERMUTE: Add more details in openDiskFile() commentlolbot-iichan
2019-06-25WINTERMUTE: Add debugN + comment for getNumScripts()lolbot-iichan
2019-06-25WINTERMUTE: Support even more keycodes at IsKeyDown()lolbot-iichan
2019-06-25WINTERMUTE: Handle enum in GetNumScriptslolbot-iichan
This code is used only in debug mode and only to display some script counters. States are handled in the very same way in WME Lite, so there is no reason to log tons of warning here.
2019-06-25WINTERMUTE: Fix IsKeyDown to work with ASCIIlolbot-iichan
Tanya Grotter series has a cheat, that is triggered with (Keyboard.IsKeyDown("A") && Keyboard.IsControl && Keyboard.IsAlt && Game.DebugMode) condition. vKeyToKeyCode(97) would produce a warning message, fixed this.