Commit Graph

93907 Commits

Author SHA1 Message Date
Bastien Bouclet
519b4a57e2 KEYMAPPER: Allow engines to return multiple keymaps
The idea is that keymaps may be situational. A keymap may be always
enabled, while another one may be enabled only during combat..
2020-01-29 08:51:29 +01:00
Bastien Bouclet
426867f4bc KEYMAPPER: Give human readable descriptions to the keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
376a77e735 PEGASUS: Add default joystick action bindings 2020-01-29 08:51:29 +01:00
Bastien Bouclet
32174c9067 KEYMAPPER: Actions can now be bound to joystick buttons 2020-01-29 08:51:29 +01:00
Bastien Bouclet
85f476070b PEGASUS: Use custom engine actions for key input 2020-01-29 08:51:29 +01:00
Bastien Bouclet
df7ce0c55f KEYMAPPER: Rework HardwareInputSet not to allocate all possible inputs 2020-01-29 08:51:29 +01:00
Bastien Bouclet
0995f40677 MOHAWK: RIVEN: Use custom engine actions for event handing 2020-01-29 08:51:29 +01:00
Bastien Bouclet
df4bf6556c KEYMAPPER: Introduce custom engine actions
Custom engine actions are a new type of event the Keymapper can produce.
When an engine declares its keymap, it can declare it wants to receive
custom action events when the corresponding key is pressed, instead of
the originating hardware input events.

This system allows:
* Key bindings to be specified only once when declaring the keymap,
  instead of twice (when handling the events).
* To truly rebind keys in the keymaps dialog. When using traditional
  event mapping, the keymapper remaps the user keypress to the keypress
  expected by the game engine to perform the action. However, the engine
  still accepts the original keys.

The new concept of 'standard actions' defines a set of engine actions
that are commonly available in the games supported by ScummVM. Backends
can define default bindings for the standard actions to hardware
specific input devices.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
13fbdb935a KEYMAPPER: Use custom backend actions for the SDL graphics keymap 2020-01-29 08:51:29 +01:00
Bastien Bouclet
be49fc4b9a SDL: Add a keymap for the graphics manager 2020-01-29 08:51:29 +01:00
Bastien Bouclet
c131e8f5b9 EVENTS: Use the keymapper for some previously hard-coded key bindings 2020-01-29 08:51:29 +01:00
Bastien Bouclet
7617723ab5 KEYMAPPER: Allow backends to register multiple keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
ec9c394787 KEYMAPPER: Remove DefaultEventMapper
Now the keymapper is enabled by default, it does not make sense to have
a separate class anymore.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
d2f09a4bfc BUILD: Don't build the event recorder by default
It's been broken for a few years, see bug #10045. It's said not to work
with the keymapper which is now always enabled.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
14663c4790 KEYMAPPER: Make the keymapper mandatory 2020-01-29 08:51:29 +01:00
Bastien Bouclet
cc336635a1 KEYMAPPER: Change custom backend action events not to be instant
Allows action consumers to choose if they want to react on the start or
on the end of an user interaction.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
2d7588d9c3 EVENTS: Remove the dependency to EventSource from EventMapper 2020-01-29 08:51:29 +01:00
Eugene Sandulenko
e7b190fc77 NEWS: Mention support for Russian DreamWeb 2020-01-29 00:51:11 +01:00
Eugene Sandulenko
93dfd3922e DREAMWEB: Added support for Russian fan-translation 2020-01-29 00:50:41 +01:00
Thierry Crozat
ac83b1d08c MACOSX: Add Documents folder usage string in Info.plist
On macOS Catalina, the application needs to ask for permissions to
access some folders, such as the Desktop, Downloads, and Documents
folder. It for example asks for permission  when listing files in
one of those folders or trying to read a file that was created by
another application and not selected using the system Open panel.
Since the default savegame path on macOS is in the Documents
folder it will ask for permissions to access this folder when we
open the Load Game dialog or try to load a savegame that was
copied there manually). So, while not required, it seems a good
idea to provide an explanation why ScummVM wants access to the
Documents folder.
2020-01-28 22:56:28 +00:00
Lothar Serra Mari
b133757c65 NEWS: Update German NEWS file 2020-01-28 21:33:20 +01:00
lolbot-iichan
ae36015c98 WINTERMUTE: Implement FoxTail's actor.GetTalkSprites()
FoxTail 1.2.527.3377+ is using fenek.GetTalkSprites() at
scenes\003_house\scripts\goto_004.script

This is used once, to store Fenek's TalkSprites array to a temporary
var.
Later state is restored with this.SetTalkSprite(array_talk_sprites[0])
2020-01-28 17:40:30 +02:00
lolbot-iichan
f2df898569 WINTERMUTE: Refactor methods related to TalkSprites 2020-01-28 17:40:30 +02:00
Eugene Sandulenko
c1067c644c NEWS: Mention support for BS1 RU from Novy Disk 2020-01-28 14:05:29 +01:00
Paul Gilbert
b4022f641a DISTS: Remove --build-events from create_msvc to fix VS compilation 2020-01-27 19:55:14 -08:00
sluicebox
fad20484cb SCI32: Ignore invalid LIGHTHOUSE German audio map 2020-01-27 19:08:51 -08:00
sluicebox
961d222cee SCI32: Ignore invalid LSL7 French audio map
Fixes bug #11315
2020-01-27 17:30:39 -08:00
Eugene Sandulenko
452874d48b SWORD1: Support for external translated menu in Russian Sword1 2020-01-27 23:35:29 +01:00
sluicebox
9c0655c67a SCI32: Fix GK1 fortune teller dance timer 2020-01-27 13:28:28 -08:00
Eugene Sandulenko
af55fd4586 PRINCE: I18N: Update translation (English)
Currently translated at 96.4% (2658 of 2757 strings)
2020-01-27 21:08:17 +00:00
lolbot-iichan
781f72f43c WINTERMUTE: Add detection of Dr. Doyle & The Mystery Of The Cloche Hat
"Dr. Doyle & The Mystery Of The Cloche Hat" is a 2D point and click
adventure game by PnC Narratives.
Interesting detail about this game is that not actual items, but ideas
and clues are stored in inventory. Combining them and using on people
and objects leads to interrogations, more clues, etc.

Buy game URL: https://store.steampowered.com/app/574420
Depot details: https://steamdb.info/depot/574421
2020-01-27 08:11:44 +02:00
sluicebox
b58da7d847 SCI: Fix KQ6 truncated messages
Fixes bug #10682
2020-01-26 19:46:47 -08:00
Filippos Karapetis
1b116170fa KEYMAPPER: Fix forward declarations of HardwareInput 2020-01-27 02:33:39 +02:00
Filippos Karapetis
45abc11092 KYRA: Fix build when either the LoL or the EoB subengines are disabled 2020-01-27 01:28:19 +02:00
Filippos Karapetis
684f8de589 MOHAWK: Fix build when the Riven subengine is not enabled 2020-01-27 01:26:35 +02:00
Bastien Bouclet
511d138bbc KEYMAPPER: Move the remap dialog to an option dialog tab
The aim is to make it easy to discover, and possible to use without a
keyboard.
2020-01-26 23:09:08 +02:00
Bastien Bouclet
54f57568bc GUI: Expose the keymap builder function 2020-01-26 23:09:08 +02:00
Bastien Bouclet
8dd2b7ca39 EVENTS: Expose the primary global keymap builder 2020-01-26 23:09:08 +02:00
Bastien Bouclet
be388fd9b0 BASE: Don't needlessly go through EngineMan to get the game description 2020-01-26 23:09:08 +02:00
Bastien Bouclet
ee8229dc00 ENGINES: Move keymap initialization to MetaEngine
To be able to access the keymap while the engine is not running.
2020-01-26 23:09:08 +02:00
Bastien Bouclet
19de568e24 KEYMAPPER: Untangle the dependencies between Action and Keymap 2020-01-26 23:09:08 +02:00
lolbot-iichan
03bd7541bd WINTERMUTE: Implement external HTTP functions for Corbomite Games 2020-01-26 23:06:19 +02:00
lolbot-iichan
0acbef6068 WINTERMUTE: Implement external kernel32 functions for Corbomite Games 2020-01-26 23:06:19 +02:00
lolbot-iichan
bc2bad35ab WINTERMUTE: Implement external IRC functions for Corbomite Games 2020-01-26 23:06:19 +02:00
lolbot-iichan
c8695240fa WINTERMUTE: Implement external function for Art of Murder: FBI Confidential 2020-01-26 23:06:19 +02:00
lolbot-iichan
273c8be225 WINTERMUTE: Implement external function for Wilma Tetris 2020-01-26 23:06:19 +02:00
lolbot-iichan
1475c98ba8 WINTERMUTE: Implement external functions for HeroCraft games 2020-01-26 23:06:19 +02:00
lolbot-iichan
19410615b3 WINTERMUTE: Implement externall function for James Peris Demo 2012 2020-01-26 23:06:19 +02:00
lolbot-iichan
1c75a5fedc WINTERMUTE: Refactor kFeatureFullscreenMode usage
OSystem::kFeatureFullscreenMode is now used only inside
base_render_osystem.cpp

_renderer->isWindowed() & _renderer->setWindowed() is used instead.
2020-01-26 23:06:19 +02:00
lolbot-iichan
0d1aafa4f8 WINTERMUTE: Update _windowed on EVENT_SCREEN_CHANGED
Test case:
1. Get isWindowed()
2. Press Alt+Enter
3. Get isWindowed()

Before fix: return values are the same
After this fix: return values are correct
2020-01-26 23:06:19 +02:00