Commit graph

143044 commits

Author SHA1 Message Date
Misty De Meo
cd970d5942
DIRECTOR: fix FileIO::m_fileName
Some checks failed
CI / Windows (push) Has been cancelled
CI / Xcode (push) Has been cancelled
CI / Ubuntu (push) Has been cancelled
Adding one to the prefix's length meant the first character of the
filename would be omitted.

Fixes Ganbare Inuchan 2 creating savegames with the first letter the
player typed missing.
2023-07-05 15:18:50 -07:00
Eugene Sandulenko
b2948060cf
DISTS: Added classicmacfonts.dat
This file contains fonts used for recreation of Classic Mac OS GUI. To generate it,
use the following commnand:

  devtools/dumper-companion.py createmacfonts
2023-07-05 14:00:49 +02:00
Eugene Sandulenko
0ccbcddb57
GUI: Disable BDF font scaling until it is fixed 2023-07-05 14:00:49 +02:00
antoniou79
0f7ee148ea BLADERUNNER: Methods for debugging animations 2023-07-05 14:57:58 +03:00
antoniou79
ea23048d60 BLADERUNNER: Better handling of cut overlay
Also some minor code changes (renamed a few variables and added more explanatory comments)
2023-07-05 14:29:33 +03:00
antoniou79
f15f37eb97 BLADERUNNER: RC: Restore a roach in UG15 2023-07-05 14:29:33 +03:00
Thierry Crozat
481f849c5a IOS7: Fix hiding keyboard in portrait mode when not in game 2023-07-04 23:14:49 +01:00
ScummVM-Translations
aa2abc41b3 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-07-04 19:23:55 +00:00
Le Philousophe
a9bf813e86 GUI: Make thumbnail smaller than its background
This avoids the thumbnail to be drawn over the rounded borders
2023-07-04 21:23:43 +02:00
ScummVM-Translations
23d1fdff18 I18N: Update translations templates 2023-07-04 19:12:06 +00:00
ScummVM-Translations
5b88b6ae21 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-07-04 19:12:05 +00:00
Le Philousophe
7f0d75bbfc ANDROID: Fix cursor position in touchpad mode while rotating
Without this, the cursor ends up in limbo and you need to scroll several
times to make it appear again.
2023-07-04 21:09:13 +02:00
Le Philousophe
43bd4edcc1 GUI: Handle screen resize while displaying MessageDialog 2023-07-04 21:09:12 +02:00
Ben Castricum
396719c88f I18N: Update translation (Dutch)
Currently translated at 96.5% (1883 of 1950 strings)
2023-07-04 16:50:43 +00:00
Ben Castricum
9e96e21407 I18N: Update translation (Dutch)
Currently translated at 96.4% (1881 of 1950 strings)
2023-07-04 16:50:16 +00:00
Ben Castricum
ad607fe3f7 I18N: Update translation (Dutch)
Currently translated at 94.5% (1843 of 1950 strings)
2023-07-04 15:19:05 +00:00
Antoniou Athanasios
ee3259ecd0 I18N: Update translation (Greek)
Currently translated at 100.0% (1950 of 1950 strings)
2023-07-04 09:50:10 +00:00
Lothar Serra Mari
35f0c7043d NEWS: Mention AGS text improvement in German NEWS file 2023-07-04 07:52:07 +02:00
Thierry Crozat
214ac0de76 NEWS: Mention AGS text improvement 2023-07-03 23:23:35 +01:00
Walter Agazzi
ff03764f0e AGS: Apply alternative blending to hires fonts in alfont
When displaying hires fonts, alfont applies an alternative blending mode
which was not implemented, causing hi-res text to display improperly in
multiple games (Mage's Initiation, Starship Quasar and Larry Lotter the
most relevant cases)
2023-07-03 22:11:54 +01:00
Thierry Crozat
e73b277589 IOS7: Add missing file in module.mk
The iOSGraphics3dManager uses the OpenGL::FrameBuffer class, so the
corresponding code needs to be compiled for the ios7 backend.
2023-07-03 22:09:25 +01:00
ScummVM-Translations
3e176abb06 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-07-03 19:57:55 +00:00
Coen Rampen
00d273fc55 AGOS: Fix support for Simon 2 25th Anniversary
This adds detection entries for the German and French versions. All language
versions except Russian use WAV sound effects and GM SMF MIDI data, so the
platform is changed to Windows. These versions also contain the MT-32 MIDI data
in XMIDI format, so support for this is added as well. Finally, the MT-32 track
10 workaround has been updated to deal with these versions.
2023-07-03 21:57:39 +02:00
ScummVM-Translations
e84c010758 I18N: Update translations templates 2023-07-03 19:50:43 +00:00
Lars Sundström
6078586aec CREATE_PROJECT: Correct spelling of definition and shader file name
The GRIM define was incorrectly spelled GRIME which cause no shader
files to be included to the project preventing the game to start.

The freescape shader file freescape_triange.vertex also contained
a spelling error preventing the game to start.
2023-07-03 21:50:32 +02:00
Lars Sundström
06e231a649 IOS7: Show keyboard automatically when in game and portrait mode
Open the iOS system keyboard automatically when starting a game and
screen orientation is portrait. If orientation changes to portrait,
open the keyboard automatically only if game is running.
2023-07-03 21:50:32 +02:00
Lars Sundström
3ee048d922 IOS7: Update logic for touch events for Apple TV remote
The Apple TV remote sends touch events of type UITouchTypeIndirect
since it's not touches made on the screen. In iOS touchpads might
send UITouchTypeIndirect touch events as well as mouse move events.

So in iOS we want to block touches of type UITouchTypeIndirect
while in TV OS we want them to be handled.

Touchpad mode for touch events is also required for the Apple TV
remote to work properly. Make sure to disable the possibility to
disable touchpad mode in TV OS.
2023-07-03 21:50:32 +02:00
Lars Sundström
d8bc349b37 IOS7: Resize main frame depending on keyboard size and orientation
It's important that the main frame, displaying the OpenGL rendered
graphics, has the proper dimensions and depending on the device
orientation. It's also important that the frame is not covered by
the iOS keyboard.

This commit calculates the frame size depening on the orientation
and the keyboard status. The keyboard knows its parent view and
can resize it when the keyboard becomes visible or hidden.

There are multiple scenarios where the frame size is changed.
 - When the keyboard is hidden/shown which can be automatically
   change depending on the device orientation
 - If the system demands the keyboard to get visible or hidden
 - When rotating the device
 - When suspending/resuming the application

There can also be combination of the scenarios above, e.g. if
suspending the application in landscape mode and resume it in
portrait mode.

A lot of effort has been put into testing different scenarios to
verify that the screen size becomes correct. However there might
be some scenario which has not been covered.
2023-07-03 21:50:32 +02:00
Lars Sundström
5d5564fceb IOS7: Hide word suggestion list in newer iOS versions
Since iOS 15 or 16 both auto correction and spelling check have to
be disabled to hide the word suggestion list above the keyboard.
2023-07-03 21:50:32 +02:00
Lars Sundström
598bc231ab IOS7: Cancel pending button if touch is moved within 250 ms
If not in "click-and-drag" mode, left mouse button down and up
events are sent on touches ended if the touch lasted less than
250 ms. If the touch lasted longer it was considered as a move
and no button events are sent.

This commit mimic that behaviour in touchpad mode when "click-
and-drag" mode is enabled. The left mouse button down event is
queued for 250 ms. If the touch is dragged within 250 ms it is
considered as a move and the queued mouse button down event is
cacelled. If no movement is made withing 250 ms the queued
mouse button event is processed.
2023-07-03 21:50:32 +02:00
Lars Sundström
b324c70748 IOS7: Implement switching of 2D/3D graphics managers
Implement the same "hacky" way to switch between the 2D and 3D
iOSGraphicsManagers as the Android and SDL backends.

This commit enables 3D capable games to utilise the horse powers
in the GPU to render graohic. Older iPhones and iPads (iPhone 6,
iPad Mini v1) are able to run quite advanced games without any
stuttering if run in Release mode.
2023-07-03 21:50:32 +02:00
Lars Sundström
6a74f7b32b IOS7: Implement iOSGraphics3dManager
Add a graphic manager rendering 3D graphics for engines supporting
3D games. The manager is implemented using the 3D graphic managers
for Android and SDL as models.

Most probably Android and iOS can share much more of the code, but
that will be a separate work to refactor.
The iOSGraphics3dManager handles resize since the screen dimension
changes on rotation.

Games not supporting arbitary resolutions, e.g. Grim, are rendered
on an intermediate framebuffer with the size requested by the
engine and then rendered to the backbuffer (a framebuffer bound to
the renderbuffer) and stretched to the screen resolution off the
device.

This commit just adds the manager. It will be utilised in next
commit.

Update gitlab ci worker and update documentation.
2023-07-03 21:50:32 +02:00
Lars Sundström
fb4f7d6de2 IOS7: Remove old IOS7 graphic handling
Delete the old graphic handling in the IOS7 backend which is not
used anymore after implementing iOSGraphicsManager.

The Accelerate framework is not used anymore. The OpenGLGraphics
manager handles the different color formats.
2023-07-03 21:50:32 +02:00
Lars Sundström
d36074773b IOS7: Add internal event for signalling screen changes
When the screen dimension changes, e.g. on rotation of the device,
the graphic manager has to be informed of the new dimension to be
able to resize the surfaces.

To quickly redraw the entire screen, Common::EVENT_SCREEN_CHANGED
event is passed to the event handler.
2023-07-03 21:50:32 +02:00
Lars Sundström
e0ae1a1d47 IOS7: Rework mouse movements to use iOSGraphicsManager
Previously the mouse position in the view was tracked using the
pointerPosition property. Scaling and relative mosue movements
were calculated in the view using screen properties stored in the
videoContext structure. Now when moving to iOSGraphicsManager all
that handling will be handled by the WindowedGraphicsManager,
which the iOSGraphicsManager inherit.

Rework the input code to send down pure x and y position values,
scaled according to the view content scale factor.

Remove code related to mouse movement that is no longer needed.
2023-07-03 21:50:32 +02:00
Lars Sundström
208aa43d5b IOS7: Render openGLContext
Implement callbacks to set up OpenGL context, destroy context, get
scale factor and screen sizes. Implement rendering of graphics drawn
by the iOS graphicsManager.

This commit will enable graphics to be shown again. Screen rotation
and mouse movements are still to be adapted.
2023-07-03 21:50:32 +02:00
Lars Sundström
580d8424ca IOS7: Change OSystem_iOS7 to be a ModularGraphicsBackend
Remove all pure virtual functions in OSystem_iOS7 since they are
implemented by ModularGraphicsBackend.

This commit will break the graphics implementation in the ios7
backend and crash due to no OpenGL context created for the
graphicsManager to use.
2023-07-03 21:50:32 +02:00
Lars Sundström
e6232547d5 IOS7: Add iOSGraphicsManager class
The ios7 backend implements the graphic handling in the backend code.
iOS supports OpenGL through the OpenGL Framework since iOS 2.0. It's
marked as deprecated but is still shipped with the SDKs for iPhoneOS
and tvOS and will hopefully be so for some time.
The ios7 backend can therefore utilize the OpenGLGraphicsManager to
handle all graphics.

Implement an iOSGraphicsManager class that can be used in the ios7
backend. The iOSGraphicsManager will require some callback functions
in the ios7 backend. createOpenGLContext() will be called to ask the
backend to create an OpenGL context in which the graphic manager can
draw. The function returns the ID of the renderbuffer which shall be
used when creating the framebuffer object this differ iOS from other
platforms). A custom RenderBufferTarget class is added to address
this.

destroyOpenGLContext() will be called to make sure that the old GLES
context is not reused. notifyContextDestroy() does call the function
OpenGLContext.reset() but that will not destroy the context.

refreshScreen() will be called to ask the backend to present the
drawn graphics on the screen. getSystemHiDPIScreenFactor() is called
to get the screen scaling factor. getScreenWidth() and
getScreenHeight() are called to get the width and height of the
surface to draw on.

This commit adds the class but the ios7 backend doesn't make use of
it quite yet. To use it require the ios7 to be a child class of the
ModularGraphicsBackend. That change requires a lot of changes which
will be targeted in separate commits.

Update docportal and github ci worker to only disable the feature
opengl_classic_game since opengl and opengl_shaders are required to
compile the OpenGLGraphicsManager.
2023-07-03 21:50:32 +02:00
Le Philousophe
adda0dc063 BACKENDS: OPENGL: Allow the backend to specify the render target
For now only backbuffer is used.
2023-07-03 21:50:32 +02:00
Le Philousophe
10714db6f0 BACKENDS: OPENGL: Make setSize a Framebuffer function 2023-07-03 21:50:32 +02:00
Le Philousophe
f337abae70 BACKENDS: SDL: Remove superfluous ifdef
This block is already dedicated to SDL_BACKEND
2023-07-03 21:50:32 +02:00
ScummVM-Translations
6901d8d90e 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-07-03 16:34:58 +00:00
athrxx
61ff29468e KYRA: (EOB/PC98) - fix spellbook text 2023-07-03 18:34:14 +02:00
ScummVM-Translations
df3178a406 I18N: Update translations templates 2023-07-03 10:55:06 +00:00
ScummVM-Translations
dfd1b25780 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-07-03 10:55:04 +00:00
Abhinav Chennubhotla
967c8eaf5e BASE: Update dumpDetectionEntries() outputs
- Use printf() instead of debug()
 - Remove unnecessary type conversions
2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
41d9855273 BASE: Add metadata to dumped detection entries
- Add title, extra, platform and language to
   differentiate b/w different variants of a game
 - Create escapeString() func to add backslashes
   to strings containing certain special chars
2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
c09ef64b7f BASE: Update dumpDetectionEntries() and md5PropToGameFile() 2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
bb20579bee BASE: Add dumpAllDetectionEntries() to commandLine
- Add virtual function dumpDetectionEntries() to
   MetaEngine
 - Glk, Sky and SCUMM do not have proper
   definitions for dumpDetectionEntries()
 - Add md5PropToGameFile() to extract prefixes for
   md5s
 - AdvancedDetector writes content of DAT file to
   STDOUT
2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
5f3e062f97 BASE: Add --dump-all-detection-entries command
- Creates metaengine instances for all engines, which will
   contain detection md5s of the engine
2023-07-03 13:54:50 +03:00