Add two UI buttons which are placed to the top right corner over
the main view. The left button controls the current touch mode.
When pressed the button changes image to represent the new touch
mode using the mouse and touchpad assets added in previous commit.
The right button triggers the call to the main menu.
The Android backend have two on-screen controls. One for configuring
the touch mode setting and one for accessing the main menu.
The on-screen controls are presented as two clickable buttons.
The image of the touch mode setting changes depending on which mode
that is configured.
Add the same images as assets to the iOS port. Unfortunately it's
not possible to share the same resource files becuase the assets
in Android are of type Android vector drawable.
iOS can handle vector based images, but only in form as a PDF.
There's a lot to read about this format but luckily there are free
converter tools between the formats.
Add converted versions to the iOS7 port.
In the Android port it's possible to configure differnet touch modes
in ScummVM menus, 2D games and 3D games. Add the same possibility in
the iOS port. In Android it's possible to configure a touch based
game controller as well. That's not in scope for iOS in this commit
but can be added in the future.
The virtual controller can be configured with different directional
elements. A thumbstick button and Dpad buttons (left, right, down,
up) can be configured.
A user might want to configure which directional element they want
on the virtual controller. Create two different virtual controllers
which can be switched between depending on the setting in the
backend specific option dialog.
The onscreen_controls options should refer to the touch mode setting
and main menu buttons as it's done in the Android backend. The
virtual gamepad controller used the onscreen_controls string to
identify the option. Change the identifier string to
gamepad_controller so onscreen_controller can be used for the buttons
to be added to the iOS backend.
With the release of iOS 17 the fix for adjusting the position of
the virtual controller stopped working. On some devices with so
called safe areas, the action buttons could be placed outside the
screen.
Rework the fix to position the GCControllerView layer instead.
The same condition was scattered around in the code to switch between
normal labels and images and their lowres counterparts. Factorizing
that condition in a function will allow changing it easily.
This stops George from walking or beginning its rest animation
when we perform an object look or combine on the top menu.
This is on the original code but we never implemented it...