Opened 15 months ago

Last modified 8 weeks ago

#11227 new defect

SCUMM: Indy3 - Fighting with Keypad keys doesn't work correctly

Reported by: rsn8887 Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Indiana Jones 3

Description

Indy 3 should allow fighting with KP_1 to KP_9 keys, but doesn't.

I suspect the offending code is some kind of partial hard-mapping of some keys like KEYCODE_KP4, KEYCODE_4 etc. in the file script_v6.cpp, line 2786
https://github.com/scummvm/scummvm/blob/ee2aa6160cdd393f15253ee564252f486d4f03bd/engines/scumm/script_v6.cpp#L2786

in the function ScummEngine::getKeyState

How has this gone unnoticed?

This affects gamepads too because dpad and R+dpad is mapped to keypad, which works for walking in Sierra games, but apparently not for fighting in Indy 3.

Change History (8)

comment:1 by rsn8887, 15 months ago

Tested on Linux and Switch

comment:2 by rsn8887, 15 months ago

Priority: highblocker

comment:3 by rsn8887, 15 months ago

It seems to work with number row keys, but not with keypad keys.

comment:4 by raziel-, 6 months ago

Summary: Fighting in Indy 3 with Keypad keys doesn't work correctlySCUMM: Indy3 - Fighting with Keypad keys doesn't work correctly

@rsn8887

Are the Linux and Switch platforms based on the SDL backend?
If yes, please take a look here #10558, as it sounds like the exact same problem, i was having on AmigaOS4.
If it is, it should be fairly easy to fix...

comment:5 by sev-, 5 months ago

Priority: blockernormal

comment:6 by rsn8887, 5 months ago

Why is the workaround https://bugs.scummvm.org/changeset/ce8227323b3fa658cdfb2f1e3de9b2fbca783c5a
that seems to fix this on Amiga platform not used for all platforms?

Does numpad fighting work on any platform (apart from Amiga, which was fixed by above commit) as it is currently?

Last edited 5 months ago by rsn8887 (previous) (diff)

comment:7 by raziel-, 5 months ago

@rsn8887

Iirc the fix was limited to Amigaos4 back then because other platforms didn't suffer from the problem.

At least there was never any feedback from other sdl-based platforms or other bug items regarding this.

Also, since I'm only able to test Amigaos4 I'd never assume that the bug would be more than "my platform only".

comment:8 by antoniou79, 8 weeks ago

This issue exists in Indy3 in the latest android versions that I've tested with (while fighting).
So, I'll probably have to use the workaround for Android port too (which is OpenGL only, and does not use SDL backend code).

To be specific: Number row keys work, numpad keys don't.

In the Windows build, the number row keys work, and the numpad keys work but only if "Num Lock" is On (so that the numpad keys behave as numbers).

Last edited 8 weeks ago by antoniou79 (previous) (diff)
Note: See TracTickets for help on using tickets.