Opened 2 years ago

Closed 4 months ago

#10314 closed defect (fixed)

iOS: LSL7: Unable to open Xqwsts’ locker on iOS

Reported by: huegoD Owned by: criezy
Priority: normal Component: Port: iOS
Keywords: sci32 Cc: huegoD
Game: Leisure Suit Larry 7

Description

There seems to be a glitch with the keyboard on iOS:
I cannot enter the combination to open the locker of Xqwsts/Xqwtz. You have to enter “90-60-90” (German version) respective “38-24-36” in the US version.
On iOS I cannot enter the dash, so it is not possible to solve the puzzle. When I hit the dash on the onscreen keyboard, no character appears. After several tries ScummVM freezes. I tried it on Mac OS X High Sierra and Windows 10, there are no issues.
I also tried to change the keyboard layout to US English, it does not make a difference.

Change History (10)

comment:1 by huegoD, 2 years ago

Cc: huegoD added
Summary: Unable to open Xqwsts’ locker on iOSSCI: LS7: Unable to open Xqwsts’ locker on iOS

comment:2 by huegoD, 2 years ago

Summary: SCI: LS7: Unable to open Xqwsts’ locker on iOSSCI: LSL7: Unable to open Xqwsts’ locker on iOS

comment:3 by huegoD, 2 years ago

Keywords: sci32 added

comment:4 by criezy, 2 years ago

Component: Engine: SCIPorts
Summary: SCI: LSL7: Unable to open Xqwsts’ locker on iOSiOS: LSL7: Unable to open Xqwsts’ locker on iOS

This is likely due to some keys being remapped to Fn keys by the iOS backend (because its keyboard doesn't have function keys). The dash for example seems to be mapped to F1. Thus this would be a port issue rather than a game issue. But I am not sure how to fix it since changing the mapping to other keys for fn keys would just move the issue somewhere else. We might need a way to turn on/off the mapping (or to change it).

comment:5 by csnover, 22 months ago

The port should be setting up a correct virtual keyboard with availability of the additional PC keyboard keys, like RDC for iOS, not using some hack to steal keys.

in reply to:  4 comment:6 by ido1234, 16 months ago

I wanted to ask how to change the mapping but I figured it out.
Just removed:

"case 45:

keyPressed = Common::KEYCODE_F1;
ascii = Common::ASCII_F1;
break;"

Last edited 16 months ago by ido1234 (previous) (diff)

comment:7 by criezy, 16 months ago

Yep, the code you quote maps the dash to F1. So indeed just remove it and it should work.

If a developer with the required skills and free time on his hands sees this bug report, I think the way to go would be to remove all the custom mapping and instead implement an input accessory view for the keyboard to add a row of keys above the usual virtual keyboard. We could possibly even add a GMM key that way.

comment:8 by digitall, 12 months ago

Component: PortsPort: iOS

comment:9 by criezy, 4 months ago

In 5232cf3:

IOS7: Remove key mapping for function and return keys

Those keys are not present on the virtual keyboard accessory view.
This should fix bug #10314: LSL7: Unable to open Xqwsts's locker
on iOS.

comment:10 by criezy, 4 months ago

Owner: set to criezy
Resolution: fixed
Status: newclosed

I have added a bar above the keyboard for the keys not present on the iOS keyboard, and removed the hardcoded mapping. This means that the dash key on the keyboard should not properly result in a dash now.

Note: See TracTickets for help on using tickets.