144490 Commits

Author SHA1 Message Date
Orgad Shaneh
406960afeb AUDIO: Use inline member initialization in SoundHandle 2023-08-24 21:02:22 +03:00
Kaloyan Chehlarski
a5b1143fc6 NANCY: Add workaround for broken video
Added a workaround for a broken nancy3 video file which
would otherwise crash the engine.
2023-08-24 12:47:51 +03:00
Kaloyan Chehlarski
bc12fbf01c NANCY: Implement PianoPuzzle
Implemented nancy3's PianoPuzzle action record. Since the
record is extremely similar to OrderingPuzzle, the latter's
implementation was extended to cover both record types.
2023-08-24 12:47:50 +03:00
Kaloyan Chehlarski
452e259281 NANCY: Implement kRandom dependency type
Implemented the random dependency type, which evaluates
to true or false based on random chance.
2023-08-24 12:47:50 +03:00
Kaloyan Chehlarski
0ec7f97605 NANCY: Add getters for sound rate and volume 2023-08-24 12:47:50 +03:00
Kaloyan Chehlarski
4c5d0d2299 NANCY: Silence warnings
Fixed several small issues that caused compiler and/or
Coverity warnings.
2023-08-24 12:47:50 +03:00
Antoniou Athanasios
21e2ca475a I18N: Update translation (Greek)
Currently translated at 100.0% (1977 of 1977 strings)
2023-08-24 09:05:33 +00:00
Orgad Shaneh
6d434028a1 SCUMM: HE: Fix initialization of mixer channels
Detected by GCC 13:
mixer_he.cpp:278:15: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct Scumm::HEMixer::HEMixerChannel'; use assignment or value-initialization instead [-Wclass-memaccess]
  278 |         memset(_mixerChannels, 0, sizeof(_mixerChannels));
      |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-08-23 22:35:27 +02:00
Kaloyan Chehlarski
83b3d3a91b NANCY: Implement cel caching in ConversationCel
Added facilities for preloading and caching individual cels
in ConversationCel. This makes use of the new
DeferredLoader.
2023-08-23 12:15:06 +03:00
Kaloyan Chehlarski
911a542b12 NANCY: Implement frame caching for AVF video
Added a frame cache to AVF videos, which allows for
preloading of frames using the new DeferredLoader class.
2023-08-23 12:15:06 +03:00
Kaloyan Chehlarski
e761b5ae25 NANCY: Implement deferred loading for RaycastPuzzle
Added facilities for deferred loading of data that would take
far too long for a single frame. Deferred loading is
executed after the regular loop, where the system would
previously just sleep. Added deferred loading to RaycastPuzzle, which now no longer freezes the game
while initializing.
2023-08-23 12:15:06 +03:00
ScummVM-Translations
e803547fb4 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2023-08-22 22:55:14 +00:00
Thierry Crozat
c949acb387 DOC: Add description for the Discord integration setting 2023-08-22 23:54:36 +01:00
ScummVM-Translations
65d661cb94 I18N: Update translations templates 2023-08-22 22:37:22 +00:00
Lars Sundström
baf59da8d0 LURE: Improve top menu handling for touch based systems
The top menu bar was problematic to control on touch based systems
since the default behaviour for taps is to send button down and up
events on taps. Make the top menu work in this case as well by
closing the menu only when the user have made a decision.
2023-08-22 23:37:11 +01:00
Thierry Crozat
309eda6913 LURE: Use kFeatureTouchscreen instead of LURE_CLICKABLE_MENUS define 2023-08-22 23:37:11 +01:00
Thierry Crozat
ef7c881416 OSYSTEM: Add kFeatureTouchscreen to identify backends with a touchscreen 2023-08-22 23:37:11 +01:00
Thierry Crozat
5b35830ea1 NANCY: Fix 'expected unqualified-id' compilation error
'or', 'and', and 'not' are keywords in C++ (they are alternatives
to ||, && and ! respectively) and thus should not be used as
variable names.
2023-08-22 23:31:17 +01:00
athrxx
b36c487112 SCUMM: fix bug no. 14582
(pathfinding doesn't match original)

This does not address the (allegedly) wrong actor turning direction.
2023-08-22 20:27:48 +02:00
Kaloyan Chehlarski
4a3e074b7d NANCY: Do not apply 3D effects to inappropriate sounds
Added a missing check without which some sounds that
weren't marked as 3D would still get positioned in space.
2023-08-22 21:08:17 +03:00
Kaloyan Chehlarski
2deb31503a NANCY: Add sound_info console command
Added a console command that displays info about
currently playing channels.
2023-08-22 21:08:17 +03:00
Kaloyan Chehlarski
67188041d7 NANCY: Pause all sounds in GMM and console
Fixes an issue where some sounds would still play even
when the GMM or console were open.
2023-08-22 21:08:17 +03:00
AndywinXp
67cdc309b0 SCUMM: HE (Sound): Fix HE60 sound-running opcode for MIDI sound 2023-08-22 16:35:21 +02:00
ScummVM-Translations
0fbb837b96 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2023-08-22 14:15:15 +00:00
AndywinXp
9637828773 SCUMM: HE (Sound): Fix bug #14583
I forgot to initiate sound timers for spooled music below
HE version 80. Whoops!
2023-08-22 16:14:26 +02:00
ScummVM-Translations
29f6f0b5b2 I18N: Update translations templates 2023-08-22 11:45:11 +00:00
AndywinXp
f32cad8c4e SCUMM: HE: Fix _sound object deletion 2023-08-22 13:44:57 +02:00
Kaloyan Chehlarski
2db6e05ef6 NANCY: Use log2f instead of log2 in sound code 2023-08-22 13:31:28 +03:00
Kaloyan Chehlarski
3a31521b27 RISCOS: Add log2f to function to link 2023-08-22 13:30:34 +03:00
PushmePullyu
4867e14d60 GUI: EditableWidget: Clear selection when handling backspace/delete
Clear the selection after deleting a character.

Not doing so can result in out-of-bounds reads in
EditTextWidget::drawWidget(), where _selCaretPos and _selOffset are
used as offsets, and to a failed assertion when calling
EditableWidget::defaultKeyDownHandler():

gui/widgets/editable.cpp:566:
bool GUI::EditableWidget::setCaretPos(int):
Assertion `newPos >= 0 && newPos <= (int)_editString.size()' failed.

Fixes #14584
2023-08-22 13:23:19 +03:00
elasota
92320d616d COMMON: When flattening QuickTime edit lists, don't flatten non-silent audio chunks into silent chunks or vice versa.
Fixes missing vidbot VO in Obsidian Japanese.
2023-08-22 13:18:15 +03:00
Kaloyan Chehlarski
93d8dcadcd NANCY: Fix ShowInventoryItem in nancy3 and up 2023-08-22 12:15:26 +03:00
Kaloyan Chehlarski
b6ae5b4cd1 NANCY: Allow chained orFlag dependencies
Fixed the dependency code so dependencies marked with
an orFlag can be chained (that is, we can have more than
two of them at a time). This makes the chiming clock in
nancy3 actually work.
2023-08-22 12:15:26 +03:00
Kaloyan Chehlarski
860f5cd090 NANCY: Add 3D sound support
Added support for 3D sound, as introduced in nancy3.
The original engine used DirectSound 3D, which enabled
for easy sound panning, attenuation based on distance,
and doppler effect simulation. The DS3D algorithm
has only been approximated; in particular, there are some
minor differences when it comes to sound panning.
2023-08-22 12:15:26 +03:00
AndywinXp
0ab5e8544e SCUMM: PJGAMES: Add support for modded audio
Feature request #14265 from the tracker.
2023-08-22 10:12:45 +02:00
AndywinXp
6fea29947f SCUMM: HE (Sound): Implement modding support for games using digital Miles audio 2023-08-22 10:12:09 +02:00
AndywinXp
026702fb3f SCUMM: HE: Raise level of noisy graphics debug outputs
Those were getting in the way when debugging audio :)
2023-08-22 10:10:26 +02:00
elasota
c9ad0a2040 MTROPOLIS: Fix black chroma key not working 2023-08-21 19:16:53 -04:00
Walter Agazzi
c8506d1ce9 AGS: Add detection entries for some itch.io games
+ update mybigsister remastered entry
2023-08-22 00:28:42 +02:00
Abhinav Chennubhotla
dc2a5624c0 BASE: Dump engine desc in detection entry metadata 2023-08-21 15:40:25 +02:00
Abhinav Chennubhotla
ad8be9d8d5 BASE: Add quotes to metadata while exporting 2023-08-21 15:40:25 +02:00
Abhinav Chennubhotla
28401ee7c0 BASE: Export header in dumpAllDetectionEntries() 2023-08-21 15:40:25 +02:00
AndywinXp
9b81a24ada SCUMM: HE (Sound): Fix Coverity issues
Issues fixed:
CID 1230332
CID 1518552
CID 1518553
CID 1518554
CID 1518555
CID 1518556
CID 1518560
CID 1518561
CID 1518562
2023-08-21 14:25:52 +02:00
ScummVM-Translations
a2dc896ba6 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2023-08-20 22:42:21 +00:00
Misty De Meo
f0461603ba
DIRECTOR: add bluesango 2023-08-20 15:42:01 -07:00
ScummVM-Translations
704a2a7069 I18N: Update translations templates 2023-08-20 20:39:04 +00:00
Lars Sundström
2df8aee335 IOS7: Handle all deletes in UITextInput proto func deleteBackward
The UITextField protocol function:
"textField: shouldChangeCharactersInRange: replacementString:"
was sometimes called with empty replacementStrings on key press
releases on keyboard. That triggered a backspace keyboard char to
be sent which caused problems when trying to remap actions to
other keyboard keys. No matter which key you were pressing the
resulting key would always be the backspace key.

Only handle text input using the UITextField protocol function
when the replacement string isn't empty. Handle all deletes through
the UITextInput protocol function "deleteBackword".

This has been tested in both cases when the UITextField is empty
(but GUI text field has text) and when the UITextField has text
(which has been added using the SoftKeyboard).
It has also been tested on Apple TV where a software keyboard is
shown with a big text field.
2023-08-20 21:38:52 +01:00
Lars Sundström
8576e9e1f3 IOS7: Register inputs based on capabilities
Instead of register input based on if hardware is connected or not
register input based on backend capabilities.
Mouse support is default supported through touch events on screen
(iOS) or touch on controller (Apple TV), and through connected
mouse hardwares. Gamepad controllers are supported from iOS 14 and
later.

Register mouse and gamepad input based on above capabilities to be
able to map actions to buttons on these input devices.

Keyboard support is to be added but not in this commit.

Remove the "isConnected" methods for each input and change the same
method for game controllers to a "isSupported" function to deal
with the iOS version support.

Remove the sending of the EVENT_INPUT_CHANGED event due to the
above reasons. The overide of the isConnected property function is
also removed due to this reason. It caused problems that key
mappings were reset on connections/disconnections.
2023-08-20 21:38:52 +01:00
Lars Sundström
7c96a7ff76 IOS7: Fix gamepad controller dpad button presses
The gamepad controller dpad button vaule change handler callback,
also called for the virtual controller dpad buttons, sent events
also for buttons not being pressed or released.
E.g. when the left dpad button was pressed an event was sent,
JOYSTICK_BUTTON_DPAD_LEFT with value 1 meaning it's pressed DOWN.
However, the other dpad buttons also did send their events but with
value 0 meaning UP. This had no impact for most of the games but
"The Griffon Legend" handles the dpad events a bit different where
the character is kept moving when the button is released. It meant
that the engine was triggering movements on both the event
EVENT_CUSTOM_ENGINE_ACTION_START and EVENT_CUSTOM_ENGINE_ACTION_END.

This commit changes the dpad button input handling so it remembers
the current state for UP/DOWN and LEFT/RIGHT. This ensures that only
the button that changes state is triggering an event.
2023-08-20 21:38:52 +01:00
Lars Sundström
0d77f8a262 IOS7: Delete deprecated and unused event variables
These class member variables aren't used anymore.
2023-08-20 21:38:52 +01:00