KEMBAR78
IOS7: Implement port specific options widget by larsamannen · Pull Request #4968 · scummvm/scummvm · GitHub
Skip to content

Conversation

@larsamannen
Copy link
Contributor

Implement use of port specific options widget which may be used to enable/disable mouse modes.
Also implement support of Virtual controller (onscreen controls) with one configuration with a dPad and A and B buttons.

Copy link
Member

@sev- sev- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added couple notes so far

Copy link
Member

@sev- sev- left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed now more thoroughly, no further notes besides me clarifying my earlier comments

Copy link
Member

@criezy criezy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This breaks compilation when using SDK for iOS 14 (or below).

@larsamannen larsamannen force-pushed the ls_options_dialog branch 2 times, most recently from 54fef28 to e0c060d Compare May 5, 2023 06:18
Include the newly added ios7_options implementation to the project.
Change the file type to .mm which is Objective C++ to be able to use
the @Availble mechanism.

Implement virtual functions and fix build errors in initial code.
Also add help section for the tvOS port when building for tvOS.

Add ios7_options to POTFILES to get automatic translation on the
help section.
These gesture recognizers were inherited from the iphone port. The
ios7 port use the UIGestureRecognizers to accomplish the same.
The "touchpad" mode and "click-and-drag" mode was mutual exclusive
when enabling "click-and-drag" using swipe gesture.

The difference between "touchpad" mode and "click-and-drag" mode
is how the button down/up events are sent. In touchpad mode the
button down and button up events are sent on touches ended, while
in click-and-drag the button down event is sent on touches began
and button up on touches ended.
@larsamannen larsamannen force-pushed the ls_options_dialog branch from e0c060d to 2f707ab Compare May 5, 2023 10:14
larsamannen and others added 4 commits May 5, 2023 12:56
When changing "Touchpad mode" or "Mouse-click-and-drag mode" by
swipe gestures, these changes must be stored in ConfMan.
The wrong delegate method was called for touchesCancelled. This
led to button presses ended too early if moving the fingers.
Some game engines requires the dpad to control a character. The GRIM
engine is an example of this where the user steer the character by
the arrow keys or dpad controller.
Apple introduced the GCVirtualController in iOS 15 which is a
software emulation of a real controller. The virtual controllers
can be configurable with different inputs. See more info at:
https://developer.apple.com/documentation/gamecontroller/gcvirtualcontroller

A simple gamepad configuration with a dPad and A and B buttons
is added. The user can enable/disable the virtual game controller
swiping two fingers right to left, or through the port-specific
option dialog.
@larsamannen larsamannen force-pushed the ls_options_dialog branch from 2f707ab to c9c05b2 Compare May 5, 2023 10:56
@sev-
Copy link
Member

sev- commented May 5, 2023

Thanks, merging

@sev- sev- merged commit 5817e72 into scummvm:master May 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants