Commit graph

89161 commits

Author SHA1 Message Date
lolbot-iichan
fa4d310fb4 WINTERMUTE: Do not optimize out alpha blits on rotation
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-27 10:59:35 +03:00
sluicebox
1f0f4c9642 SCI32: Make QFG4 tentacle patch GOG compatible 2019-06-27 10:56:23 +03:00
Thanasis Antoniou
fb71c73ff0 BLADERUNNER: Fix obstacle map in CT04
Prevent transient from walking through scenery alongside the right wall
2019-06-26 20:09:10 +03:00
Thanasis Antoniou
bb9bd91436 BLADERUNNER: Pause walkers for special loop in RC03
Otherwise they may glitch with the background at the Hawker's Circle entrance.
2019-06-26 19:49:47 +03:00
Thanasis Antoniou
378f186327 BLADERUNNER: McCoy should holster his gun in MA07 when Gaff is there 2019-06-26 19:38:00 +03:00
Thanasis Antoniou
2d4dffdac0 BLADERUNNER: Stop McCoy from buying absinthe a second time
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-26 18:26:40 +03:00
Thanasis Antoniou
8f74f0f47e BLADERUNNER: Correct fix for maze target timings
Still only applies in Hard and Normal mode difficulty
2019-06-26 16:17:48 +03:00
Thanasis Antoniou
e60aac53b1 BLADERUNNER: Fix waiting time for targets in Maze
Applies only for normal and hard mode. Easy mode keeps the original more relaxed behavior.
2019-06-26 15:21:55 +03:00
Thanasis Antoniou
2e1a84694b BLADERUNNER: Fix for police in UG07 post Guzza scene
Remove option for them to be there altogether to avoid overlap with Clovis
2019-06-26 13:46:16 +03:00
Thanasis Antoniou
d1a2a2ff91 BLADERUNNER: Fix UG04 train disable control and Police AI 2019-06-26 13:25:15 +03:00
sluicebox
9fe95b9603 SCI32: Fix QFG4 Ad Avis capture lockup, bug #11001 2019-06-26 07:30:03 +03:00
lolbot-iichan
9bee1b5e31 WINTERMUTE: Implement Game.OpenDocument() method
Game.OpenDocument() is used to open links for developer's site or social
account in games like hellavuday, 5ld, etc.
2019-06-26 07:15:14 +03:00
sluicebox
c1610a9fd1 SCI32: Fix QFG4CD Grooper crashes at inn and monolith
Fixes bugs #10747, #10760
2019-06-26 07:12:51 +03:00
rsn8887
df03352c27 CONFIGURE: Enable libcurl on Switch (works now) 2019-06-25 21:32:49 -05:00
Thanasis Antoniou
a85ee3218f BLADERUNNER: Fixing clipping into Runciter's closed door 2019-06-25 23:00:52 +03:00
Thanasis Antoniou
78667edd0f BLADERUNNER: Fix Elevator blink in when missing from UG08
Happens, if elevator missing because McCoy took it down to UG13 and then went the long way round
2019-06-25 22:40:50 +03:00
Thanasis Antoniou
35cf41683e BLADERUNNER: fix wanring for clearNeverRepeatWasSelectedFlag 2019-06-25 15:44:27 +03:00
lolbot-iichan
3c1e883ff0 WINTERMUTE: Add lots of entries to detection table and refactor handling of 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-25 13:28:03 +03:00
lolbot-iichan
bf19375d14 WINTERMUTE: Add workaround for sprite glitch at Rosemary game
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-25 08:20:27 +03:00
lolbot-iichan
c32027672e WINTERMUTE: Add comments + warning() for IsKeyDown() method 2019-06-25 08:10:16 +03:00
lolbot-iichan
d53bd4e7a8 WINTERMUTE: Add more details in openDiskFile() comment 2019-06-25 08:10:16 +03:00
lolbot-iichan
4b763f0e9e WINTERMUTE: Add debugN + comment for getNumScripts() 2019-06-25 08:10:16 +03:00
lolbot-iichan
62aebde208 WINTERMUTE: Support even more keycodes at IsKeyDown() 2019-06-25 08:10:16 +03:00
lolbot-iichan
1e005d37e2 WINTERMUTE: Handle enum in GetNumScripts
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-25 08:10:16 +03:00
lolbot-iichan
b9af5ad304 WINTERMUTE: Fix IsKeyDown to work with ASCII
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.
2019-06-25 08:10:16 +03:00
lolbot-iichan
555e400d76 WINTERMUTE: Hardcode known path prefix for tanya2
Missing path is
"d:\engine\ТГ2\tg_ie_080128_1005\data\interface\pixel\pixel.png" from
scenes\code\episode_01\scene_comics_1\scene_comics_1.scene
2019-06-25 08:10:16 +03:00
lolbot-iichan
c2b7fc526e WINTERMUTE: Detection tables for Tanya Grotter dilogy
Tanya Grotter games are based on first 2 books of a Russian fantasy
novel series by Dmitri Yemets.
Those games were both released in Russian only.
2019-06-25 08:10:16 +03:00
sluicebox
28fa491707 SCI32: Fix QFG4 Rabbit combat getting stuck, bug #11000 2019-06-25 07:55:33 +03:00
Henrik "Henke37" Andersson
39f63f1236 WIN32: Make use of the window handle when calling ShellExecute. 2019-06-25 07:54:31 +03:00
Thanasis Antoniou
2382200205 BLADERUNNER: Keydown should be ignored in VK 2019-06-25 01:54:51 +03:00
Thanasis Antoniou
b4ee8fe294 BLADERUNNER: VK both Runciter and Grigorian is now possible
For restored content version
2019-06-25 01:54:51 +03:00
Peter Kohaut
20cc2c42ba BLADERUNNER: Fix Fish dealer in chapter 5
Fixes a wrong state for fish dealer which will end up showing her
up in chapter 5, but her model is not included in CDFRAMES.DAT for
chapter 5, that would lead to an error / engine crash.
2019-06-25 00:26:52 +02:00
Peter Kohaut
dd0c030278 BLADERUNNER: Fixed alpha channel issues
Alpha channel is inverted in the game assets and that lead to issues in
OpenGL renderer. E.g. screenshot of savegames were partly black or
showing artifacts

closes #10983
2019-06-24 21:45:56 +02:00
Thierry Crozat
3036f8161a I18N: Update translations templates 2019-06-24 19:41:23 +02:00
Thierry Crozat
7b65d4ee4f I18N: Regenerate translations data file 2019-06-24 19:41:17 +02:00
Lothar Serra Mari
119bcc2b90 WIN32: Use HINSTANCE for OSystem_Win32::openUrl
This implementation now matches previous ShellExecute() calls, so we are
now consistent in that regard. It also
silences a warning in Mingw complaining about a type mismatch.
2019-06-24 17:00:20 +03:00
Thanasis Antoniou
a9ecbce2f1 BLADERUNNER: Increase distance thresh for Dektora on fire 2019-06-24 13:37:10 +03:00
lolbot-iichan
c4dc251f2b GRAPHICS: Fix fully transparent pixel blit
In BLEND_NORMAL mode with color != 0xffffffff, blending fully
transparent pixel was resulted in slightly modifying some background
colors, because old value X was a bit different from new value (X*255>>8).

This fixes defect #10686 WME: Sprite background is not fully transparent
if AlphaColor is set
2019-06-24 11:27:44 +03:00
Thanasis Antoniou
66bd815e04 BLADERUNNER: Switch to forced key down after modal dialogue
Modal dialogue prompt about loading an Uncut version game in original mode or vice versa would not close KIA any more
2019-06-24 11:23:00 +03:00
Thanasis Antoniou
a1ad1aeb8d BLADERUNNER: (restored) projector comment blocks McCoy from shooting 2019-06-24 11:10:33 +03:00
sluicebox
08a7b6fdc4 SCI32: Fix QFG4 Wraith fan-patch, bug #10711 2019-06-24 08:02:41 +03:00
sluicebox
bfd516ec19 SCI32: Add QFG4 workaround for glide spell message 2019-06-23 17:05:14 -07:00
Paul Gilbert
b0f132f488 GLK: ALAN2: Move Alan 2 interpreter out of debug builds block 2019-06-23 16:55:34 -07:00
Paul Gilbert
5eb0390aca GLK: ALAN2: Add loading savegames from launcher, deinitialization code 2019-06-23 16:19:42 -07:00
Paul Gilbert
e7fbd9268c GLK: ALAN2: Cleanup of data text file opening 2019-06-23 16:19:42 -07:00
Cameron Cawley
16f8c024d1 OPENGLSDL: Move stretch mode handling into OpenGLGraphicsManager 2019-06-24 02:19:28 +03:00
Lothar Serra Mari
c57b2cc148 I18N: Update translation (German)
Currently translated at 100.0% (1087 of 1087 strings)
2019-06-24 01:15:52 +02:00
Thierry Crozat
4f488f8e6f I18N: Update translations templates 2019-06-24 01:09:51 +02:00
Lothar Serra Mari
85f589fb86 I18N: Update translation (German)
Currently translated at 100.0% (1083 of 1083 strings)
2019-06-24 01:09:43 +02:00
Lothar Serra Mari
1ace727ea5 BLADERUNNER: Update POTFILES
BLADERUNNER: Update POTFILES

The strings "Sitcom mode" and "Shorty mode" are included in
detection.cpp, so we add this file to the POTFILES.
2019-06-24 00:09:09 +01:00